9remote 3.0.27 → 3.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -12
- package/dist/bin/desktop-bridge.cs +5 -5
- package/dist/bin/desktop-elevate.cs +1 -1
- package/dist/cli.cjs +128 -108
- package/dist/ptyDaemon.cjs +10 -10
- package/dist/server.cjs +496 -206
- package/dist/ui/assets/index--4F7rf4t.js +8 -0
- package/dist/ui/index.html +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/__next.__PAGE__.txt +2 -2
- package/dist/web/__next._full.txt +21 -19
- package/dist/web/__next._head.txt +1 -1
- package/dist/web/__next._index.txt +8 -6
- package/dist/web/__next._tree.txt +3 -2
- package/dist/web/_next/static/chunks/{8669-9e059733295a6fc1.js → 1050-b9af41e8856b58c0.js} +1 -1
- package/dist/web/_next/static/chunks/1222.a2ce7d7f04241e2a.js +1 -0
- package/dist/web/_next/static/chunks/1228.046ad5fd038f5192.js +1 -0
- package/dist/web/_next/static/chunks/1243.1d11020940b8a88b.js +1 -0
- package/dist/web/_next/static/chunks/132.1ed2fce3a4b6f7ee.js +1 -0
- package/dist/web/_next/static/chunks/1750.2cbe0f722b879a3b.js +1 -0
- package/dist/web/_next/static/chunks/2038.b7c72b442a1b2d92.js +1 -0
- package/dist/web/_next/static/chunks/213.f07a816120a320ba.js +1 -0
- package/dist/web/_next/static/chunks/2180.23585bd3f3308f3a.js +1 -0
- package/dist/web/_next/static/chunks/2849.360e2c64521fa795.js +1 -0
- package/dist/web/_next/static/chunks/3429.98d7e79ff6d2a6ce.js +1 -0
- package/dist/web/_next/static/chunks/3514.9079bf49bb3e05c9.js +1 -0
- package/dist/web/_next/static/chunks/4300-fb55814d743e1313.js +1 -0
- package/dist/web/_next/static/chunks/4643.ddf3ea3a760e73a5.js +1 -0
- package/dist/web/_next/static/chunks/5788-d574869f0879e799.js +1 -0
- package/dist/web/_next/static/chunks/6276.aa48f74970f7ef3d.js +1 -0
- package/dist/web/_next/static/chunks/6419.99aa173d83f20370.js +1 -0
- package/dist/web/_next/static/chunks/6552-f908d82b4c4161ed.js +1 -0
- package/dist/web/_next/static/chunks/674.97a7237f011fb986.js +1 -0
- package/dist/web/_next/static/chunks/6742.bc3783b9784ead96.js +1 -0
- package/dist/web/_next/static/chunks/7507.28a3807b5d02a5c1.js +1 -0
- package/dist/web/_next/static/chunks/7960.026e07028dd25edb.js +1 -0
- package/dist/web/_next/static/chunks/8467.290e9bde34b58e7c.js +1 -0
- package/dist/web/_next/static/chunks/8638.237712645dcdcb8a.js +1 -0
- package/dist/web/_next/static/chunks/8669-8d1fb8dce08c886d.js +11 -0
- package/dist/web/_next/static/chunks/8762-62e9a4a001d3e204.js +1 -0
- package/dist/web/_next/static/chunks/8922-6961d48ca52e1c93.js +1 -0
- package/dist/web/_next/static/chunks/925.fe600c6039a3201d.js +1 -0
- package/dist/web/_next/static/chunks/9259.c450f561db04037d.js +1 -0
- package/dist/web/_next/static/chunks/9299.83236781dfa74eb0.js +1 -0
- package/dist/web/_next/static/chunks/9871-9cd97efc98617c33.js +1 -0
- package/dist/web/_next/static/chunks/app/_global-error/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/admin/access/page-3a49e3c597eea658.js +5 -0
- package/dist/web/_next/static/chunks/app/admin/login/page-c7bdfdfbcc763df4.js +1 -0
- package/dist/web/_next/static/chunks/app/admin/ota/page-406ff48a5882efa4.js +5 -0
- package/dist/web/_next/static/chunks/app/admin/page-434461c255fd088a.js +5 -0
- package/dist/web/_next/static/chunks/app/admin/turn/page-dd7552f387e08b36.js +5 -0
- package/dist/web/_next/static/chunks/app/dev/question/page-ab488886d05baea5.js +1 -0
- package/dist/web/_next/static/chunks/app/download/page-2811ea822a1e586a.js +1 -0
- package/dist/web/_next/static/chunks/app/layout-444afebe5b95afff.js +1 -0
- package/dist/web/_next/static/chunks/app/login/page-80cc1994a494dfed.js +1 -0
- package/dist/web/_next/static/chunks/app/page-f416e79015c32480.js +22 -0
- package/dist/web/_next/static/chunks/app/workspace/browse/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/editor/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/files/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/git/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/layout-a1024034aa67994d.js +15 -0
- package/dist/web/_next/static/chunks/app/workspace/mobile/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/pair/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/remote/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/welcome/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/workspaces/page-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-e656bb9bc0f3fd3d.js +1 -0
- package/dist/web/_next/static/chunks/webpack-b56d3361b185b0cb.js +1 -0
- package/dist/web/_next/static/css/630ce3b502aeea55.css +1 -0
- package/dist/web/_next/static/css/{56adcd4d72bf2d84.css → adc0ee53b89bee3c.css} +1 -1
- package/dist/web/_next/static/nx78GyCTuW2V1ns5cZIT_/_buildManifest.js +1 -0
- package/dist/web/_not-found/__next._full.txt +19 -17
- package/dist/web/_not-found/__next._head.txt +1 -1
- package/dist/web/_not-found/__next._index.txt +8 -6
- package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/web/_not-found/__next._not-found.txt +1 -1
- package/dist/web/_not-found/__next._tree.txt +3 -2
- package/dist/web/_not-found.html +1 -1
- package/dist/web/_not-found.txt +19 -17
- package/dist/web/admin/__next._full.txt +23 -21
- package/dist/web/admin/__next._head.txt +1 -1
- package/dist/web/admin/__next._index.txt +8 -6
- package/dist/web/admin/__next._tree.txt +3 -2
- package/dist/web/admin/__next.admin.__PAGE__.txt +2 -2
- package/dist/web/admin/__next.admin.txt +1 -1
- package/dist/web/admin/access/__next._full.txt +29 -0
- package/dist/web/admin/{admins → access}/__next._head.txt +1 -1
- package/dist/web/admin/access/__next._index.txt +12 -0
- package/dist/web/admin/{admins → access}/__next._tree.txt +3 -2
- package/dist/web/admin/{admins/__next.admin.admins.__PAGE__.txt → access/__next.admin.access.__PAGE__.txt} +2 -2
- package/dist/web/admin/{admins/__next.admin.admins.txt → access/__next.admin.access.txt} +1 -1
- package/dist/web/admin/{admins → access}/__next.admin.txt +1 -1
- package/dist/web/admin/access.html +1 -0
- package/dist/web/admin/access.txt +29 -0
- package/dist/web/admin/login/__next._full.txt +23 -21
- package/dist/web/admin/login/__next._head.txt +1 -1
- package/dist/web/admin/login/__next._index.txt +8 -6
- package/dist/web/admin/login/__next._tree.txt +3 -2
- package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +2 -2
- package/dist/web/admin/login/__next.admin.login.txt +1 -1
- package/dist/web/admin/login/__next.admin.txt +1 -1
- package/dist/web/admin/login.html +1 -1
- package/dist/web/admin/login.txt +23 -21
- package/dist/web/admin/ota/__next._full.txt +23 -21
- package/dist/web/admin/ota/__next._head.txt +1 -1
- package/dist/web/admin/ota/__next._index.txt +8 -6
- package/dist/web/admin/ota/__next._tree.txt +3 -2
- package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +2 -2
- package/dist/web/admin/ota/__next.admin.ota.txt +1 -1
- package/dist/web/admin/ota/__next.admin.txt +1 -1
- package/dist/web/admin/ota.html +1 -1
- package/dist/web/admin/ota.txt +23 -21
- package/dist/web/admin/turn/__next._full.txt +23 -21
- package/dist/web/admin/turn/__next._head.txt +1 -1
- package/dist/web/admin/turn/__next._index.txt +8 -6
- package/dist/web/admin/turn/__next._tree.txt +3 -2
- package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +2 -2
- package/dist/web/admin/turn/__next.admin.turn.txt +1 -1
- package/dist/web/admin/turn/__next.admin.txt +1 -1
- package/dist/web/admin/turn.html +1 -1
- package/dist/web/admin/turn.txt +23 -21
- package/dist/web/admin.html +1 -1
- package/dist/web/admin.txt +23 -21
- package/dist/web/dev/question/__next._full.txt +23 -21
- package/dist/web/dev/question/__next._head.txt +1 -1
- package/dist/web/dev/question/__next._index.txt +8 -6
- package/dist/web/dev/question/__next._tree.txt +3 -2
- package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +2 -2
- package/dist/web/dev/question/__next.dev.question.txt +1 -1
- package/dist/web/dev/question/__next.dev.txt +1 -1
- package/dist/web/dev/question.html +1 -1
- package/dist/web/dev/question.txt +23 -21
- package/dist/web/download/__next._full.txt +26 -0
- package/dist/web/download/__next._head.txt +6 -0
- package/dist/web/download/__next._index.txt +12 -0
- package/dist/web/{admin/modes → download}/__next._tree.txt +3 -2
- package/dist/web/download/__next.download.__PAGE__.txt +6 -0
- package/dist/web/{admin/modes/__next.admin.modes.txt → download/__next.download.txt} +1 -1
- package/dist/web/download.html +1 -0
- package/dist/web/download.txt +26 -0
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +21 -19
- package/dist/web/login/__next._full.txt +23 -21
- package/dist/web/login/__next._head.txt +1 -1
- package/dist/web/login/__next._index.txt +8 -6
- package/dist/web/login/__next._tree.txt +3 -2
- package/dist/web/login/__next.login.__PAGE__.txt +2 -2
- package/dist/web/login/__next.login.txt +1 -1
- package/dist/web/login.html +1 -1
- package/dist/web/login.txt +23 -21
- package/dist/web/workspace/__next._full.txt +21 -19
- package/dist/web/workspace/__next._head.txt +1 -1
- package/dist/web/workspace/__next._index.txt +8 -6
- package/dist/web/workspace/__next._tree.txt +4 -3
- package/dist/web/workspace/__next.workspace.__PAGE__.txt +1 -1
- package/dist/web/workspace/__next.workspace.txt +3 -3
- package/dist/web/workspace/browse/__next._full.txt +23 -21
- package/dist/web/workspace/browse/__next._head.txt +1 -1
- package/dist/web/workspace/browse/__next._index.txt +8 -6
- package/dist/web/workspace/browse/__next._tree.txt +4 -3
- package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +1 -1
- package/dist/web/workspace/browse/__next.workspace.browse.txt +1 -1
- package/dist/web/workspace/browse/__next.workspace.txt +3 -3
- package/dist/web/workspace/browse.html +1 -1
- package/dist/web/workspace/browse.txt +23 -21
- package/dist/web/workspace/editor/__next._full.txt +23 -21
- package/dist/web/workspace/editor/__next._head.txt +1 -1
- package/dist/web/workspace/editor/__next._index.txt +8 -6
- package/dist/web/workspace/editor/__next._tree.txt +4 -3
- package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +1 -1
- package/dist/web/workspace/editor/__next.workspace.editor.txt +1 -1
- package/dist/web/workspace/editor/__next.workspace.txt +3 -3
- package/dist/web/workspace/editor.html +1 -1
- package/dist/web/workspace/editor.txt +23 -21
- package/dist/web/workspace/files/__next._full.txt +23 -21
- package/dist/web/workspace/files/__next._head.txt +1 -1
- package/dist/web/workspace/files/__next._index.txt +8 -6
- package/dist/web/workspace/files/__next._tree.txt +4 -3
- package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +1 -1
- package/dist/web/workspace/files/__next.workspace.files.txt +1 -1
- package/dist/web/workspace/files/__next.workspace.txt +3 -3
- package/dist/web/workspace/files.html +1 -1
- package/dist/web/workspace/files.txt +23 -21
- package/dist/web/workspace/git/__next._full.txt +23 -21
- package/dist/web/workspace/git/__next._head.txt +1 -1
- package/dist/web/workspace/git/__next._index.txt +8 -6
- package/dist/web/workspace/git/__next._tree.txt +4 -3
- package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +1 -1
- package/dist/web/workspace/git/__next.workspace.git.txt +1 -1
- package/dist/web/workspace/git/__next.workspace.txt +3 -3
- package/dist/web/workspace/git.html +1 -1
- package/dist/web/workspace/git.txt +23 -21
- package/dist/web/workspace/mobile/__next._full.txt +23 -21
- package/dist/web/workspace/mobile/__next._head.txt +1 -1
- package/dist/web/workspace/mobile/__next._index.txt +8 -6
- package/dist/web/workspace/mobile/__next._tree.txt +4 -3
- package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +1 -1
- package/dist/web/workspace/mobile/__next.workspace.mobile.txt +1 -1
- package/dist/web/workspace/mobile/__next.workspace.txt +3 -3
- package/dist/web/workspace/mobile.html +1 -1
- package/dist/web/workspace/mobile.txt +23 -21
- package/dist/web/workspace/pair/__next._full.txt +29 -0
- package/dist/web/{admin/modes → workspace/pair}/__next._head.txt +1 -1
- package/dist/web/workspace/pair/__next._index.txt +12 -0
- package/dist/web/workspace/pair/__next._tree.txt +7 -0
- package/dist/web/workspace/pair/__next.workspace.pair.__PAGE__.txt +5 -0
- package/dist/web/{admin/modes/__next.admin.txt → workspace/pair/__next.workspace.pair.txt} +1 -1
- package/dist/web/workspace/pair/__next.workspace.txt +8 -0
- package/dist/web/workspace/pair.html +1 -0
- package/dist/web/workspace/pair.txt +29 -0
- package/dist/web/workspace/remote/__next._full.txt +23 -21
- package/dist/web/workspace/remote/__next._head.txt +1 -1
- package/dist/web/workspace/remote/__next._index.txt +8 -6
- package/dist/web/workspace/remote/__next._tree.txt +4 -3
- package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +1 -1
- package/dist/web/workspace/remote/__next.workspace.remote.txt +1 -1
- package/dist/web/workspace/remote/__next.workspace.txt +3 -3
- package/dist/web/workspace/remote.html +1 -1
- package/dist/web/workspace/remote.txt +23 -21
- package/dist/web/workspace/terminal/default/__next._full.txt +25 -21
- package/dist/web/workspace/terminal/default/__next._head.txt +1 -1
- package/dist/web/workspace/terminal/default/__next._index.txt +8 -6
- package/dist/web/workspace/terminal/default/__next._tree.txt +4 -3
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +1 -1
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +1 -1
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +1 -1
- package/dist/web/workspace/terminal/default/__next.workspace.txt +3 -3
- package/dist/web/workspace/terminal/default.html +1 -1
- package/dist/web/workspace/terminal/default.txt +25 -21
- package/dist/web/workspace/welcome/__next._full.txt +29 -0
- package/dist/web/workspace/welcome/__next._head.txt +6 -0
- package/dist/web/workspace/welcome/__next._index.txt +12 -0
- package/dist/web/workspace/welcome/__next._tree.txt +7 -0
- package/dist/web/workspace/welcome/__next.workspace.txt +8 -0
- package/dist/web/workspace/welcome/__next.workspace.welcome.__PAGE__.txt +5 -0
- package/dist/web/workspace/welcome/__next.workspace.welcome.txt +5 -0
- package/dist/web/workspace/welcome.html +1 -0
- package/dist/web/workspace/welcome.txt +29 -0
- package/dist/web/workspace/workspaces/__next._full.txt +23 -21
- package/dist/web/workspace/workspaces/__next._head.txt +1 -1
- package/dist/web/workspace/workspaces/__next._index.txt +8 -6
- package/dist/web/workspace/workspaces/__next._tree.txt +4 -3
- package/dist/web/workspace/workspaces/__next.workspace.txt +3 -3
- package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +1 -1
- package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +1 -1
- package/dist/web/workspace/workspaces.html +1 -1
- package/dist/web/workspace/workspaces.txt +23 -21
- package/dist/web/workspace.html +1 -1
- package/dist/web/workspace.txt +21 -19
- package/package.json +3 -3
- package/dist/ui/assets/index-I2Ik1Uxe.js +0 -8
- package/dist/web/_next/static/chunks/1222.aa4f7f7f397533e9.js +0 -1
- package/dist/web/_next/static/chunks/1228.d291278320bca9ca.js +0 -1
- package/dist/web/_next/static/chunks/1243.f35c2e6494079e05.js +0 -1
- package/dist/web/_next/static/chunks/132.6032826021079bce.js +0 -1
- package/dist/web/_next/static/chunks/1750.2278b084cb33e817.js +0 -1
- package/dist/web/_next/static/chunks/2038.640b672702093b24.js +0 -1
- package/dist/web/_next/static/chunks/213.68ce1361aee3281a.js +0 -1
- package/dist/web/_next/static/chunks/2180.e6bad8186f52ff89.js +0 -1
- package/dist/web/_next/static/chunks/2849.f2bcad51c68e44b5.js +0 -1
- package/dist/web/_next/static/chunks/2881-71aed16f0b88cb34.js +0 -1
- package/dist/web/_next/static/chunks/3429.436b229808b33e81.js +0 -1
- package/dist/web/_next/static/chunks/3514.9643e815d690f2fb.js +0 -1
- package/dist/web/_next/static/chunks/4643.dbb152682d076617.js +0 -1
- package/dist/web/_next/static/chunks/4732-76a574510722b2c3.js +0 -11
- package/dist/web/_next/static/chunks/5788-f631bcbc039b4da2.js +0 -1
- package/dist/web/_next/static/chunks/6419.842467d9a877e770.js +0 -1
- package/dist/web/_next/static/chunks/6552-1ddf0600fddfd553.js +0 -1
- package/dist/web/_next/static/chunks/674.2b5ffad0676aedbe.js +0 -1
- package/dist/web/_next/static/chunks/6742.8e137138a5d1c9e1.js +0 -1
- package/dist/web/_next/static/chunks/7507.1204ae29f46e3f01.js +0 -1
- package/dist/web/_next/static/chunks/7960.3b1c77b882ba4bb1.js +0 -1
- package/dist/web/_next/static/chunks/8467.f34d938a32d40325.js +0 -1
- package/dist/web/_next/static/chunks/8638.03c6480d4aaeb5b3.js +0 -1
- package/dist/web/_next/static/chunks/925.7ef504ee39f11840.js +0 -1
- package/dist/web/_next/static/chunks/9259.f4337cbb56e2e0b6.js +0 -1
- package/dist/web/_next/static/chunks/9299.af2a95f6ece07482.js +0 -1
- package/dist/web/_next/static/chunks/9958-8030d12d1aa9659a.js +0 -1
- package/dist/web/_next/static/chunks/app/_global-error/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/admin/admins/page-306d339ee530b5f6.js +0 -1
- package/dist/web/_next/static/chunks/app/admin/login/page-691eef7459d86ee3.js +0 -1
- package/dist/web/_next/static/chunks/app/admin/modes/page-6e1277223ac77414.js +0 -1
- package/dist/web/_next/static/chunks/app/admin/ota/page-3a2b0ecbedd59e35.js +0 -1
- package/dist/web/_next/static/chunks/app/admin/page-1fca731dbc8d61d3.js +0 -1
- package/dist/web/_next/static/chunks/app/admin/turn/page-7df8fb088cf7ccda.js +0 -1
- package/dist/web/_next/static/chunks/app/dev/question/page-92c77506bb59e639.js +0 -1
- package/dist/web/_next/static/chunks/app/layout-ec53a1a0c4b3e99e.js +0 -1
- package/dist/web/_next/static/chunks/app/login/page-55e34ebc40a79798.js +0 -1
- package/dist/web/_next/static/chunks/app/page-f0bf05d73d9e99d4.js +0 -22
- package/dist/web/_next/static/chunks/app/workspace/browse/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/editor/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/files/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/git/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/layout-03eff77b255b25d6.js +0 -15
- package/dist/web/_next/static/chunks/app/workspace/mobile/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/remote/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/workspaces/page-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-1105b0cfd58cfb3c.js +0 -1
- package/dist/web/_next/static/chunks/webpack-6c9c0816af64073a.js +0 -1
- package/dist/web/_next/static/css/be666ba38225da3a.css +0 -1
- package/dist/web/_next/static/ojB5LsquXLz4Tz9PU1iGl/_buildManifest.js +0 -1
- package/dist/web/admin/admins/__next._full.txt +0 -27
- package/dist/web/admin/admins/__next._index.txt +0 -10
- package/dist/web/admin/admins.html +0 -1
- package/dist/web/admin/admins.txt +0 -27
- package/dist/web/admin/modes/__next._full.txt +0 -27
- package/dist/web/admin/modes/__next._index.txt +0 -10
- package/dist/web/admin/modes/__next.admin.modes.__PAGE__.txt +0 -9
- package/dist/web/admin/modes.html +0 -1
- package/dist/web/admin/modes.txt +0 -27
- package/dist/web/file.svg +0 -1
- package/dist/web/globe.svg +0 -1
- package/dist/web/next.svg +0 -1
- package/dist/web/vercel.svg +0 -1
- package/dist/web/window.svg +0 -1
- /package/dist/web/_next/static/{ojB5LsquXLz4Tz9PU1iGl → nx78GyCTuW2V1ns5cZIT_}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/decolua/9remote/main/
|
|
2
|
+
<img src="https://raw.githubusercontent.com/decolua/9remote/main/web/public/screenshots/desktop-ide.webp" alt="9Remote desktop workspace: terminal, editor and AI agent panes side by side" width="880"/>
|
|
3
|
+
|
|
4
|
+
<table align="center">
|
|
5
|
+
<tr>
|
|
6
|
+
<td><img src="https://raw.githubusercontent.com/decolua/9remote/main/web/public/screenshots/mobile-1.webp" width="230" alt="Claude Code on Phone"/></td>
|
|
7
|
+
<td><img src="https://raw.githubusercontent.com/decolua/9remote/main/web/public/screenshots/mobile-2.webp" width="230" alt="File Explorer on Phone"/></td>
|
|
8
|
+
<td><img src="https://raw.githubusercontent.com/decolua/9remote/main/web/public/screenshots/mobile-3.webp" width="230" alt="System Dashboard on Phone"/></td>
|
|
9
|
+
</tr>
|
|
10
|
+
</table>
|
|
3
11
|
|
|
4
|
-
<p align="center">
|
|
5
|
-
<img src="https://raw.githubusercontent.com/decolua/9remote/main/images/mobile-1.webp" width="32%" alt="Claude Code on Phone"/>
|
|
6
|
-
<img src="https://raw.githubusercontent.com/decolua/9remote/main/images/mobile-2.webp" width="32%" alt="File Explorer on Phone"/>
|
|
7
|
-
<img src="https://raw.githubusercontent.com/decolua/9remote/main/images/mobile-3.webp" width="32%" alt="System Dashboard on Phone"/>
|
|
8
|
-
</p>
|
|
9
12
|
|
|
10
13
|
# 9Remote — Remote Everything, Vibecode Everywhere
|
|
11
14
|
|
|
12
|
-
**Your entire dev workstation in your pocket
|
|
13
|
-
|
|
15
|
+
**Bring every dev tool to your phone. Your entire dev workstation in your pocket.**
|
|
16
|
+
|
|
17
|
+
Your terminal, IDE, 60fps desktop, files, localhost previews, mobile emulators and every AI coding agent — Claude Code, Codex, Gemini CLI & 30+ more — streamed from your own machine to your phone, tablet or any browser over encrypted WebRTC P2P. No port forwarding, no accounts, no config: install on macOS, Windows or Linux, scan the QR code, and you're in. Sessions survive network switches and locked phones — builds keep running while you walk away.
|
|
14
18
|
|
|
15
19
|
> **Codex CLI looks like 1995? Claude Code's TUI hurts? Forget them.** Same agents, one UI you'll actually love.
|
|
16
20
|
|
|
17
21
|
[](https://www.npmjs.com/package/9remote)
|
|
18
22
|
[](https://www.npmjs.com/package/9remote)
|
|
19
|
-
[](#-license)
|
|
20
24
|
|
|
21
25
|
[🚀 Quick Start](#-quick-start) • [📱 Platforms](#-supported-platforms) • [✨ 8 Superpowers](#-8-remote-superpowers) • [🛡️ Security](#-zero-trust-security-architecture) • [📊 Comparison](#-how-9remote-compares) • [🌐 Website](https://9remote.cc) • [📖 Docs](https://docs.9remote.cc)
|
|
22
26
|
</div>
|
|
@@ -52,7 +56,7 @@ npm install -g 9remote
|
|
|
52
56
|
|---|:---:|:---:|---|
|
|
53
57
|
| **macOS** | ✅ | ✅ | `npm i -g 9remote` or [Download .dmg](https://github.com/decolua/9remote/releases/latest/download/9Remote-macos-universal.dmg) |
|
|
54
58
|
| **Windows** | ✅ | ✅ | `npm i -g 9remote` or [Download .exe](https://github.com/decolua/9remote/releases/latest/download/9Remote-windows-x64-setup.exe) |
|
|
55
|
-
| **Linux** | ✅ | ✅ | `npm i -g 9remote` |
|
|
59
|
+
| **Linux** | ✅ | ✅ | `npm i -g 9remote` or [Download .deb / .AppImage](https://github.com/decolua/9remote/releases/latest/download/9Remote-linux-amd64.deb) |
|
|
56
60
|
| **Web Browser** | — | ✅ | [`https://9remote.cc/login`](https://9remote.cc/login) *(Zero install, any browser)* |
|
|
57
61
|
| **iOS / iPadOS** | — | ✅ | Web / PWA (Add to Home Screen) *(Supports iPad keyboard & trackpad)* |
|
|
58
62
|
| **Android** | — | ✅ | Web / PWA (Add to Home Screen) *(Fullscreen dev mode)* |
|
|
@@ -113,7 +117,7 @@ sequenceDiagram
|
|
|
113
117
|
autonumber
|
|
114
118
|
participant Client as Mobile / Web Client
|
|
115
119
|
participant Server as 9Remote Signaling Relay
|
|
116
|
-
participant Host as Host Machine
|
|
120
|
+
participant Host as Host Machine
|
|
117
121
|
|
|
118
122
|
Host->>Server: 1. Register HEAD (TAIL stays private on Host)
|
|
119
123
|
Client->>Server: 2. Request Host lookup with HEAD
|
|
@@ -200,4 +204,4 @@ Works with any CLI AI tool: **Claude Code**, Codex, Gemini CLI, Cursor CLI, Aide
|
|
|
200
204
|
|
|
201
205
|
## 📄 License
|
|
202
206
|
|
|
203
|
-
|
|
207
|
+
Apache License 2.0 — see [LICENSE](https://github.com/decolua/9remote/blob/main/LICENSE). Free to use, modify, and distribute, including commercially.
|
|
@@ -29,7 +29,7 @@ class DesktopBridge {
|
|
|
29
29
|
const ushort VK_RETURN = 0x0D;
|
|
30
30
|
const ushort VK_SHIFT = 0x10;
|
|
31
31
|
const string PIPE = "9remote-desktop";
|
|
32
|
-
// Bump on every change to this file. The
|
|
32
|
+
// Bump on every change to this file. The host reads the same constant out of
|
|
33
33
|
// the shipped .cs and compares it against what the running worker reports, so
|
|
34
34
|
// a stale worker is detected without relying on file mtimes. Same contract as
|
|
35
35
|
// DAEMON_VERSION for the pty daemon.
|
|
@@ -82,7 +82,7 @@ class DesktopBridge {
|
|
|
82
82
|
if (h != IntPtr.Zero) { SetThreadDesktop(h); CloseDesktop(h); }
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
// Log to worker.log beside the exe — tailed by the
|
|
85
|
+
// Log to worker.log beside the exe — tailed by the host so SendInput failures
|
|
86
86
|
// (wrong session, wrong desktop, UIPI block) surface without a console.
|
|
87
87
|
// NOTE: csc v4.0.30319 is C# 5.0 — no string interpolation ($""), no expression-bodied members.
|
|
88
88
|
static string LOG = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "worker.log");
|
|
@@ -156,7 +156,7 @@ class DesktopBridge {
|
|
|
156
156
|
bool isNew;
|
|
157
157
|
_instanceLock = new Mutex(true, MUTEX_NAME, out isNew);
|
|
158
158
|
if (!isNew) {
|
|
159
|
-
// The previous worker may be shutting down right now (
|
|
159
|
+
// The previous worker may be shutting down right now (host issued STOP,
|
|
160
160
|
// then relaunched us via the task). Wait for it to release rather than
|
|
161
161
|
// exiting into a gap where no worker is running at all.
|
|
162
162
|
if (!_instanceLock.WaitOne(HANDOFF_WAIT_MS)) { L("another worker still holds the lock — exiting"); return; }
|
|
@@ -164,7 +164,7 @@ class DesktopBridge {
|
|
|
164
164
|
}
|
|
165
165
|
} catch (Exception e) { L("mutex guard unavailable: " + e.Message); }
|
|
166
166
|
try { L("start session=" + Process.GetCurrentProcess().SessionId + " pid=" + Process.GetCurrentProcess().Id + " user=" + WindowsIdentity.GetCurrent().Name); } catch {}
|
|
167
|
-
// ACL: SYSTEM + Administrators + Authenticated Users so the user-scope
|
|
167
|
+
// ACL: SYSTEM + Administrators + Authenticated Users so the user-scope host can connect.
|
|
168
168
|
var sec = new PipeSecurity();
|
|
169
169
|
sec.AddAccessRule(new PipeAccessRule(new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null), PipeAccessRights.ReadWrite, AccessControlType.Allow));
|
|
170
170
|
sec.AddAccessRule(new PipeAccessRule(new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null), PipeAccessRights.ReadWrite, AccessControlType.Allow));
|
|
@@ -195,7 +195,7 @@ class DesktopBridge {
|
|
|
195
195
|
} else if (line == "STOP") {
|
|
196
196
|
sw.WriteLine("OK");
|
|
197
197
|
// Clean exit: STOP is an intentional shutdown (user toggled Off, or
|
|
198
|
-
// the
|
|
198
|
+
// the host is freeing the locked exe for a rebuild). Restarting here
|
|
199
199
|
// would defeat both. The boot task brings it back next reboot.
|
|
200
200
|
try { srv.Dispose(); } catch { }
|
|
201
201
|
Environment.Exit(0);
|
|
@@ -129,7 +129,7 @@ class DesktopElevate {
|
|
|
129
129
|
if (!CreateEnvironmentBlock(out env, dup, false)) { CloseHandle(dup); CloseHandle(ht); CloseHandle(hp); return; }
|
|
130
130
|
|
|
131
131
|
// Worker lives beside this launcher exe, named desktop-bridge-<version>.exe.
|
|
132
|
-
// Version-stamped so the
|
|
132
|
+
// Version-stamped so the host can build a new one without overwriting (and
|
|
133
133
|
// locking) the copy currently running — this boot then picks up the newest.
|
|
134
134
|
string app = PickNewestWorker(AppDomain.CurrentDomain.BaseDirectory);
|
|
135
135
|
if (app == null) { DestroyEnvironmentBlock(env); CloseHandle(dup); CloseHandle(ht); CloseHandle(hp); return; }
|