9remote 2.5.5 → 3.0.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 (597) hide show
  1. package/README.md +91 -172
  2. package/dist/assets/trayIcon.ico +0 -0
  3. package/dist/cli.cjs +102 -101
  4. package/dist/ptyDaemon.cjs +10 -9
  5. package/dist/server.cjs +307 -138
  6. package/dist/ui/agents/codex.svg +1 -1
  7. package/dist/ui/assets/index-CAvf0VPf.css +1 -0
  8. package/dist/ui/assets/index-EXcI2V_p.js +8 -0
  9. package/dist/ui/favicon.ico +0 -0
  10. package/dist/ui/index.html +12 -4
  11. package/dist/vendor/scrcpy-server-v3.1 +0 -0
  12. package/dist/web/404.html +1 -0
  13. package/dist/web/__next.__PAGE__.txt +9 -0
  14. package/dist/web/__next._full.txt +25 -0
  15. package/dist/web/__next._head.txt +6 -0
  16. package/dist/web/__next._index.txt +10 -0
  17. package/dist/web/__next._tree.txt +5 -0
  18. package/dist/web/_next/static/AUHtJgkYALYyNwHop9pgT/_buildManifest.js +1 -0
  19. package/dist/web/_next/static/AUHtJgkYALYyNwHop9pgT/_ssgManifest.js +1 -0
  20. package/dist/web/_next/static/chunks/0a7753a9.4cb02a98e2e453b9.js +1 -0
  21. package/dist/web/_next/static/chunks/1222.aa4f7f7f397533e9.js +1 -0
  22. package/dist/web/_next/static/chunks/1228.d291278320bca9ca.js +1 -0
  23. package/dist/web/_next/static/chunks/1243.f35c2e6494079e05.js +1 -0
  24. package/dist/web/_next/static/chunks/1311.8c6b8930e22ceea0.js +1 -0
  25. package/dist/web/_next/static/chunks/132.6032826021079bce.js +1 -0
  26. package/dist/web/_next/static/chunks/133.1106654a28b5afda.js +1 -0
  27. package/dist/web/_next/static/chunks/1385.086b560acb0d7a68.js +115 -0
  28. package/dist/web/_next/static/chunks/1642.cac26d30ac331cb4.js +1 -0
  29. package/dist/web/_next/static/chunks/1733.f06c240b3ef8a428.js +77 -0
  30. package/dist/web/_next/static/chunks/1750.f7ba3332b56a8e68.js +1 -0
  31. package/dist/web/_next/static/chunks/1763.28beedca593b5e19.js +138 -0
  32. package/dist/web/_next/static/chunks/179.b9e8f385bd414d1c.js +62 -0
  33. package/dist/web/_next/static/chunks/1838.7c8990f903e3524a.js +215 -0
  34. package/dist/web/_next/static/chunks/20154aaa.868648f838e03bf1.js +1 -0
  35. package/dist/web/_next/static/chunks/2038.640b672702093b24.js +1 -0
  36. package/dist/web/_next/static/chunks/2112.d72eefbdf81659b3.js +23 -0
  37. package/dist/web/_next/static/chunks/2125.61c6e4a3541e30ad.js +1 -0
  38. package/dist/web/_next/static/chunks/2129.61afb2f4ff59e46a.js +24 -0
  39. package/dist/web/_next/static/chunks/213.68ce1361aee3281a.js +1 -0
  40. package/dist/web/_next/static/chunks/2179.3f55be0b79e3cca7.js +1 -0
  41. package/dist/web/_next/static/chunks/2180.e6bad8186f52ff89.js +1 -0
  42. package/dist/web/_next/static/chunks/2264.0fc1474d26067a01.js +1 -0
  43. package/dist/web/_next/static/chunks/2376.ed6302a91a9de1ae.js +36 -0
  44. package/dist/web/_next/static/chunks/2545.3ff192a933baf11e.js +1 -0
  45. package/dist/web/_next/static/chunks/2620.d17f4fac0eec88a5.js +1 -0
  46. package/dist/web/_next/static/chunks/2847.d3124853ca727b78.js +1 -0
  47. package/dist/web/_next/static/chunks/2849.f2bcad51c68e44b5.js +1 -0
  48. package/dist/web/_next/static/chunks/3189.64c6546d621eec0b.js +1 -0
  49. package/dist/web/_next/static/chunks/3348-9ef29f9cedf6c0df.js +1 -0
  50. package/dist/web/_next/static/chunks/3429.436b229808b33e81.js +1 -0
  51. package/dist/web/_next/static/chunks/3514.9643e815d690f2fb.js +1 -0
  52. package/dist/web/_next/static/chunks/3552.8dd9a3d2c3bcef65.js +86 -0
  53. package/dist/web/_next/static/chunks/3606.b59e695fd05b4eb3.js +74 -0
  54. package/dist/web/_next/static/chunks/3692.8c6b8930e22ceea0.js +1 -0
  55. package/dist/web/_next/static/chunks/3736.4a5662ceeecc6acb.js +94 -0
  56. package/dist/web/_next/static/chunks/392.842b338137824bb8.js +1 -0
  57. package/dist/web/_next/static/chunks/3973-9b18bcd9afc0bcb4.js +1 -0
  58. package/dist/web/_next/static/chunks/3977.8cfd8dec4cb8e893.js +1 -0
  59. package/dist/web/_next/static/chunks/4090.441fa61655da9b38.js +1 -0
  60. package/dist/web/_next/static/chunks/4303.54c4aa0b89834fc6.js +1 -0
  61. package/dist/web/_next/static/chunks/4314.6bbd89507909cad1.js +1 -0
  62. package/dist/web/_next/static/chunks/4551.d0d6723cacfb90b9.js +226 -0
  63. package/dist/web/_next/static/chunks/4566.d8e009823b8647d1.js +90 -0
  64. package/dist/web/_next/static/chunks/4643.dbb152682d076617.js +1 -0
  65. package/dist/web/_next/static/chunks/4732-76a574510722b2c3.js +11 -0
  66. package/dist/web/_next/static/chunks/4924.3f5c77a103ac69a9.js +8 -0
  67. package/dist/web/_next/static/chunks/4930.42e564644c94a93b.js +1 -0
  68. package/dist/web/_next/static/chunks/5155.d7e8db52ab4c95e0.js +27 -0
  69. package/dist/web/_next/static/chunks/5158-267908d069475cdc.js +32 -0
  70. package/dist/web/_next/static/chunks/543.5636e97aa68eb9c8.js +41 -0
  71. package/dist/web/_next/static/chunks/5506.98304a1821200439.js +1 -0
  72. package/dist/web/_next/static/chunks/5622.5ead5e748ecedbd1.js +1 -0
  73. package/dist/web/_next/static/chunks/565f33a6-fd3410bd29f39fdf.js +1 -0
  74. package/dist/web/_next/static/chunks/5708.22b4531ceebf3eca.js +1 -0
  75. package/dist/web/_next/static/chunks/5804.ff72a927135eb74c.js +93 -0
  76. package/dist/web/_next/static/chunks/588.78e2528ff24df85c.js +287 -0
  77. package/dist/web/_next/static/chunks/6001.e5bcb28bb9ce6571.js +1 -0
  78. package/dist/web/_next/static/chunks/6075.a6b8434732056526.js +1 -0
  79. package/dist/web/_next/static/chunks/6180.82fa683aa16f21df.js +1 -0
  80. package/dist/web/_next/static/chunks/6274.a3795ca6dacb3d62.js +32 -0
  81. package/dist/web/_next/static/chunks/635-d6ae421935055337.js +1 -0
  82. package/dist/web/_next/static/chunks/6419.842467d9a877e770.js +1 -0
  83. package/dist/web/_next/static/chunks/6420.bfa7bc86d03dcefc.js +1 -0
  84. package/dist/web/_next/static/chunks/6552-145e634541b5b66c.js +1 -0
  85. package/dist/web/_next/static/chunks/6647.740ec32a32201eab.js +64 -0
  86. package/dist/web/_next/static/chunks/6730.88fc6f2ccc49496c.js +1 -0
  87. package/dist/web/_next/static/chunks/6739.82570eba0a02cb26.js +1 -0
  88. package/dist/web/_next/static/chunks/674.2b5ffad0676aedbe.js +1 -0
  89. package/dist/web/_next/static/chunks/6742.8e137138a5d1c9e1.js +1 -0
  90. package/dist/web/_next/static/chunks/6987.743a63813c6288ce.js +79 -0
  91. package/dist/web/_next/static/chunks/7202.dad90ce4a1d78f67.js +1 -0
  92. package/dist/web/_next/static/chunks/7233.0f252f6c1cce8058.js +1 -0
  93. package/dist/web/_next/static/chunks/7248.d89bf328a0dc1b4c.js +1 -0
  94. package/dist/web/_next/static/chunks/7263.6f224c3924155294.js +1 -0
  95. package/dist/web/_next/static/chunks/7341.6958eac888a96823.js +34 -0
  96. package/dist/web/_next/static/chunks/7424.c8c9f85c8ea65885.js +1 -0
  97. package/dist/web/_next/static/chunks/7507.1204ae29f46e3f01.js +1 -0
  98. package/dist/web/_next/static/chunks/7629-16de8d4154923623.js +1 -0
  99. package/dist/web/_next/static/chunks/7811.19082afa63eb73ba.js +1 -0
  100. package/dist/web/_next/static/chunks/7853.d01982fa0afc1ee2.js +24 -0
  101. package/dist/web/_next/static/chunks/7908.432ab9feeb9ae756.js +1 -0
  102. package/dist/web/_next/static/chunks/7960.3b1c77b882ba4bb1.js +1 -0
  103. package/dist/web/_next/static/chunks/7967.6c62be01fad1603c.js +1 -0
  104. package/dist/web/_next/static/chunks/7c89255b.f727562586fa21cc.js +153 -0
  105. package/dist/web/_next/static/chunks/8044.5f87392585c9f3e4.js +38 -0
  106. package/dist/web/_next/static/chunks/8054.feeb01b8acdb31d4.js +1 -0
  107. package/dist/web/_next/static/chunks/8115.68d46fb961c724e0.js +172 -0
  108. package/dist/web/_next/static/chunks/817.cd0f4d221eca4c8b.js +104 -0
  109. package/dist/web/_next/static/chunks/8334-0e9493cfa1547244.js +1 -0
  110. package/dist/web/_next/static/chunks/8467.f34d938a32d40325.js +1 -0
  111. package/dist/web/_next/static/chunks/8495.d6cea1be03635fa8.js +148 -0
  112. package/dist/web/_next/static/chunks/8516-b3694c9156666b12.js +152 -0
  113. package/dist/web/_next/static/chunks/8638.03c6480d4aaeb5b3.js +1 -0
  114. package/dist/web/_next/static/chunks/8716.1ad6febb58e8560e.js +1 -0
  115. package/dist/web/_next/static/chunks/8839.1ad64faf06fb4a33.js +1 -0
  116. package/dist/web/_next/static/chunks/8922-a9cee4a104876005.js +1 -0
  117. package/dist/web/_next/static/chunks/910.43be9c3be85c7fa0.js +21 -0
  118. package/dist/web/_next/static/chunks/925.7ef504ee39f11840.js +1 -0
  119. package/dist/web/_next/static/chunks/9259.f4337cbb56e2e0b6.js +1 -0
  120. package/dist/web/_next/static/chunks/9299.af2a95f6ece07482.js +1 -0
  121. package/dist/web/_next/static/chunks/9387.96263a2d1602a078.js +1 -0
  122. package/dist/web/_next/static/chunks/9568-0bfadca4fcb105aa.js +1 -0
  123. package/dist/web/_next/static/chunks/9641.f6f2982fc4b4735f.js +1 -0
  124. package/dist/web/_next/static/chunks/9675.be4a175f92aa2f26.js +1 -0
  125. package/dist/web/_next/static/chunks/9860.05fa134ae44699e0.js +1 -0
  126. package/dist/web/_next/static/chunks/9b87412a.d2cfae4121762dec.js +122 -0
  127. package/dist/web/_next/static/chunks/a012e9f0.7dbb2fe05ec0b816.js +82 -0
  128. package/dist/web/_next/static/chunks/a096f98a-5a93977f5f5de413.js +1 -0
  129. package/dist/web/_next/static/chunks/ab1da478.d051e56375dab6d8.js +1 -0
  130. package/dist/web/_next/static/chunks/adcd17ec-9a2791632136b67b.js +18 -0
  131. package/dist/web/_next/static/chunks/app/_global-error/page-5bd6526483106080.js +1 -0
  132. package/dist/web/_next/static/chunks/app/_not-found/page-877523282abd5a7c.js +1 -0
  133. package/dist/web/_next/static/chunks/app/admin/admins/page-0f20b93a1fbe900c.js +1 -0
  134. package/dist/web/_next/static/chunks/app/admin/login/page-dbcfb21ebbd0bb00.js +1 -0
  135. package/dist/web/_next/static/chunks/app/admin/modes/page-8f292692166b56fc.js +1 -0
  136. package/dist/web/_next/static/chunks/app/admin/ota/page-c9fe76f24ac08288.js +1 -0
  137. package/dist/web/_next/static/chunks/app/admin/page-622381f5dac39ddb.js +1 -0
  138. package/dist/web/_next/static/chunks/app/admin/turn/page-8f6b835a319f3fe3.js +1 -0
  139. package/dist/web/_next/static/chunks/app/dev/question/page-5fd80ae293617365.js +1 -0
  140. package/dist/web/_next/static/chunks/app/layout-341400810c81f67e.js +1 -0
  141. package/dist/web/_next/static/chunks/app/login/page-31786ee656da76b1.js +1 -0
  142. package/dist/web/_next/static/chunks/app/page-1cf39061b48db156.js +22 -0
  143. package/dist/web/_next/static/chunks/app/workspace/browse/page-5bd6526483106080.js +1 -0
  144. package/dist/web/_next/static/chunks/app/workspace/editor/page-5bd6526483106080.js +1 -0
  145. package/dist/web/_next/static/chunks/app/workspace/files/page-5bd6526483106080.js +1 -0
  146. package/dist/web/_next/static/chunks/app/workspace/git/page-5bd6526483106080.js +1 -0
  147. package/dist/web/_next/static/chunks/app/workspace/layout-5e8f95fbc4ebaa6b.js +14 -0
  148. package/dist/web/_next/static/chunks/app/workspace/mobile/page-5bd6526483106080.js +1 -0
  149. package/dist/web/_next/static/chunks/app/workspace/page-5bd6526483106080.js +1 -0
  150. package/dist/web/_next/static/chunks/app/workspace/remote/page-5bd6526483106080.js +1 -0
  151. package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-5bd6526483106080.js +1 -0
  152. package/dist/web/_next/static/chunks/app/workspace/workspaces/page-5bd6526483106080.js +1 -0
  153. package/dist/web/_next/static/chunks/bbfbfb6c.069db3c4cc981ed3.js +1 -0
  154. package/dist/web/_next/static/chunks/c7879cf7-0d16fce1674078f9.js +1 -0
  155. package/dist/web/_next/static/chunks/c7ea4e13.6153499d4c2fb1f2.js +1 -0
  156. package/dist/web/_next/static/chunks/cdcce140.7a440644c3dd52b8.js +1 -0
  157. package/dist/web/_next/static/chunks/da9a53d6.df25e193f1f5bcae.js +62 -0
  158. package/dist/web/_next/static/chunks/framework-42053c69543a55f9.js +1 -0
  159. package/dist/web/_next/static/chunks/main-255c95c36766ce86.js +5 -0
  160. package/dist/web/_next/static/chunks/main-app-1831d4f902c3fcb9.js +1 -0
  161. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-5bd6526483106080.js +1 -0
  162. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-5bd6526483106080.js +1 -0
  163. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/global-error-76800531999827bd.js +1 -0
  164. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-5bd6526483106080.js +1 -0
  165. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-5bd6526483106080.js +1 -0
  166. package/dist/web/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  167. package/dist/web/_next/static/chunks/webpack-c971919003362f96.js +1 -0
  168. package/dist/web/_next/static/css/56adcd4d72bf2d84.css +1 -0
  169. package/dist/web/_next/static/css/5c40e58137a11306.css +1 -0
  170. package/dist/web/_next/static/css/b496025c9cd768cc.css +1 -0
  171. package/dist/web/_next/static/media/013b72fa676f92e0-s.woff2 +0 -0
  172. package/dist/web/_next/static/media/22a5144ee8d83bca-s.p.woff2 +0 -0
  173. package/dist/web/_next/static/media/2b5b02fc7e511755-s.woff2 +0 -0
  174. package/dist/web/_next/static/media/65f03d54ccadf4a8-s.woff2 +0 -0
  175. package/dist/web/_next/static/media/7d4881bb7e1bf84d-s.p.woff2 +0 -0
  176. package/dist/web/_next/static/media/9766a7e9e2e0ad5a-s.woff2 +0 -0
  177. package/dist/web/_next/static/media/aa016aab0e6d1295-s.woff2 +0 -0
  178. package/dist/web/_next/static/media/b66cf8e69499582a-s.woff2 +0 -0
  179. package/dist/web/_next/static/media/b9408752a0c24fb9-s.woff2 +0 -0
  180. package/dist/web/_next/static/media/e038a29029a234f2-s.woff2 +0 -0
  181. package/dist/web/_next/static/media/f639721981034f88-s.woff2 +0 -0
  182. package/dist/web/_not-found/__next._full.txt +23 -0
  183. package/dist/web/_not-found/__next._head.txt +6 -0
  184. package/dist/web/_not-found/__next._index.txt +10 -0
  185. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +5 -0
  186. package/dist/web/_not-found/__next._not-found.txt +5 -0
  187. package/dist/web/_not-found/__next._tree.txt +5 -0
  188. package/dist/web/_not-found.html +1 -0
  189. package/dist/web/_not-found.txt +23 -0
  190. package/dist/web/admin/__next._full.txt +27 -0
  191. package/dist/web/admin/__next._head.txt +6 -0
  192. package/dist/web/admin/__next._index.txt +10 -0
  193. package/dist/web/admin/__next._tree.txt +5 -0
  194. package/dist/web/admin/__next.admin.__PAGE__.txt +9 -0
  195. package/dist/web/admin/__next.admin.txt +5 -0
  196. package/dist/web/admin/admins/__next._full.txt +27 -0
  197. package/dist/web/admin/admins/__next._head.txt +6 -0
  198. package/dist/web/admin/admins/__next._index.txt +10 -0
  199. package/dist/web/admin/admins/__next._tree.txt +5 -0
  200. package/dist/web/admin/admins/__next.admin.admins.__PAGE__.txt +9 -0
  201. package/dist/web/admin/admins/__next.admin.admins.txt +5 -0
  202. package/dist/web/admin/admins/__next.admin.txt +5 -0
  203. package/dist/web/admin/admins.html +1 -0
  204. package/dist/web/admin/admins.txt +27 -0
  205. package/dist/web/admin/login/__next._full.txt +27 -0
  206. package/dist/web/admin/login/__next._head.txt +6 -0
  207. package/dist/web/admin/login/__next._index.txt +10 -0
  208. package/dist/web/admin/login/__next._tree.txt +5 -0
  209. package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +9 -0
  210. package/dist/web/admin/login/__next.admin.login.txt +5 -0
  211. package/dist/web/admin/login/__next.admin.txt +5 -0
  212. package/dist/web/admin/login.html +1 -0
  213. package/dist/web/admin/login.txt +27 -0
  214. package/dist/web/admin/modes/__next._full.txt +27 -0
  215. package/dist/web/admin/modes/__next._head.txt +6 -0
  216. package/dist/web/admin/modes/__next._index.txt +10 -0
  217. package/dist/web/admin/modes/__next._tree.txt +5 -0
  218. package/dist/web/admin/modes/__next.admin.modes.__PAGE__.txt +9 -0
  219. package/dist/web/admin/modes/__next.admin.modes.txt +5 -0
  220. package/dist/web/admin/modes/__next.admin.txt +5 -0
  221. package/dist/web/admin/modes.html +1 -0
  222. package/dist/web/admin/modes.txt +27 -0
  223. package/dist/web/admin/ota/__next._full.txt +27 -0
  224. package/dist/web/admin/ota/__next._head.txt +6 -0
  225. package/dist/web/admin/ota/__next._index.txt +10 -0
  226. package/dist/web/admin/ota/__next._tree.txt +5 -0
  227. package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +9 -0
  228. package/dist/web/admin/ota/__next.admin.ota.txt +5 -0
  229. package/dist/web/admin/ota/__next.admin.txt +5 -0
  230. package/dist/web/admin/ota.html +1 -0
  231. package/dist/web/admin/ota.txt +27 -0
  232. package/dist/web/admin/turn/__next._full.txt +27 -0
  233. package/dist/web/admin/turn/__next._head.txt +6 -0
  234. package/dist/web/admin/turn/__next._index.txt +10 -0
  235. package/dist/web/admin/turn/__next._tree.txt +5 -0
  236. package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +9 -0
  237. package/dist/web/admin/turn/__next.admin.turn.txt +5 -0
  238. package/dist/web/admin/turn/__next.admin.txt +5 -0
  239. package/dist/web/admin/turn.html +1 -0
  240. package/dist/web/admin/turn.txt +27 -0
  241. package/dist/web/admin.html +1 -0
  242. package/dist/web/admin.txt +27 -0
  243. package/dist/web/agent-icons/aider.svg +1 -0
  244. package/dist/web/agent-icons/amp.png +0 -0
  245. package/dist/web/agent-icons/ante.png +0 -0
  246. package/dist/web/agent-icons/antigravity.png +0 -0
  247. package/dist/web/agent-icons/auggie.png +0 -0
  248. package/dist/web/agent-icons/autohand.png +0 -0
  249. package/dist/web/agent-icons/claude-ui.png +0 -0
  250. package/dist/web/agent-icons/claude.svg +1 -0
  251. package/dist/web/agent-icons/cline.png +0 -0
  252. package/dist/web/agent-icons/codebuff.png +0 -0
  253. package/dist/web/agent-icons/codex-ui.png +0 -0
  254. package/dist/web/agent-icons/codex.svg +1 -0
  255. package/dist/web/agent-icons/command-code.png +0 -0
  256. package/dist/web/agent-icons/continue.png +0 -0
  257. package/dist/web/agent-icons/copilot.png +0 -0
  258. package/dist/web/agent-icons/crush.png +0 -0
  259. package/dist/web/agent-icons/cursor.png +0 -0
  260. package/dist/web/agent-icons/devin.png +0 -0
  261. package/dist/web/agent-icons/droid.png +0 -0
  262. package/dist/web/agent-icons/gemini.png +0 -0
  263. package/dist/web/agent-icons/goose.png +0 -0
  264. package/dist/web/agent-icons/grok.png +0 -0
  265. package/dist/web/agent-icons/hermes.png +0 -0
  266. package/dist/web/agent-icons/kilo.png +0 -0
  267. package/dist/web/agent-icons/kimi.png +0 -0
  268. package/dist/web/agent-icons/kiro.png +0 -0
  269. package/dist/web/agent-icons/mimo-code.png +0 -0
  270. package/dist/web/agent-icons/mistral-vibe.png +0 -0
  271. package/dist/web/agent-icons/omp.svg +1 -0
  272. package/dist/web/agent-icons/openclaude.png +0 -0
  273. package/dist/web/agent-icons/openclaw.png +0 -0
  274. package/dist/web/agent-icons/opencode.png +0 -0
  275. package/dist/web/agent-icons/pi.svg +1 -0
  276. package/dist/web/agent-icons/prime-agent.png +0 -0
  277. package/dist/web/agent-icons/qwen-code.png +0 -0
  278. package/dist/web/agent-icons/rovo.png +0 -0
  279. package/dist/web/agent-icons/trae.png +0 -0
  280. package/dist/web/agents/claude.svg +1 -0
  281. package/dist/web/agents/codex.svg +1 -0
  282. package/dist/web/agents/gemini.svg +1 -0
  283. package/dist/web/agents/opencode.svg +1 -0
  284. package/dist/web/backgrounds/bg10.jpg +0 -0
  285. package/dist/web/backgrounds/bg11.jpg +0 -0
  286. package/dist/web/backgrounds/bg12.jpg +0 -0
  287. package/dist/web/backgrounds/bg13.jpg +0 -0
  288. package/dist/web/backgrounds/bg2.jpg +0 -0
  289. package/dist/web/backgrounds/bg3.jpg +0 -0
  290. package/dist/web/backgrounds/bg4.jpg +0 -0
  291. package/dist/web/backgrounds/bg5.jpg +0 -0
  292. package/dist/web/backgrounds/bg6.jpg +0 -0
  293. package/dist/web/backgrounds/bg7.jpg +0 -0
  294. package/dist/web/backgrounds/bg8.jpg +0 -0
  295. package/dist/web/backgrounds/bg9.jpg +0 -0
  296. package/dist/web/dev/question/__next._full.txt +27 -0
  297. package/dist/web/dev/question/__next._head.txt +6 -0
  298. package/dist/web/dev/question/__next._index.txt +10 -0
  299. package/dist/web/dev/question/__next._tree.txt +5 -0
  300. package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +9 -0
  301. package/dist/web/dev/question/__next.dev.question.txt +5 -0
  302. package/dist/web/dev/question/__next.dev.txt +5 -0
  303. package/dist/web/dev/question.html +1 -0
  304. package/dist/web/dev/question.txt +27 -0
  305. package/dist/web/favicon.ico +0 -0
  306. package/dist/web/file.svg +1 -0
  307. package/dist/web/globe.svg +1 -0
  308. package/dist/web/icon-192.png +0 -0
  309. package/dist/web/icon-192.svg +3 -0
  310. package/dist/web/icon-512.png +0 -0
  311. package/dist/web/icon-512.svg +3 -0
  312. package/dist/web/icons/file-types/astro.svg +1 -0
  313. package/dist/web/icons/file-types/audio.svg +1 -0
  314. package/dist/web/icons/file-types/avif.svg +1 -0
  315. package/dist/web/icons/file-types/bat.svg +1 -0
  316. package/dist/web/icons/file-types/c.svg +1 -0
  317. package/dist/web/icons/file-types/cheader.svg +1 -0
  318. package/dist/web/icons/file-types/clojure.svg +1 -0
  319. package/dist/web/icons/file-types/clojurescript.svg +1 -0
  320. package/dist/web/icons/file-types/cloudfoundry.svg +1 -0
  321. package/dist/web/icons/file-types/cpp.svg +1 -0
  322. package/dist/web/icons/file-types/cppheader.svg +1 -0
  323. package/dist/web/icons/file-types/csharp.svg +1 -0
  324. package/dist/web/icons/file-types/css.svg +1 -0
  325. package/dist/web/icons/file-types/dartlang.svg +1 -0
  326. package/dist/web/icons/file-types/datadog.svg +1 -0
  327. package/dist/web/icons/file-types/default.svg +1 -0
  328. package/dist/web/icons/file-types/diff.svg +1 -0
  329. package/dist/web/icons/file-types/django.svg +1 -0
  330. package/dist/web/icons/file-types/docker.svg +1 -0
  331. package/dist/web/icons/file-types/dotenv.svg +1 -0
  332. package/dist/web/icons/file-types/editorconfig.svg +1 -0
  333. package/dist/web/icons/file-types/elixir.svg +1 -0
  334. package/dist/web/icons/file-types/erlang.svg +1 -0
  335. package/dist/web/icons/file-types/esphome.svg +1 -0
  336. package/dist/web/icons/file-types/font.svg +1 -0
  337. package/dist/web/icons/file-types/git.svg +1 -0
  338. package/dist/web/icons/file-types/gnu.svg +1 -0
  339. package/dist/web/icons/file-types/go.svg +1 -0
  340. package/dist/web/icons/file-types/graphql.svg +1 -0
  341. package/dist/web/icons/file-types/haskell.svg +1 -0
  342. package/dist/web/icons/file-types/html.svg +1 -0
  343. package/dist/web/icons/file-types/image.svg +1 -0
  344. package/dist/web/icons/file-types/ini.svg +1 -0
  345. package/dist/web/icons/file-types/janet.svg +1 -0
  346. package/dist/web/icons/file-types/jar.svg +1 -0
  347. package/dist/web/icons/file-types/java.svg +1 -0
  348. package/dist/web/icons/file-types/js.svg +1 -0
  349. package/dist/web/icons/file-types/json.svg +1 -0
  350. package/dist/web/icons/file-types/json5.svg +1 -0
  351. package/dist/web/icons/file-types/kotlin.svg +1 -0
  352. package/dist/web/icons/file-types/less.svg +1 -0
  353. package/dist/web/icons/file-types/license.svg +1 -0
  354. package/dist/web/icons/file-types/locale.svg +1 -0
  355. package/dist/web/icons/file-types/log.svg +1 -0
  356. package/dist/web/icons/file-types/lua.svg +1 -0
  357. package/dist/web/icons/file-types/markdown.svg +1 -0
  358. package/dist/web/icons/file-types/mdx.svg +1 -0
  359. package/dist/web/icons/file-types/npm.svg +1 -0
  360. package/dist/web/icons/file-types/objectivec.svg +1 -0
  361. package/dist/web/icons/file-types/ocaml.svg +1 -0
  362. package/dist/web/icons/file-types/parcel.svg +1 -0
  363. package/dist/web/icons/file-types/pddl_happenings.svg +1 -0
  364. package/dist/web/icons/file-types/pdf.svg +1 -0
  365. package/dist/web/icons/file-types/php.svg +1 -0
  366. package/dist/web/icons/file-types/powershell.svg +1 -0
  367. package/dist/web/icons/file-types/protobuf.svg +1 -0
  368. package/dist/web/icons/file-types/python.svg +1 -0
  369. package/dist/web/icons/file-types/r.svg +1 -0
  370. package/dist/web/icons/file-types/reactjs.svg +1 -0
  371. package/dist/web/icons/file-types/reactts.svg +1 -0
  372. package/dist/web/icons/file-types/ruby.svg +1 -0
  373. package/dist/web/icons/file-types/rust.svg +1 -0
  374. package/dist/web/icons/file-types/sass.svg +1 -0
  375. package/dist/web/icons/file-types/scala.svg +1 -0
  376. package/dist/web/icons/file-types/scss.svg +1 -0
  377. package/dist/web/icons/file-types/shell.svg +1 -0
  378. package/dist/web/icons/file-types/sql.svg +1 -0
  379. package/dist/web/icons/file-types/sqlite.svg +1 -0
  380. package/dist/web/icons/file-types/stylus.svg +1 -0
  381. package/dist/web/icons/file-types/svelte.svg +1 -0
  382. package/dist/web/icons/file-types/svg.svg +1 -0
  383. package/dist/web/icons/file-types/swift.svg +1 -0
  384. package/dist/web/icons/file-types/text.svg +1 -0
  385. package/dist/web/icons/file-types/toml.svg +1 -0
  386. package/dist/web/icons/file-types/typescript.svg +1 -0
  387. package/dist/web/icons/file-types/video.svg +1 -0
  388. package/dist/web/icons/file-types/vue.svg +1 -0
  389. package/dist/web/icons/file-types/xml.svg +1 -0
  390. package/dist/web/icons/file-types/yaml.svg +1 -0
  391. package/dist/web/icons/file-types/zip.svg +1 -0
  392. package/dist/web/icons/folder-types/android-open.svg +1 -0
  393. package/dist/web/icons/folder-types/android.svg +1 -0
  394. package/dist/web/icons/folder-types/api-open.svg +1 -0
  395. package/dist/web/icons/folder-types/api.svg +1 -0
  396. package/dist/web/icons/folder-types/app-open.svg +1 -0
  397. package/dist/web/icons/folder-types/app.svg +1 -0
  398. package/dist/web/icons/folder-types/asset-open.svg +1 -0
  399. package/dist/web/icons/folder-types/asset.svg +1 -0
  400. package/dist/web/icons/folder-types/azurepipelines-open.svg +1 -0
  401. package/dist/web/icons/folder-types/azurepipelines.svg +1 -0
  402. package/dist/web/icons/folder-types/blueprint-open.svg +1 -0
  403. package/dist/web/icons/folder-types/blueprint.svg +1 -0
  404. package/dist/web/icons/folder-types/bower-open.svg +1 -0
  405. package/dist/web/icons/folder-types/bower.svg +1 -0
  406. package/dist/web/icons/folder-types/component-open.svg +1 -0
  407. package/dist/web/icons/folder-types/component.svg +1 -0
  408. package/dist/web/icons/folder-types/config-open.svg +1 -0
  409. package/dist/web/icons/folder-types/config.svg +1 -0
  410. package/dist/web/icons/folder-types/controller-open.svg +1 -0
  411. package/dist/web/icons/folder-types/controller.svg +1 -0
  412. package/dist/web/icons/folder-types/css-open.svg +1 -0
  413. package/dist/web/icons/folder-types/css.svg +1 -0
  414. package/dist/web/icons/folder-types/db-open.svg +1 -0
  415. package/dist/web/icons/folder-types/db.svg +1 -0
  416. package/dist/web/icons/folder-types/default-open.svg +1 -0
  417. package/dist/web/icons/folder-types/default.svg +1 -0
  418. package/dist/web/icons/folder-types/dist-open.svg +1 -0
  419. package/dist/web/icons/folder-types/dist.svg +1 -0
  420. package/dist/web/icons/folder-types/docs-open.svg +1 -0
  421. package/dist/web/icons/folder-types/docs.svg +1 -0
  422. package/dist/web/icons/folder-types/fonts-open.svg +1 -0
  423. package/dist/web/icons/folder-types/fonts.svg +1 -0
  424. package/dist/web/icons/folder-types/git-open.svg +1 -0
  425. package/dist/web/icons/folder-types/git.svg +1 -0
  426. package/dist/web/icons/folder-types/github-open.svg +1 -0
  427. package/dist/web/icons/folder-types/github.svg +1 -0
  428. package/dist/web/icons/folder-types/helper-open.svg +1 -0
  429. package/dist/web/icons/folder-types/helper.svg +1 -0
  430. package/dist/web/icons/folder-types/hook-open.svg +1 -0
  431. package/dist/web/icons/folder-types/hook.svg +1 -0
  432. package/dist/web/icons/folder-types/husky-open.svg +1 -0
  433. package/dist/web/icons/folder-types/husky.svg +1 -0
  434. package/dist/web/icons/folder-types/idea-open.svg +1 -0
  435. package/dist/web/icons/folder-types/idea.svg +1 -0
  436. package/dist/web/icons/folder-types/images-open.svg +1 -0
  437. package/dist/web/icons/folder-types/images.svg +1 -0
  438. package/dist/web/icons/folder-types/interfaces-open.svg +1 -0
  439. package/dist/web/icons/folder-types/interfaces.svg +1 -0
  440. package/dist/web/icons/folder-types/ios-open.svg +1 -0
  441. package/dist/web/icons/folder-types/ios.svg +1 -0
  442. package/dist/web/icons/folder-types/library-open.svg +1 -0
  443. package/dist/web/icons/folder-types/library.svg +1 -0
  444. package/dist/web/icons/folder-types/locale-open.svg +1 -0
  445. package/dist/web/icons/folder-types/locale.svg +1 -0
  446. package/dist/web/icons/folder-types/middleware-open.svg +1 -0
  447. package/dist/web/icons/folder-types/middleware.svg +1 -0
  448. package/dist/web/icons/folder-types/model-open.svg +1 -0
  449. package/dist/web/icons/folder-types/model.svg +1 -0
  450. package/dist/web/icons/folder-types/node-open.svg +1 -0
  451. package/dist/web/icons/folder-types/node.svg +1 -0
  452. package/dist/web/icons/folder-types/public-open.svg +1 -0
  453. package/dist/web/icons/folder-types/public.svg +1 -0
  454. package/dist/web/icons/folder-types/redux-open.svg +1 -0
  455. package/dist/web/icons/folder-types/redux.svg +1 -0
  456. package/dist/web/icons/folder-types/route-open.svg +1 -0
  457. package/dist/web/icons/folder-types/route.svg +1 -0
  458. package/dist/web/icons/folder-types/script-open.svg +1 -0
  459. package/dist/web/icons/folder-types/script.svg +1 -0
  460. package/dist/web/icons/folder-types/seedkit-open.svg +1 -0
  461. package/dist/web/icons/folder-types/seedkit.svg +1 -0
  462. package/dist/web/icons/folder-types/server-open.svg +1 -0
  463. package/dist/web/icons/folder-types/server.svg +1 -0
  464. package/dist/web/icons/folder-types/services-open.svg +1 -0
  465. package/dist/web/icons/folder-types/services.svg +1 -0
  466. package/dist/web/icons/folder-types/src-open.svg +1 -0
  467. package/dist/web/icons/folder-types/src.svg +1 -0
  468. package/dist/web/icons/folder-types/story-open.svg +1 -0
  469. package/dist/web/icons/folder-types/story.svg +1 -0
  470. package/dist/web/icons/folder-types/style-open.svg +1 -0
  471. package/dist/web/icons/folder-types/style.svg +1 -0
  472. package/dist/web/icons/folder-types/template-open.svg +1 -0
  473. package/dist/web/icons/folder-types/template.svg +1 -0
  474. package/dist/web/icons/folder-types/test-open.svg +1 -0
  475. package/dist/web/icons/folder-types/test.svg +1 -0
  476. package/dist/web/icons/folder-types/theme-open.svg +1 -0
  477. package/dist/web/icons/folder-types/theme.svg +1 -0
  478. package/dist/web/icons/folder-types/tools-open.svg +1 -0
  479. package/dist/web/icons/folder-types/tools.svg +1 -0
  480. package/dist/web/icons/folder-types/typescript-open.svg +1 -0
  481. package/dist/web/icons/folder-types/typescript.svg +1 -0
  482. package/dist/web/icons/folder-types/typings-open.svg +1 -0
  483. package/dist/web/icons/folder-types/typings.svg +1 -0
  484. package/dist/web/icons/folder-types/view-open.svg +1 -0
  485. package/dist/web/icons/folder-types/view.svg +1 -0
  486. package/dist/web/icons/folder-types/vscode-open.svg +1 -0
  487. package/dist/web/icons/folder-types/vscode.svg +1 -0
  488. package/dist/web/index.html +1 -0
  489. package/dist/web/index.txt +25 -0
  490. package/dist/web/login/__next._full.txt +27 -0
  491. package/dist/web/login/__next._head.txt +6 -0
  492. package/dist/web/login/__next._index.txt +10 -0
  493. package/dist/web/login/__next._tree.txt +5 -0
  494. package/dist/web/login/__next.login.__PAGE__.txt +9 -0
  495. package/dist/web/login/__next.login.txt +5 -0
  496. package/dist/web/login.html +1 -0
  497. package/dist/web/login.txt +27 -0
  498. package/dist/web/manifest.json +53 -0
  499. package/dist/web/maskable-192.png +0 -0
  500. package/dist/web/maskable-512.png +0 -0
  501. package/dist/web/next.svg +1 -0
  502. package/dist/web/proxy.html +179 -0
  503. package/dist/web/screenshot-desktop.png +0 -0
  504. package/dist/web/screenshot-mobile.png +0 -0
  505. package/dist/web/screenshots/desktop-ide.webp +0 -0
  506. package/dist/web/screenshots/mobile-1.webp +0 -0
  507. package/dist/web/screenshots/mobile-2.webp +0 -0
  508. package/dist/web/screenshots/mobile-3.webp +0 -0
  509. package/dist/web/sw-site.js +283 -0
  510. package/dist/web/sw.js +88 -0
  511. package/dist/web/swBridgeClaim.js +57 -0
  512. package/dist/web/vercel.svg +1 -0
  513. package/dist/web/window.svg +1 -0
  514. package/dist/web/workspace/__next._full.txt +25 -0
  515. package/dist/web/workspace/__next._head.txt +6 -0
  516. package/dist/web/workspace/__next._index.txt +10 -0
  517. package/dist/web/workspace/__next._tree.txt +6 -0
  518. package/dist/web/workspace/__next.workspace.__PAGE__.txt +5 -0
  519. package/dist/web/workspace/__next.workspace.txt +8 -0
  520. package/dist/web/workspace/browse/__next._full.txt +27 -0
  521. package/dist/web/workspace/browse/__next._head.txt +6 -0
  522. package/dist/web/workspace/browse/__next._index.txt +10 -0
  523. package/dist/web/workspace/browse/__next._tree.txt +6 -0
  524. package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +5 -0
  525. package/dist/web/workspace/browse/__next.workspace.browse.txt +5 -0
  526. package/dist/web/workspace/browse/__next.workspace.txt +8 -0
  527. package/dist/web/workspace/browse.html +1 -0
  528. package/dist/web/workspace/browse.txt +27 -0
  529. package/dist/web/workspace/editor/__next._full.txt +27 -0
  530. package/dist/web/workspace/editor/__next._head.txt +6 -0
  531. package/dist/web/workspace/editor/__next._index.txt +10 -0
  532. package/dist/web/workspace/editor/__next._tree.txt +6 -0
  533. package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +5 -0
  534. package/dist/web/workspace/editor/__next.workspace.editor.txt +5 -0
  535. package/dist/web/workspace/editor/__next.workspace.txt +8 -0
  536. package/dist/web/workspace/editor.html +1 -0
  537. package/dist/web/workspace/editor.txt +27 -0
  538. package/dist/web/workspace/files/__next._full.txt +27 -0
  539. package/dist/web/workspace/files/__next._head.txt +6 -0
  540. package/dist/web/workspace/files/__next._index.txt +10 -0
  541. package/dist/web/workspace/files/__next._tree.txt +6 -0
  542. package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +5 -0
  543. package/dist/web/workspace/files/__next.workspace.files.txt +5 -0
  544. package/dist/web/workspace/files/__next.workspace.txt +8 -0
  545. package/dist/web/workspace/files.html +1 -0
  546. package/dist/web/workspace/files.txt +27 -0
  547. package/dist/web/workspace/git/__next._full.txt +27 -0
  548. package/dist/web/workspace/git/__next._head.txt +6 -0
  549. package/dist/web/workspace/git/__next._index.txt +10 -0
  550. package/dist/web/workspace/git/__next._tree.txt +6 -0
  551. package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +5 -0
  552. package/dist/web/workspace/git/__next.workspace.git.txt +5 -0
  553. package/dist/web/workspace/git/__next.workspace.txt +8 -0
  554. package/dist/web/workspace/git.html +1 -0
  555. package/dist/web/workspace/git.txt +27 -0
  556. package/dist/web/workspace/mobile/__next._full.txt +27 -0
  557. package/dist/web/workspace/mobile/__next._head.txt +6 -0
  558. package/dist/web/workspace/mobile/__next._index.txt +10 -0
  559. package/dist/web/workspace/mobile/__next._tree.txt +6 -0
  560. package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +5 -0
  561. package/dist/web/workspace/mobile/__next.workspace.mobile.txt +5 -0
  562. package/dist/web/workspace/mobile/__next.workspace.txt +8 -0
  563. package/dist/web/workspace/mobile.html +1 -0
  564. package/dist/web/workspace/mobile.txt +27 -0
  565. package/dist/web/workspace/remote/__next._full.txt +27 -0
  566. package/dist/web/workspace/remote/__next._head.txt +6 -0
  567. package/dist/web/workspace/remote/__next._index.txt +10 -0
  568. package/dist/web/workspace/remote/__next._tree.txt +6 -0
  569. package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +5 -0
  570. package/dist/web/workspace/remote/__next.workspace.remote.txt +5 -0
  571. package/dist/web/workspace/remote/__next.workspace.txt +8 -0
  572. package/dist/web/workspace/remote.html +1 -0
  573. package/dist/web/workspace/remote.txt +27 -0
  574. package/dist/web/workspace/terminal/default/__next._full.txt +27 -0
  575. package/dist/web/workspace/terminal/default/__next._head.txt +6 -0
  576. package/dist/web/workspace/terminal/default/__next._index.txt +10 -0
  577. package/dist/web/workspace/terminal/default/__next._tree.txt +6 -0
  578. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +5 -0
  579. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +5 -0
  580. package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +5 -0
  581. package/dist/web/workspace/terminal/default/__next.workspace.txt +8 -0
  582. package/dist/web/workspace/terminal/default.html +1 -0
  583. package/dist/web/workspace/terminal/default.txt +27 -0
  584. package/dist/web/workspace/workspaces/__next._full.txt +27 -0
  585. package/dist/web/workspace/workspaces/__next._head.txt +6 -0
  586. package/dist/web/workspace/workspaces/__next._index.txt +10 -0
  587. package/dist/web/workspace/workspaces/__next._tree.txt +6 -0
  588. package/dist/web/workspace/workspaces/__next.workspace.txt +8 -0
  589. package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +5 -0
  590. package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +5 -0
  591. package/dist/web/workspace/workspaces.html +1 -0
  592. package/dist/web/workspace/workspaces.txt +27 -0
  593. package/dist/web/workspace.html +1 -0
  594. package/dist/web/workspace.txt +25 -0
  595. package/package.json +4 -4
  596. package/dist/ui/assets/index-CLABbREo.css +0 -1
  597. package/dist/ui/assets/index-MX08IV5-.js +0 -58
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  const __importMetaUrl = require('url').pathToFileURL(__filename).href;
3
- var Z=Object.create;var q=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var X=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of J(r))!K.call(e,s)&&s!==t&&q(e,s,{get:()=>r[s],enumerable:!(n=W(r,s))||n.enumerable});return e};var I=(e,r,t)=>(t=e!=null?Z(V(e)):{},X(r||!e||!e.__esModule?q(t,"default",{value:e,enumerable:!0}):t,e));var G=I(require("net"),1),a=I(require("fs"),1),g=I(require("path"),1),M=I(require("os"),1),U=I(require("node-pty"),1);var k="46";function Y(){return`function prompt { $p = $PWD.Path -replace '\\\\','/'; "$([char]27)]7;file://$([System.Net.Dns]::GetHostName())$p$([char]27)\\PS $($PWD.Path)> " }`}function B(e){return e.id==="powershell"||e.id==="pwsh"?[...e.args,"-NoExit","-Command",Y()]:e.args}var L={win32:[{id:"cmd",label:"Command Prompt",path:"cmd.exe",args:[]},{id:"powershell",label:"PowerShell",path:"powershell.exe",args:["-NoLogo"]},{id:"pwsh",label:"PowerShell Core",path:"pwsh.exe",args:["-NoLogo"]}],unix:[{id:"bash",label:"Bash",path:"/bin/bash",args:["-l"]},{id:"zsh",label:"Zsh",path:"/bin/zsh",args:["-l"]},{id:"sh",label:"Sh",path:"/bin/sh",args:["-l"]}]};function F(e){if(process.platform==="win32"){let n=e?L.win32.find(i=>i.id===e):null;if(n)return n;let s=process.env.COMSPEC;return s?{id:"cmd",label:"Command Prompt",path:s,args:[]}:L.win32[0]}let r=process.env.SHELL||"/bin/bash",t=r.split("/").pop();return{id:t,label:t,path:r,args:["-l"]}}function O(e){return e?.length?e.reduce((r,t)=>r+t.length,0):0}function N(e,r){if(!e?.length||r<=0)return Buffer.alloc(0);let t=r,n=[];for(let i=e.length-1;i>=0&&t>0;i--){let o=e[i];o.length<=t?(n.push(o),t-=o.length):(n.push(o.subarray(o.length-t)),t=0)}n.reverse();let s=Buffer.concat(n);if(s.length>1&&s[0]!==27){let i=Math.min(s.length,512);for(let o=1;o<i;o++)if(s[o]===27)return s.subarray(o)}return s}function Q(e,r,t=512){if(r<=0||!e?.length)return r;let n=0;for(let o of e)n+=o.length;let s=n,i=t;for(let o=e.length-1;o>=0&&i>0;o--){let c=e[o];if(c.length===0){s-=0;continue}let d=s-c.length;if(d>=r){s=d;continue}let f=Math.min(c.length,r-d);for(let l=f-1;l>=0&&i>0;l--){if(c[l]===27)return d+l;i--}s=d}return r}function j(e,r,t){if(!e?.length||t<=0)return{prefix:Buffer.alloc(0),trimmed:0,extra:0};let n=O(e),s=n-Math.max(0,Math.min(r,n)),i=s-t;if(i<0&&(t+=i,i=0),t<=0)return{prefix:Buffer.alloc(0),trimmed:0,extra:0};let o=0;if(i>0){let f=Q(e,i);f<i&&(o=i-f,i=f,t+=o)}let c=0,d=[];for(let f=0;f<e.length&&t>0;f++){let l=e[f],b=c+l.length;if(b<=i){c=b;continue}if(c>=s)break;let p=Math.max(0,i-c),S=Math.min(t,l.length-p);d.push(l.subarray(p,p+S)),t-=S,c=b}return{prefix:Buffer.concat(d),trimmed:0,extra:o}}var $=g.default.join(M.default.homedir(),".9remote"),E=process.platform==="win32"?"\\\\.\\pipe\\9remote-pty":g.default.join($,"pty-daemon.sock"),_=g.default.join($,"pids","ptyDaemon.pid"),m=new Map,v=new Set,H=2*1024*1024,ee=128*1024,te=128*1024,se=5*1024*1024,re=["1049","1047","1000","1002","1003","1006","1015","1005"],ne=/\x1b\[\?([0-9;]+)([hl])/g;function oe(e,r){typeof r!="string"&&(r=String(r));for(let t of r.matchAll(ne)){let n=t[2]==="h";for(let s of t[1].split(";"))e[n?"add":"delete"](`?${s}`)}}function ie(e){let r=re.filter(t=>e.has(`?${t}`));return r.length?`\x1B[?${r.join(";")}h`:""}var C=g.default.join($,"logs"),R=g.default.join(C,"daemon.log");try{a.default.existsSync(C)||a.default.mkdirSync(C,{recursive:!0})}catch{}function ce(){try{if(a.default.existsSync(R)&&a.default.statSync(R).size>se){let t=a.default.readFileSync(R,"utf8").slice(-1024*1024);a.default.writeFileSync(R,t)}}catch{}}function x(e,r=null){ce();let n=`[${new Date().toISOString()}] ERROR: ${e}`;r&&(n+=` - ${r.message||r}`),n+=`
4
- `;try{a.default.appendFileSync(R,n)}catch{}console.error(n.trim())}function le(){return process.env.CODESPACES==="true"?process.env.CODESPACE_VSCODE_FOLDER||"/workspaces":process.env.HOME||process.env.USERPROFILE||M.default.homedir()}function ae(e){let r={...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",LANG:process.env.LANG||"en_US.UTF-8"};delete r.PORT;let t=e.includes("zsh"),n=e.includes("bash"),s=null;if(t){s=a.default.mkdtempSync(g.default.join(M.default.tmpdir(),"9remote-zsh-"));let i=g.default.join(s,".zshrc"),o=r.HOME||M.default.homedir(),c="";c+=`[ -f "${o}/.zprofile" ] && source "${o}/.zprofile"
5
- `,c+=`[ -f "${o}/.zshrc" ] && source "${o}/.zshrc"
6
- `,c+=`[ -f "${o}/.zlogin" ] && source "${o}/.zlogin"
7
- `,c+='NineRemoteOsc7() { print -Pn "\\e]7;file://%m${PWD}\\e\\\\" }\n',c+=`precmd_functions+=( NineRemoteOsc7 )
8
- `,a.default.writeFileSync(i,c),r.ZDOTDIR=s}else if(n){let i=r.PROMPT_COMMAND||"";r.PROMPT_COMMAND=`printf "\\e]7;file://%s\\a" "\${HOSTNAME}\${PWD}"${i?`; ${i}`:""}`}return/cmd\.exe$/i.test(e)&&(r.PROMPT=`$E]7;file://${process.env.COMPUTERNAME||""}/$P$E\\$G$S`),{env:r,zdotDir:s}}function D(e){let r=JSON.stringify(e)+`
9
- `;for(let t of v)try{t.write(r)}catch{}}function h(e,r){try{e.write(JSON.stringify(r)+`
10
- `)}catch{}}function fe(e,r,t=80,n=24,s=null,i=null){if(m.has(e))return{success:!1,error:"Session already exists"};let o=F(s);(!i||!a.default.existsSync(i))&&(i=le());try{let{env:c,zdotDir:d}=ae(o.path);c.NINE_REMOTE_SESSION_ID=e;let f=U.default.spawn(o.path,B(o),{name:"xterm-256color",cols:t,rows:n,cwd:i,env:c,useConpty:process.platform==="win32"}),l={pty:f,buffer:[],modes:new Set,name:r,createdAt:Date.now(),cwd:i,shellId:o.id,shellLabel:o.label,zdotDir:d,pending:null,flushScheduled:!1},b=()=>{l.flushScheduled=!1;let p=l.pending;p&&(l.pending=null,D({type:"output",sessionId:e,enc:"b64",data:Buffer.from(p).toString("base64")}))};return f.onData(p=>{l.buffer.push(Buffer.from(p,"utf-8")),oe(l.modes,p);let S=p.match(/\x1b\]7;file:\/\/[^/]*([^\x07\x1b]*)/);if(S){let u;try{u=decodeURIComponent(S[1])}catch{u=S[1]}process.platform==="win32"&&/^\/[a-zA-Z]:[\\/]/.test(u)&&(u=u.slice(1)),u&&u!==l.cwd&&(l.cwd=u,D({type:"cwdChange",sessionId:e,cwd:u}))}O(l.buffer)>H&&(l.buffer=[N(l.buffer,H)]),l.pending=l.pending===null?p:l.pending+p,l.flushScheduled||(l.flushScheduled=!0,setImmediate(b))}),f.onExit(()=>{m.delete(e),l.zdotDir&&a.default.rm(l.zdotDir,{recursive:!0,force:!0},()=>{}),D({type:"sessionClosed",sessionId:e})}),m.set(e,l),{success:!0,sessionId:e,cwd:i,shellId:o.id,shellLabel:o.label}}catch(c){return x("Failed to create session",c),{success:!1,error:c.message}}}function ue(e,r){let{type:t,sessionId:n,...s}=r;switch(t){case"ping":h(e,{type:"pong",version:k,requestId:s.requestId});break;case"listSessions":let i=Array.from(m.entries()).map(([u,y])=>({id:u,name:y.name,createdAt:y.createdAt,shellId:y.shellId,shellLabel:y.shellLabel,cwd:y.cwd}));h(e,{type:"sessionList",sessions:i,requestId:s.requestId});break;case"createSession":let o=fe(n||`session-${Date.now()}`,s.name,s.cols,s.rows,s.shellId,s.cwd);h(e,{type:"createResult",...o,requestId:s.requestId});break;case"joinSession":let c=m.get(n);if(!c){h(e,{type:"joinResult",success:!1,error:"Session not found",requestId:s.requestId});return}let d=ie(c.modes);d&&h(e,{type:"output",sessionId:n,enc:"b64",replay:!0,data:Buffer.from(d).toString("base64")});let f=N(c.buffer,ee);f&&f.length&&h(e,{type:"output",sessionId:n,enc:"b64",replay:!0,data:f.toString("base64")});let l=O(c.buffer);h(e,{type:"joinResult",success:!0,name:c.name,cwd:c.cwd,shellId:c.shellId,shellLabel:c.shellLabel,total:l,replaySize:f?f.length:0,requestId:s.requestId});break;case"requestHistory":{let u=m.get(n);if(!u){h(e,{type:"historyResult",success:!1,error:"Session not found",requestId:s.requestId});return}let y=O(u.buffer),z=Math.max(0,Math.min(s.have||0,y)),A=y-z,P=Math.min(te,A),{prefix:w,extra:de=0}=P>0?j(u.buffer,z,P):{prefix:Buffer.alloc(0),extra:0};h(e,{type:"historyResult",success:!0,sessionId:n,enc:"b64",prefix:w&&w.length?w.toString("base64"):"",prefixLen:w?w.length:0,total:y,remaining:Math.max(0,A-P),requestId:s.requestId});break}case"input":let b=m.get(n);b?.pty&&b.pty.write(s.data);break;case"resize":let p=m.get(n);if(p?.pty)try{p.pty.resize(s.cols,s.rows)}catch{}break;case"deleteSession":let S=m.get(n);S?(S.pty&&S.pty.kill(),m.delete(n),D({type:"sessionClosed",sessionId:n}),h(e,{type:"deleteResult",success:!0,requestId:s.requestId})):h(e,{type:"deleteResult",success:!1,error:"Session not found",requestId:s.requestId});break;case"getCwd":let T=m.get(n);h(e,{type:"cwdResult",cwd:T?.cwd||null,requestId:s.requestId});break;default:x(`Unknown message type: ${t}`)}}function pe(){if(!a.default.existsSync($))try{a.default.mkdirSync($,{recursive:!0})}catch(t){x("Failed to create socket directory",t),process.exit(1)}if(process.platform!=="win32"&&a.default.existsSync(E))try{a.default.unlinkSync(E)}catch(t){x("Failed to remove stale socket",t),process.exit(1)}let e=G.default.createServer(t=>{v.add(t);let n="";t.on("data",s=>{n+=s.toString();let i=n.split(`
11
- `);n=i.pop()||"";for(let o of i)if(o.trim())try{let c=JSON.parse(o);ue(t,c)}catch{x("Invalid message",o)}}),t.on("close",()=>{v.delete(t)}),t.on("error",s=>{x("Client error",s),v.delete(t)})});e.on("error",t=>{x("Server error",t),t.code==="EADDRINUSE"&&x("Socket already in use, exiting"),process.exit(1)}),e.listen(E,()=>{if(process.platform!=="win32")try{a.default.chmodSync(E,384)}catch{}});try{a.default.mkdirSync(g.default.dirname(_),{recursive:!0}),a.default.writeFileSync(_,String(process.pid),{mode:384})}catch{}let r=()=>{for(let[,t]of m)if(t.pty)try{t.pty.kill()}catch{}try{e.close()}catch{}if(process.platform!=="win32"&&a.default.existsSync(E))try{a.default.unlinkSync(E)}catch{}try{a.default.unlinkSync(_)}catch{}process.exit(0)};process.on("SIGTERM",r),process.on("SIGINT",r)}pe();
3
+ var ae=Object.create;var Z=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,he=Object.prototype.hasOwnProperty;var Se=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of fe(t))!he.call(e,c)&&c!==r&&Z(e,c,{get:()=>t[c],enumerable:!(s=pe(t,c))||s.enumerable});return e};var M=(e,t,r)=>(r=e!=null?ae(de(e)):{},Se(t||!e||!e.__esModule?Z(r,"default",{value:e,enumerable:!0}):r,e));var ne=M(require("net"),1),a=M(require("fs"),1),b=M(require("path"),1),N=M(require("os"),1),oe=require("child_process"),ce=M(require("node-pty"),1);var H="70";function me(){return`function prompt { $p = $PWD.Path -replace '\\\\','/'; "$([char]27)]7;file://$([System.Net.Dns]::GetHostName())$p$([char]27)\\PS $($PWD.Path)> " }`}function W(e){return e.id==="powershell"||e.id==="pwsh"?[...e.args,"-NoExit","-Command",me()]:e.args}var K={win32:[{id:"cmd",label:"Command Prompt",path:"cmd.exe",args:[]},{id:"powershell",label:"PowerShell",path:"powershell.exe",args:["-NoLogo"]},{id:"pwsh",label:"PowerShell Core",path:"pwsh.exe",args:["-NoLogo"]}],unix:[{id:"bash",label:"Bash",path:"/bin/bash",args:["-l"]},{id:"zsh",label:"Zsh",path:"/bin/zsh",args:["-l"]},{id:"sh",label:"Sh",path:"/bin/sh",args:["-l"]}]};function X(e){if(process.platform==="win32"){let s=e?K.win32.find(i=>i.id===e):null;if(s)return s;let c=process.env.COMSPEC;return c?{id:"cmd",label:"Command Prompt",path:c,args:[]}:K.win32[0]}let t=process.env.SHELL||"/bin/bash",r=t.split("/").pop();return{id:r,label:r,path:t,args:["-l"]}}var Ze=45*1024,Ke={CHUNK_BYTES:32*1024,HEAD_BYTES:512*1024,HEAD_LINES:60,TITLE_MAX:120,SCAN_FILE_CAP:200,SCAN_DEPTH:4,PER_AGENT_LIMIT:50,DEFAULT_LIMIT:100,CACHE_TTL_MS:30*1e3};var k={"terminal.ping":{reply:"pong",coalesce:null},"terminal.listSessions":{reply:"sessionList",coalesce:null},"terminal.createSession":{reply:"createResult",coalesce:null},"terminal.joinSession":{reply:"joinResult",coalesce:null},"terminal.requestHistory":{reply:"historyResult",coalesce:null},"terminal.input":{reply:null,coalesce:null},"terminal.resize":{reply:null,coalesce:"resize"},"terminal.deleteSession":{reply:"deleteResult",coalesce:null},"terminal.getCwd":{reply:"cwdResult",coalesce:null},"proc.start":{reply:"procStartResult",coalesce:null},"proc.attach":{reply:"procAttachResult",coalesce:null},"proc.lines":{reply:"procLinesResult",coalesce:null},"proc.write":{reply:"procWriteResult",coalesce:null},"proc.endInput":{reply:"procEndInputResult",coalesce:null},"proc.signal":{reply:"procSignalResult",coalesce:null},"proc.stop":{reply:"procStopResult",coalesce:null},"proc.list":{reply:"procListResult",coalesce:null},"kv.set":{reply:"kvSetResult",coalesce:null},"kv.get":{reply:"kvGetResult",coalesce:null},"kv.del":{reply:"kvDelResult",coalesce:null}},ge={ping:"terminal.ping",listSessions:"terminal.listSessions",createSession:"terminal.createSession",joinSession:"terminal.joinSession",requestHistory:"terminal.requestHistory",input:"terminal.input",resize:"terminal.resize",deleteSession:"terminal.deleteSession",getCwd:"terminal.getCwd",procStart:"proc.start",procAttach:"proc.attach",procLines:"proc.lines",procWrite:"proc.write",procSignal:"proc.signal",procStop:"proc.stop",procList:"proc.list",kvSet:"kv.set",kvGet:"kv.get",kvDel:"kv.del"};function Y(e){return k[e]?e:ge[e]||null}var ye=5e3,V=Symbol("handler-timeout");function J({deps:e={},send:t}={}){let r=new Map,s=new Map,c=[],i=!1,o=new Map,n=new Map;function h(p,u){for(let[R,y]of Object.entries(u)){let x=`${p}.${R}`;r.set(x,y),s.set(x,k[x]||{reply:null,coalesce:null})}}function f(){let p=Object.keys(k).filter(u=>!r.has(u));if(p.length)throw new Error(`Routes without a handler: ${p.join(", ")}`)}let l=p=>p.sessionId||p.procId||"";function S({client:p,message:u}){let R=u?.type,y=Y(R)||R;if(!y||!r.has(y)){t(p,{type:"error",error:`Unknown route: ${R}`,requestId:u?.requestId});return}let x=s.get(y)||{reply:null,coalesce:null},B=`${y}:${u.sessionId??""}`,w=l(u);if(w&&o.has(w)){t(p,{type:x.reply||"error",success:!1,error:"Previous request on this session is still running",requestId:u.requestId});return}if(x?.coalesce){let _=n.get(B);if(_){_.message=u;return}let $={client:p,message:u,key:y,spec:x};n.set(B,$),c.push($)}else c.push({client:p,message:u,key:y,spec:x});d()}async function d(){if(!i){i=!0,await Promise.resolve();try{for(;c.length;){let p=c.shift();p.spec?.coalesce&&n.delete(`${p.key}:${p.message.sessionId??""}`),await E(p)}}finally{i=!1,c.length&&d()}}}async function E({client:p,message:u,key:R,spec:y}){let x=r.get(R),B=`${R}:${u.sessionId??""}`,w=I=>{if(!p)return;let P=!!I?.error;!y?.reply&&!P||t(p,{type:y?.reply||"error",...I,requestId:u.requestId})},_,$=new Promise(I=>{_=setTimeout(()=>I(V),u.timeout||ye),_.unref?.()}),q=Promise.resolve().then(()=>x(u,e,{client:p,answer:w}));try{let I=await Promise.race([q,$]);if(I===V){let P=l(u);P&&(o.set(P,!0),q.catch(()=>{}).then(()=>o.delete(P))),w({success:!1,error:"Handler timeout"});return}w(I||{})}catch(I){w({success:!1,error:I?.message||String(I)})}finally{clearTimeout(_)}}return{register:h,assertComplete:f,enqueue:S}}function Q(e=500){let t=new Map;return{set(r,s){return typeof r!="string"||!r?!1:(t.delete(r),t.set(r,structuredClone(s??null)),t.size>e&&t.delete(t.keys().next().value),!0)},get(r){return t.has(r)?structuredClone(t.get(r)):null},del(r){return t.delete(r)},get size(){return t.size}}}var ee={set:(e,t)=>({success:t.kv.set(e.key,e.value)}),get:(e,t)=>({success:!0,value:t.kv.get(e.key)}),del:(e,t)=>({success:t.kv.del(e.key)})};function C(e){return e?.length?e.reduce((t,r)=>t+r.length,0):0}function U(e,t){if(!e?.length||t<=0)return Buffer.alloc(0);let r=t,s=[];for(let i=e.length-1;i>=0&&r>0;i--){let o=e[i];o.length<=r?(s.push(o),r-=o.length):(s.push(o.subarray(o.length-r)),r=0)}s.reverse();let c=Buffer.concat(s);if(c.length>1&&c[0]!==27){let i=Math.min(c.length,512);for(let o=1;o<i;o++)if(c[o]===27)return c.subarray(o)}return c}function Ee(e,t,r=512){if(t<=0||!e?.length)return t;let s=0;for(let o of e)s+=o.length;let c=s,i=r;for(let o=e.length-1;o>=0&&i>0;o--){let n=e[o];if(n.length===0){c-=0;continue}let h=c-n.length;if(h>=t){c=h;continue}let f=Math.min(n.length,t-h);for(let l=f-1;l>=0&&i>0;l--){if(n[l]===27)return h+l;i--}c=h}return t}function te(e,t,r){if(!e?.length||r<=0)return{prefix:Buffer.alloc(0),trimmed:0,extra:0};let s=C(e),c=s-Math.max(0,Math.min(t,s)),i=c-r;if(i<0&&(r+=i,i=0),r<=0)return{prefix:Buffer.alloc(0),trimmed:0,extra:0};let o=0;if(i>0){let f=Ee(e,i);f<i&&(o=i-f,i=f,r+=o)}let n=0,h=[];for(let f=0;f<e.length&&r>0;f++){let l=e[f],S=n+l.length;if(S<=i){n=S;continue}if(n>=c)break;let d=Math.max(0,i-n),E=Math.min(r,l.length-d);h.push(l.subarray(d,d+E)),r-=E,n=S}return{prefix:Buffer.concat(h),trimmed:0,extra:o}}var L=process.env.NREMOTE_HOME||b.default.join(N.default.homedir(),".9remote"),O=process.platform==="win32"?"\\\\.\\pipe\\9remote-pty":b.default.join(L,"pty-daemon.sock"),F=b.default.join(L,"pids","ptyDaemon.pid"),m=new Map,z=new Set,re=2*1024*1024,xe=256*1024,Ie=256*1024,be=5*1024*1024,Re=["1049","1047","1000","1002","1003","1006","1015","1005"],Te=/\x1b\[\?([0-9;]+)([hl])/g;function we(e,t){typeof t!="string"&&(t=String(t));for(let r of t.matchAll(Te)){let s=r[2]==="h";for(let c of r[1].split(";"))e[s?"add":"delete"](`?${c}`)}}function ve(e){let t=Re.filter(r=>e.has(`?${r}`));return t.length?`\x1B[?${t.join(";")}h`:""}var j=b.default.join(L,"logs"),A=b.default.join(j,"daemon.log");try{a.default.existsSync(j)||a.default.mkdirSync(j,{recursive:!0})}catch{}function _e(){try{if(a.default.existsSync(A)&&a.default.statSync(A).size>be){let r=a.default.readFileSync(A,"utf8").slice(-1024*1024);a.default.writeFileSync(A,r)}}catch{}}function v(e,t=null){_e();let s=`[${new Date().toISOString()}] ERROR: ${e}`;t&&(s+=` - ${t.message||t}`),s+=`
4
+ `;try{a.default.appendFileSync(A,s)}catch{}console.error(s.trim())}function ie(){return process.env.CODESPACES==="true"?process.env.CODESPACE_VSCODE_FOLDER||"/workspaces":process.env.HOME||process.env.USERPROFILE||N.default.homedir()}function Oe(e){let t={...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",LANG:process.env.LANG||"en_US.UTF-8"};delete t.PORT,delete t.NODE_ENV;let r=e.includes("zsh"),s=e.includes("bash"),c=null;if(r){c=a.default.mkdtempSync(b.default.join(N.default.tmpdir(),"9remote-zsh-"));let i=b.default.join(c,".zshrc"),o=t.HOME||N.default.homedir(),n="";n+=`[ -f "${o}/.zprofile" ] && source "${o}/.zprofile"
5
+ `,n+=`[ -f "${o}/.zshrc" ] && source "${o}/.zshrc"
6
+ `,n+=`[ -f "${o}/.zlogin" ] && source "${o}/.zlogin"
7
+ `,n+='NineRemoteOsc7() { print -Pn "\\e]7;file://%m${PWD}\\e\\\\" }\n',n+=`precmd_functions+=( NineRemoteOsc7 )
8
+ `,a.default.writeFileSync(i,n),t.ZDOTDIR=c}else if(s){let i=t.PROMPT_COMMAND||"";t.PROMPT_COMMAND=`printf "\\e]7;file://%s\\a" "\${HOSTNAME}\${PWD}"${i?`; ${i}`:""}`}return/cmd\.exe$/i.test(e)&&(t.PROMPT=`$E]7;file://${process.env.COMPUTERNAME||""}/$P$E\\$G$S`),{env:t,zdotDir:c}}function T(e){let t=JSON.stringify(e)+`
9
+ `;for(let r of z)try{r.write(t)}catch{}}function se(e,t){try{e.write(JSON.stringify(t)+`
10
+ `)}catch{}}var g=new Map,Pe=0,Me=512*1024,Ce=256*1024,Ae=3e3;function le(e,t=0){let r=typeof t=="object"&&t!==null?t.from??0:Number(t)||0,s=[];for(let c of e.lines)c.n>r&&s.push({n:c.n,enc:"b64",data:c.data.toString("base64")});return s}function Ne(e,{bin:t,args:r=[],cwd:s,env:c}={}){if(!e)return{success:!1,error:"Missing procId"};if(!t)return{success:!1,error:"Missing bin"};let i=g.get(e);if(i&&!i.exited)return{success:!1,error:"Process already running"};let o=(0,oe.spawn)(t,r,{cwd:s&&a.default.existsSync(s)?s:ie(),stdio:["pipe","pipe","pipe"],env:{...process.env,...c||{}}}),n={id:e,epoch:++Pe,child:o,cwd:s,lines:[],lineCount:0,bytes:0,exited:!1,exitCode:null,tail:""};g.set(e,n);let h=l=>{let S=Buffer.from(l,"utf8");for(n.lineCount++,n.lines.push({n:n.lineCount,data:S}),n.bytes+=S.length;n.bytes>Me&&n.lines.length>1;)n.bytes-=n.lines[0].data.length,n.lines.shift();T({type:"procLine",procId:e,epoch:n.epoch,n:n.lineCount,enc:"b64",data:S.toString("base64")})},f=l=>{l.on("data",S=>{if(n.tail+=S.toString("utf8"),n.tail.length>Ce){h(n.tail),n.tail="";return}let d=n.tail.split(`
11
+ `);n.tail=d.pop()||"";for(let E of d)h(E)})};return f(o.stdout),f(o.stderr),o.on("error",l=>{n.exited=!0,T({type:"procExit",procId:e,epoch:n.epoch,code:null,error:l.message})}),o.on("close",(l,S)=>{n.tail&&(h(n.tail),n.tail=""),n.exited=!0,n.exitCode=l,n.child=null,T({type:"procExit",procId:e,epoch:n.epoch,code:l,signal:S||null})}),{success:!0,procId:e,epoch:n.epoch,pid:o.pid}}function Le(e,t=0){typeof t=="object"&&t!==null&&(t=t.from??0),t=Number(t)||0;let r=g.get(e);return r?{success:!0,alive:!r.exited,epoch:r.epoch,lines:le(r,t),total:r.lineCount,oldest:r.lines[0]?.n??r.lineCount+1,exitCode:r.exitCode}:{success:!1,error:"Process not found"}}function De(e,t,r="b64"){let s=g.get(e);return s?.child?.stdin?.writable?(s.child.stdin.write(r==="b64"?Buffer.from(t,"base64"):t),{success:!0}):{success:!1,error:"Process not writable"}}function $e(e){let t=g.get(e);if(!t?.child?.stdin?.writable)return{success:!1,error:"Process not writable"};try{t.child.stdin.end()}catch(r){return{success:!1,error:r.message}}return{success:!0}}function ke(e,t="SIGINT"){let r=g.get(e);if(!r?.child)return{success:!1,error:"Process not running"};try{r.child.kill(t)}catch(s){return{success:!1,error:s.message}}return{success:!0}}function ze(e){let t=g.get(e);if(!t)return{success:!1,error:"Process not found"};let r=t.child;if(r){try{r.kill("SIGINT")}catch{}let s=setTimeout(()=>{try{r.kill("SIGKILL")}catch{}},Ae);s.unref?.(),r.once("close",()=>clearTimeout(s))}return g.delete(e),{success:!0}}function Be(e,t,r=80,s=24,c=null,i=null){if(m.has(e))return{success:!1,error:"Session already exists"};let o=X(c);(!i||!a.default.existsSync(i))&&(i=ie());try{let{env:n,zdotDir:h}=Oe(o.path);n.NINE_REMOTE_SESSION_ID=e;let f=ce.default.spawn(o.path,W(o),{name:"xterm-256color",cols:r,rows:s,cwd:i,env:n,useConpty:process.platform==="win32"}),l={pty:f,buffer:[],modes:new Set,name:t,createdAt:Date.now(),cwd:i,shellId:o.id,shellLabel:o.label,zdotDir:h,pending:null,flushScheduled:!1,procTimer:null,foregroundProcess:G({pty:f})||o.id},S=()=>{l.flushScheduled=!1;let d=l.pending;d&&(l.pending=null,T({type:"output",sessionId:e,enc:"b64",data:Buffer.from(d).toString("base64")}))};return f.onData(d=>{l.buffer.push(Buffer.from(d,"utf-8")),we(l.modes,d);let E=d.match(/\x1b\]7;file:\/\/[^/]*([^\x07\x1b]*)/);if(E){let u;try{u=decodeURIComponent(E[1])}catch{u=E[1]}process.platform==="win32"&&/^\/[a-zA-Z]:[\\/]/.test(u)&&(u=u.slice(1)),u&&u!==l.cwd&&(l.cwd=u,T({type:"cwdChange",sessionId:e,cwd:u}))}C(l.buffer)>re&&(l.buffer=[U(l.buffer,re)]),l.pending=l.pending===null?d:l.pending+d,l.flushScheduled||(l.flushScheduled=!0,setImmediate(S)),l.procTimer&&clearTimeout(l.procTimer),l.procTimer=setTimeout(()=>{l.procTimer=null,ue(l,e)},250)}),f.onExit(()=>{l.procTimer&&clearTimeout(l.procTimer),m.delete(e),l.zdotDir&&a.default.rm(l.zdotDir,{recursive:!0,force:!0},()=>{}),T({type:"sessionClosed",sessionId:e})}),m.set(e,l),{success:!0,sessionId:e,cwd:i,shellId:o.id,shellLabel:o.label}}catch(n){return v("Failed to create session",n),{success:!1,error:n.message}}}function G(e){if(!e?.pty)return null;try{let t=e.pty.process;return t?b.default.basename(t):null}catch{return null}}function ue(e,t){if(!e?.pty)return;let r=G(e);if(r&&r!==e.foregroundProcess){let s=e.foregroundProcess;e.foregroundProcess=r,s!==null&&T({type:"processChange",sessionId:t,process:r,prevProcess:s})}}var He=Q(500),D=J({deps:{sessions:m,procs:g,send:se,broadcast:T,DAEMON_VERSION:H,kv:He},send:se}),Ue={ping:()=>({version:H}),listSessions:()=>({sessions:Array.from(m.entries()).map(([e,t])=>({id:e,name:t.name,createdAt:t.createdAt,shellId:t.shellId,shellLabel:t.shellLabel,cwd:t.cwd,foregroundProcess:t.foregroundProcess||G(t)}))}),createSession:e=>Be(e.sessionId||`session-${Date.now()}`,e.name,e.cols,e.rows,e.shellId,e.cwd),joinSession:(e,{send:t})=>{let r=m.get(e.sessionId);if(!r)return{success:!1,error:"Session not found"};let s=e.client,c=ve(r.modes);c&&t(s,{type:"output",sessionId:e.sessionId,enc:"b64",replay:!0,data:Buffer.from(c).toString("base64")});let i=U(r.buffer,xe);return i&&i.length&&t(s,{type:"output",sessionId:e.sessionId,enc:"b64",replay:!0,data:i.toString("base64")}),{success:!0,name:r.name,cwd:r.cwd,shellId:r.shellId,shellLabel:r.shellLabel,total:C(r.buffer),replaySize:i?i.length:0}},requestHistory:e=>{let t=m.get(e.sessionId);if(!t)return{success:!1,error:"Session not found"};let r=C(t.buffer),s=Math.max(0,Math.min(e.have||0,r)),c=r-s,i=Math.min(Ie,c),{prefix:o,extra:n=0}=i>0?te(t.buffer,s,i):{prefix:Buffer.alloc(0),extra:0};return{success:!0,sessionId:e.sessionId,enc:"b64",prefix:o&&o.length?o.toString("base64"):"",prefixLen:o?o.length:0,total:r,remaining:Math.max(0,c-i)}},input:e=>{let t=m.get(e.sessionId);return t?.pty?(t.pty.write(e.data),t.procTimer&&clearTimeout(t.procTimer),t.procTimer=setTimeout(()=>{t.procTimer=null,ue(t,e.sessionId)},300),{}):{}},resize:e=>{let t=m.get(e.sessionId);if(!t?.pty)return{};try{t.pty.resize(e.cols,e.rows)}catch{}return{}},deleteSession:(e,{broadcast:t})=>{let r=m.get(e.sessionId);return r?(r.pty&&r.pty.kill(),m.delete(e.sessionId),t({type:"sessionClosed",sessionId:e.sessionId}),{success:!0}):{success:!1,error:"Session not found"}},getCwd:e=>({cwd:m.get(e.sessionId)?.cwd||null})},Fe={start:e=>Ne(e.procId,e),attach:e=>Le(e.procId,e.from),lines:e=>{let t=g.get(e.procId);return t?{success:!0,epoch:t.epoch,lines:le(t,e.from||0),total:t.lineCount,oldest:t.lines[0]?.n??t.lineCount+1}:{success:!1,error:"Process not found"}},write:e=>De(e.procId,e.data,e.enc),endInput:e=>$e(e.procId),signal:e=>ke(e.procId,e.signal),stop:e=>ze(e.procId),list:()=>({success:!0,procs:Array.from(g.values()).map(e=>({procId:e.id,alive:!e.exited,total:e.lineCount,cwd:e.cwd}))})};D.register("terminal",Ue);D.register("proc",Fe);D.register("kv",ee);D.assertComplete();function je(e,t){D.enqueue({client:e,message:{...t,client:e}})}function Ge(){if(!a.default.existsSync(L))try{a.default.mkdirSync(L,{recursive:!0})}catch(r){v("Failed to create socket directory",r),process.exit(1)}if(process.platform!=="win32"&&a.default.existsSync(O))try{a.default.unlinkSync(O)}catch(r){v("Failed to remove stale socket",r),process.exit(1)}let e=ne.default.createServer(r=>{z.add(r);let s="";r.on("data",c=>{s+=c.toString();let i=s.split(`
12
+ `);s=i.pop()||"";for(let o of i)if(o.trim())try{let n=JSON.parse(o);je(r,n)}catch{v("Invalid message",o)}}),r.on("close",()=>{z.delete(r)}),r.on("error",c=>{v("Client error",c),z.delete(r)})});e.on("error",r=>{v("Server error",r),r.code==="EADDRINUSE"&&v("Socket already in use, exiting"),process.exit(1)}),e.listen(O,()=>{if(process.platform!=="win32")try{a.default.chmodSync(O,384)}catch{}});try{a.default.mkdirSync(b.default.dirname(F),{recursive:!0}),a.default.writeFileSync(F,String(process.pid),{mode:384})}catch{}let t=()=>{for(let[,r]of m)if(r.procTimer&&clearTimeout(r.procTimer),r.pty)try{r.pty.kill()}catch{}for(let[,r]of g)try{r.child?.kill("SIGINT")}catch{}try{e.close()}catch{}if(process.platform!=="win32"&&a.default.existsSync(O))try{a.default.unlinkSync(O)}catch{}try{a.default.unlinkSync(F)}catch{}process.exit(0)};process.on("SIGTERM",t),process.on("SIGINT",t)}Ge();