purplemux 0.1.20 → 0.1.22
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +36 -36
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/routes-manifest.json +13 -7
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0jbkb-k._.js → [root-of-the-server]__019s3sg._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__07xijrd._.js → [root-of-the-server]__02d5mfa._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__038erb-._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__045vzzi._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__09gkm_6._.js → [root-of-the-server]__050uepg._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05bsxq0._.js +30 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__03l15.f._.js → [root-of-the-server]__093j355._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09w77m2._.js +30 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0w3m-oz._.js → [root-of-the-server]__0cy9s8s._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0auutl5._.js → [root-of-the-server]__0dn3vc8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dr444i._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04o.cbq._.js → [root-of-the-server]__0ff8o47._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0t1c-6w._.js → [root-of-the-server]__0g99747._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04cr_m8._.js → [root-of-the-server]__0ge7g~x._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__12nr~pb._.js → [root-of-the-server]__0ky2xd.._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ovn6yp._.js → [root-of-the-server]__0l806ne._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0m4quth._.js +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0cjfc~l._.js → [root-of-the-server]__0psi612._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__07gfnob._.js → [root-of-the-server]__0qtw~r6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__12ksl6n._.js → [root-of-the-server]__0xn_0ft._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0vi8p6v._.js → [root-of-the-server]__0~7f-os._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__106jccc._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0gaqt4q._.js → [root-of-the-server]__10b7n-k._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__11j9~6h._.js +1 -1
- package/.next/standalone/.next/server/chunks/_06vitke._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0b0b.5u._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0e8e4zn._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0isokfh._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_session-parser_ts_0~rhicw._.js +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_06.nllk._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_06yggfn._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0al4.z9._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0b~zgl1._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0g258pg._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_06wnz.b._.js → _0iy5a-w._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_0mu2snc._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0nkeoiw._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0qbbxeq._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/src_05g_qd3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_components_features_mobile_mobile-terminal-page_tsx_02chzch._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_components_features_workspace_terminal-page_tsx_0wuq-jl._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_use-browser-title_ts_0bw6.cb._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_use-workspace-store_ts_0h40e5c._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +36 -36
- package/.next/standalone/.next/server/pages/_app/build-manifest.json +4 -4
- package/.next/standalone/.next/server/pages/_app/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/api/check-claude.js +1 -1
- package/.next/standalone/.next/server/pages/api/check-claude.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/send.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/send.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/status.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/status.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId].js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/workspaces.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/workspaces.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/git/branch.js +1 -1
- package/.next/standalone/.next/server/pages/api/git/branch.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/git/status.js +1 -1
- package/.next/standalone/.next/server/pages/api/git/status.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/cwd.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/cwd.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/diff.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/diff.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/message-history.js +1 -1
- package/.next/standalone/.next/server/pages/api/message-history.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/push/vapid-key.js +1 -1
- package/.next/standalone/.next/server/pages/api/push/vapid-key.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js +2 -2
- package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js +2 -2
- package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/status/hook.js +1 -1
- package/.next/standalone/.next/server/pages/api/status/hook.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/status/statusline.js +1 -1
- package/.next/standalone/.next/server/pages/api/status/statusline.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js +1 -1
- package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/timeline/sessions.js +1 -1
- package/.next/standalone/.next/server/pages/api/timeline/sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/capture.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/capture.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/info.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/info.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/permission-options.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/permission-options.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/plan-options.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/plan-options.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/reset.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/reset.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/send-input.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/send-input.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/upload-file/pages-manifest.json +3 -0
- package/.next/standalone/.next/server/pages/api/upload-file.js +5 -0
- package/.next/standalone/.next/server/pages/api/upload-file.js.map +5 -0
- package/.next/standalone/.next/server/pages/api/upload-file.js.nft.json +1 -0
- package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/active.js +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/active.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/reorder.js +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/reorder.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/validate.js +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/validate.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace.js +1 -1
- package/.next/standalone/.next/server/pages/api/workspace.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/de/404.html +1 -1
- package/.next/standalone/.next/server/pages/de/500.html +1 -1
- package/.next/standalone/.next/server/pages/en/404.html +1 -1
- package/.next/standalone/.next/server/pages/en/500.html +1 -1
- package/.next/standalone/.next/server/pages/es/404.html +1 -1
- package/.next/standalone/.next/server/pages/es/500.html +1 -1
- package/.next/standalone/.next/server/pages/fr/404.html +1 -1
- package/.next/standalone/.next/server/pages/fr/500.html +1 -1
- package/.next/standalone/.next/server/pages/index/build-manifest.json +9 -9
- package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/index/react-loadable-manifest.json +6 -6
- package/.next/standalone/.next/server/pages/index.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/ja/404.html +1 -1
- package/.next/standalone/.next/server/pages/ja/500.html +1 -1
- package/.next/standalone/.next/server/pages/ko/404.html +1 -1
- package/.next/standalone/.next/server/pages/ko/500.html +1 -1
- package/.next/standalone/.next/server/pages/pt-BR/404.html +1 -1
- package/.next/standalone/.next/server/pages/pt-BR/500.html +1 -1
- package/.next/standalone/.next/server/pages/reports/build-manifest.json +8 -8
- package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/ru/404.html +1 -1
- package/.next/standalone/.next/server/pages/ru/500.html +1 -1
- package/.next/standalone/.next/server/pages/stats/build-manifest.json +6 -6
- package/.next/standalone/.next/server/pages/stats/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/stats/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/stats.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/tr/404.html +1 -1
- package/.next/standalone/.next/server/pages/tr/500.html +1 -1
- package/.next/standalone/.next/server/pages/webview/build-manifest.json +6 -6
- package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/zh-CN/404.html +1 -1
- package/.next/standalone/.next/server/pages/zh-CN/500.html +1 -1
- package/.next/standalone/.next/server/pages/zh-TW/404.html +1 -1
- package/.next/standalone/.next/server/pages/zh-TW/500.html +1 -1
- package/.next/standalone/.next/server/pages-manifest.json +1 -0
- package/.next/standalone/.next/static/chunks/{0keuo8t4.n_2p.js → 0.1fqzd6w7ukq.js} +6 -6
- package/.next/standalone/.next/static/chunks/{10lxwa2o0tc5k.js → 00hi_1a_mp-fq.js} +8 -8
- package/.next/standalone/.next/static/chunks/{0ejb3270~-0rq.js → 01ocg3qyoblhf.js} +9 -9
- package/.next/standalone/.next/static/chunks/040hwmh16ihpj.js +1 -0
- package/.next/standalone/.next/static/chunks/04u8dbn0ogxqm.js +5 -0
- package/.next/standalone/.next/static/chunks/{14-_f1cy_w-6r.js → 05y90.zbqijkv.js} +1 -1
- package/.next/standalone/.next/static/chunks/{17t9npt546df3.js → 06ik0y0xz_pxd.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0i2xpsma-u7z1.js → 08.cv3jlj5lot.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0f_z4khxs7yjc.js → 0bbvp2a5ajcy6.js} +6 -6
- package/.next/standalone/.next/static/chunks/{0csdpkqhylnfo.js → 0f6dlhth6ll0c.js} +4 -4
- package/.next/standalone/.next/static/chunks/0gjm.gbrz4zka.js +1 -0
- package/.next/standalone/.next/static/chunks/{0e_dripuuq.ua.js → 0hqhf5soi_25r.js} +1 -1
- package/.next/standalone/.next/static/chunks/0j630d8~~4rbz.js +1 -0
- package/.next/standalone/.next/static/chunks/0k7kp5g9etss9.js +1 -0
- package/.next/standalone/.next/static/chunks/{033y.3ip0s_.f.js → 0na16_b9drf2a.js} +1 -1
- package/.next/standalone/.next/static/chunks/{179c688fnh5pq.js → 0nvalz7iwy6qc.js} +1 -1
- package/.next/standalone/.next/static/chunks/0s66~z6yys6zz.js +1 -0
- package/.next/standalone/.next/static/chunks/{0_nr91n2-npr6.js → 0z4kp.r~-4ssu.js} +1 -1
- package/.next/standalone/.next/static/chunks/{02sddtrvf-s.a.js → 102ghc-i3tc0d.js} +1 -1
- package/.next/standalone/.next/static/chunks/{17zyurj6s6ttv.js → 17f-xapahn2nd.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0j8f95~sdgk0f.js → turbopack-09gtcw.qa069x.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-10i7-8dwtjopc.js → turbopack-0lt_i3zoc_39j.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-17jfs~k3adxwc.js → turbopack-0wtbntblkn121.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-10s9u~-t8fle..js → turbopack-0z1ehx-jk4pe7.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-03ko~~o8060kk.js → turbopack-11cbtg95iwob2.js} +1 -1
- package/.next/standalone/.next/static/{alzE4lzjvmajgX38HbmSM → kvEo_-n4YkToJXrvsMuHp}/_buildManifest.js +5 -4
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/dist/server.js +43 -20
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05ij_ys._.js +0 -42
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yx8n48._.js +0 -30
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_019-2tr.js +0 -3
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0ulrm.8.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_05ba4k1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0p-v0d3._.js +0 -7
- package/.next/standalone/.next/server/chunks/ssr/src_components_0-1ot7e._.js +0 -3
- package/.next/standalone/.next/static/chunks/03lm_kpi.uwr8.js +0 -1
- package/.next/standalone/.next/static/chunks/090~7qs-9.j-_.js +0 -1
- package/.next/standalone/.next/static/chunks/0aloyzq~9vtx2.js +0 -1
- package/.next/standalone/.next/static/chunks/0j-sp91q54-i~.js +0 -5
- package/.next/standalone/.next/static/chunks/0mculjdr1zqc2.js +0 -1
- package/.next/standalone/.next/static/chunks/0xg4b8o3r2_x_.js +0 -1
- package/.next/standalone/.next/static/chunks/11o~gvctqri3d.js +0 -1
- /package/.next/standalone/.next/static/{alzE4lzjvmajgX38HbmSM → kvEo_-n4YkToJXrvsMuHp}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{alzE4lzjvmajgX38HbmSM → kvEo_-n4YkToJXrvsMuHp}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
kvEo_-n4YkToJXrvsMuHp
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"pages": {
|
|
3
3
|
"/": [
|
|
4
|
-
"static/chunks/
|
|
4
|
+
"static/chunks/17f-xapahn2nd.js",
|
|
5
5
|
"static/chunks/0ro78lxc~ndn_.js",
|
|
6
6
|
"static/chunks/105.cpxealiud.js",
|
|
7
7
|
"static/chunks/0.znxwgo-re2m.js",
|
|
8
|
-
"static/chunks/
|
|
9
|
-
"static/chunks/
|
|
8
|
+
"static/chunks/05y90.zbqijkv.js",
|
|
9
|
+
"static/chunks/08.cv3jlj5lot.js",
|
|
10
10
|
"static/chunks/135rnnu.-sh80.js",
|
|
11
11
|
"static/chunks/15aj3kd.p7zw6.js",
|
|
12
12
|
"static/chunks/0vw93vbkgsb1a.js",
|
|
13
13
|
"static/chunks/07rq~qv9ldwo~.js",
|
|
14
|
-
"static/chunks/179c688fnh5pq.js",
|
|
15
|
-
"static/chunks/04_s.sj1oagqr.js",
|
|
16
|
-
"static/chunks/0i2xpsma-u7z1.js",
|
|
17
14
|
"static/chunks/0yi.kp2rt4-nc.js",
|
|
15
|
+
"static/chunks/04_s.sj1oagqr.js",
|
|
16
|
+
"static/chunks/0nvalz7iwy6qc.js",
|
|
18
17
|
"static/chunks/00yfl7agnve...js",
|
|
18
|
+
"static/chunks/0ml5~2ty-rbv_.js",
|
|
19
19
|
"static/chunks/0efkrks2gm27v.js",
|
|
20
20
|
"static/chunks/14_wa..vd6~2y.js",
|
|
21
21
|
"static/chunks/0wlz6--vu7adu.js",
|
|
22
|
-
"static/chunks/
|
|
23
|
-
"static/chunks/
|
|
24
|
-
"static/chunks/turbopack-
|
|
22
|
+
"static/chunks/0sj1hijbxwqzi.js",
|
|
23
|
+
"static/chunks/0z4kp.r~-4ssu.js",
|
|
24
|
+
"static/chunks/turbopack-0wtbntblkn121.js"
|
|
25
25
|
],
|
|
26
26
|
"/_app": [
|
|
27
27
|
"static/chunks/0turlr93lvkg8.js",
|
|
28
28
|
"static/chunks/0j.bb896cs98k.js",
|
|
29
29
|
"static/chunks/135rnnu.-sh80.js",
|
|
30
|
-
"static/chunks/0yi.kp2rt4-nc.js",
|
|
31
|
-
"static/chunks/14_wa..vd6~2y.js",
|
|
32
30
|
"static/chunks/00yfl7agnve...js",
|
|
33
|
-
"static/chunks/
|
|
31
|
+
"static/chunks/14_wa..vd6~2y.js",
|
|
32
|
+
"static/chunks/0yi.kp2rt4-nc.js",
|
|
33
|
+
"static/chunks/040hwmh16ihpj.js",
|
|
34
34
|
"static/chunks/0diujbo1qkcle.css",
|
|
35
35
|
"static/chunks/0z3gpm0o.mwwy.css",
|
|
36
|
-
"static/chunks/turbopack-
|
|
36
|
+
"static/chunks/turbopack-11cbtg95iwob2.js"
|
|
37
37
|
],
|
|
38
38
|
"/_error": [
|
|
39
39
|
"static/chunks/0~o730huopa91.js",
|
|
@@ -61,25 +61,25 @@
|
|
|
61
61
|
"static/chunks/0_67ozmvnvz16.js",
|
|
62
62
|
"static/chunks/0ro78lxc~ndn_.js",
|
|
63
63
|
"static/chunks/15aj3kd.p7zw6.js",
|
|
64
|
-
"static/chunks/
|
|
64
|
+
"static/chunks/135rnnu.-sh80.js",
|
|
65
65
|
"static/chunks/0kebzqtn4norb.js",
|
|
66
|
-
"static/chunks/
|
|
66
|
+
"static/chunks/031unywm42_xs.js",
|
|
67
67
|
"static/chunks/0wlz6--vu7adu.js",
|
|
68
|
-
"static/chunks/
|
|
68
|
+
"static/chunks/05y90.zbqijkv.js",
|
|
69
69
|
"static/chunks/0.znxwgo-re2m.js",
|
|
70
70
|
"static/chunks/07rq~qv9ldwo~.js",
|
|
71
71
|
"static/chunks/0efkrks2gm27v.js",
|
|
72
|
-
"static/chunks/
|
|
72
|
+
"static/chunks/0yi.kp2rt4-nc.js",
|
|
73
73
|
"static/chunks/04_s.sj1oagqr.js",
|
|
74
74
|
"static/chunks/0ml5~2ty-rbv_.js",
|
|
75
|
-
"static/chunks/
|
|
76
|
-
"static/chunks/
|
|
75
|
+
"static/chunks/0z4kp.r~-4ssu.js",
|
|
76
|
+
"static/chunks/0nvalz7iwy6qc.js",
|
|
77
77
|
"static/chunks/14_wa..vd6~2y.js",
|
|
78
78
|
"static/chunks/00yfl7agnve...js",
|
|
79
79
|
"static/chunks/0vw93vbkgsb1a.js",
|
|
80
|
-
"static/chunks/
|
|
80
|
+
"static/chunks/0na16_b9drf2a.js",
|
|
81
81
|
"static/chunks/0sj1hijbxwqzi.js",
|
|
82
|
-
"static/chunks/turbopack-
|
|
82
|
+
"static/chunks/turbopack-0z1ehx-jk4pe7.js"
|
|
83
83
|
],
|
|
84
84
|
"/reset": [
|
|
85
85
|
"static/chunks/0_sdw~kzk-at0.js",
|
|
@@ -90,27 +90,27 @@
|
|
|
90
90
|
"static/chunks/turbopack-0tl7oxj3760qz.js"
|
|
91
91
|
],
|
|
92
92
|
"/stats": [
|
|
93
|
-
"static/chunks/
|
|
93
|
+
"static/chunks/0hqhf5soi_25r.js",
|
|
94
94
|
"static/chunks/0ro78lxc~ndn_.js",
|
|
95
95
|
"static/chunks/0x4khblf0c7-p.js",
|
|
96
96
|
"static/chunks/0.znxwgo-re2m.js",
|
|
97
|
-
"static/chunks/
|
|
97
|
+
"static/chunks/05y90.zbqijkv.js",
|
|
98
98
|
"static/chunks/07rq~qv9ldwo~.js",
|
|
99
99
|
"static/chunks/135rnnu.-sh80.js",
|
|
100
100
|
"static/chunks/14_wa..vd6~2y.js",
|
|
101
101
|
"static/chunks/0vw93vbkgsb1a.js",
|
|
102
102
|
"static/chunks/0wlz6--vu7adu.js",
|
|
103
|
-
"static/chunks/
|
|
104
|
-
"static/chunks/
|
|
103
|
+
"static/chunks/102ghc-i3tc0d.js",
|
|
104
|
+
"static/chunks/0z4kp.r~-4ssu.js",
|
|
105
105
|
"static/chunks/0ml5~2ty-rbv_.js",
|
|
106
|
-
"static/chunks/
|
|
106
|
+
"static/chunks/0nvalz7iwy6qc.js",
|
|
107
107
|
"static/chunks/15aj3kd.p7zw6.js",
|
|
108
108
|
"static/chunks/0yi.kp2rt4-nc.js",
|
|
109
109
|
"static/chunks/0efkrks2gm27v.js",
|
|
110
110
|
"static/chunks/04_s.sj1oagqr.js",
|
|
111
111
|
"static/chunks/0zzlz_qu90xvc.js",
|
|
112
112
|
"static/chunks/00yfl7agnve...js",
|
|
113
|
-
"static/chunks/turbopack-
|
|
113
|
+
"static/chunks/turbopack-09gtcw.qa069x.js"
|
|
114
114
|
],
|
|
115
115
|
"/tools-required": [
|
|
116
116
|
"static/chunks/0dp178b-0_ltl.js",
|
|
@@ -128,32 +128,32 @@
|
|
|
128
128
|
"static/chunks/0h7n~i8gk~-a2.js",
|
|
129
129
|
"static/chunks/0ro78lxc~ndn_.js",
|
|
130
130
|
"static/chunks/135rnnu.-sh80.js",
|
|
131
|
-
"static/chunks/
|
|
131
|
+
"static/chunks/05y90.zbqijkv.js",
|
|
132
132
|
"static/chunks/0h_vfy~qxk1_6.js",
|
|
133
133
|
"static/chunks/07rq~qv9ldwo~.js",
|
|
134
134
|
"static/chunks/14_wa..vd6~2y.js",
|
|
135
135
|
"static/chunks/0.znxwgo-re2m.js",
|
|
136
136
|
"static/chunks/0vw93vbkgsb1a.js",
|
|
137
137
|
"static/chunks/15aj3kd.p7zw6.js",
|
|
138
|
-
"static/chunks/
|
|
138
|
+
"static/chunks/0yi.kp2rt4-nc.js",
|
|
139
139
|
"static/chunks/00yfl7agnve...js",
|
|
140
140
|
"static/chunks/0wlz6--vu7adu.js",
|
|
141
141
|
"static/chunks/04_s.sj1oagqr.js",
|
|
142
142
|
"static/chunks/0ml5~2ty-rbv_.js",
|
|
143
|
-
"static/chunks/
|
|
143
|
+
"static/chunks/0z4kp.r~-4ssu.js",
|
|
144
144
|
"static/chunks/0efkrks2gm27v.js",
|
|
145
|
-
"static/chunks/
|
|
145
|
+
"static/chunks/0nvalz7iwy6qc.js",
|
|
146
146
|
"static/chunks/0zzlz_qu90xvc.js",
|
|
147
|
-
"static/chunks/
|
|
148
|
-
"static/chunks/turbopack-
|
|
147
|
+
"static/chunks/08.cv3jlj5lot.js",
|
|
148
|
+
"static/chunks/turbopack-0lt_i3zoc_39j.js"
|
|
149
149
|
]
|
|
150
150
|
},
|
|
151
151
|
"devFiles": [],
|
|
152
152
|
"polyfillFiles": [],
|
|
153
153
|
"lowPriorityFiles": [
|
|
154
|
-
"static/
|
|
155
|
-
"static/
|
|
156
|
-
"static/
|
|
154
|
+
"static/kvEo_-n4YkToJXrvsMuHp/_buildManifest.js",
|
|
155
|
+
"static/kvEo_-n4YkToJXrvsMuHp/_ssgManifest.js",
|
|
156
|
+
"static/kvEo_-n4YkToJXrvsMuHp/_clientMiddlewareManifest.js"
|
|
157
157
|
],
|
|
158
158
|
"rootMainFiles": []
|
|
159
159
|
}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"routes": {},
|
|
4
4
|
"dynamicRoutes": {},
|
|
5
5
|
"preview": {
|
|
6
|
-
"previewModeId": "
|
|
7
|
-
"previewModeSigningKey": "
|
|
8
|
-
"previewModeEncryptionKey": "
|
|
6
|
+
"previewModeId": "0d0270cb02d02b3b85a7594e3a5cee1c",
|
|
7
|
+
"previewModeSigningKey": "6dbb08de820a9d430b484945c8cc6a2fd3b32082f9a91b16861b50927b0e1531",
|
|
8
|
+
"previewModeEncryptionKey": "483ec87ac263c6b36d3baa9c975743467411c3675e3547cf9a1ebe9181c97cd8"
|
|
9
9
|
},
|
|
10
10
|
"notFoundRoutes": []
|
|
11
11
|
}
|
|
@@ -424,6 +424,12 @@
|
|
|
424
424
|
"routeKeys": {},
|
|
425
425
|
"namedRegex": "^/api/tmux/send\\-input(?:/)?$"
|
|
426
426
|
},
|
|
427
|
+
{
|
|
428
|
+
"page": "/api/upload-file",
|
|
429
|
+
"regex": "^/api/upload\\-file(?:/)?$",
|
|
430
|
+
"routeKeys": {},
|
|
431
|
+
"namedRegex": "^/api/upload\\-file(?:/)?$"
|
|
432
|
+
},
|
|
427
433
|
{
|
|
428
434
|
"page": "/api/upload-image",
|
|
429
435
|
"regex": "^/api/upload\\-image(?:/)?$",
|
|
@@ -500,31 +506,31 @@
|
|
|
500
506
|
"dataRoutes": [
|
|
501
507
|
{
|
|
502
508
|
"page": "/",
|
|
503
|
-
"dataRouteRegex": "^/_next/data/
|
|
509
|
+
"dataRouteRegex": "^/_next/data/kvEo_\\-n4YkToJXrvsMuHp/index\\.json$"
|
|
504
510
|
},
|
|
505
511
|
{
|
|
506
512
|
"page": "/login",
|
|
507
|
-
"dataRouteRegex": "^/_next/data/
|
|
513
|
+
"dataRouteRegex": "^/_next/data/kvEo_\\-n4YkToJXrvsMuHp/login\\.json$"
|
|
508
514
|
},
|
|
509
515
|
{
|
|
510
516
|
"page": "/reports",
|
|
511
|
-
"dataRouteRegex": "^/_next/data/
|
|
517
|
+
"dataRouteRegex": "^/_next/data/kvEo_\\-n4YkToJXrvsMuHp/reports\\.json$"
|
|
512
518
|
},
|
|
513
519
|
{
|
|
514
520
|
"page": "/reset",
|
|
515
|
-
"dataRouteRegex": "^/_next/data/
|
|
521
|
+
"dataRouteRegex": "^/_next/data/kvEo_\\-n4YkToJXrvsMuHp/reset\\.json$"
|
|
516
522
|
},
|
|
517
523
|
{
|
|
518
524
|
"page": "/stats",
|
|
519
|
-
"dataRouteRegex": "^/_next/data/
|
|
525
|
+
"dataRouteRegex": "^/_next/data/kvEo_\\-n4YkToJXrvsMuHp/stats\\.json$"
|
|
520
526
|
},
|
|
521
527
|
{
|
|
522
528
|
"page": "/tools-required",
|
|
523
|
-
"dataRouteRegex": "^/_next/data/
|
|
529
|
+
"dataRouteRegex": "^/_next/data/kvEo_\\-n4YkToJXrvsMuHp/tools-required\\.json$"
|
|
524
530
|
},
|
|
525
531
|
{
|
|
526
532
|
"page": "/webview",
|
|
527
|
-
"dataRouteRegex": "^/_next/data/
|
|
533
|
+
"dataRouteRegex": "^/_next/data/kvEo_\\-n4YkToJXrvsMuHp/webview\\.json$"
|
|
528
534
|
}
|
|
529
535
|
],
|
|
530
536
|
"i18n": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},
|
|
1
|
+
module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),i=e.i(446786);let a=r.default.join(i.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,i]=r.split("=").map(e=>e.trim());e&&i&&(t[e]=i)}return t})(process.env.LOG_LEVELS),o=["trace","debug","info","warn","error","fatal"],l=globalThis;if(!l.__ptRootLogger){let e=[n,...Object.values(s)].reduce((e,t)=>o.indexOf(t)<o.indexOf(e)?t:e,"fatal");l.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(a,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=l.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??n,t}])},871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),i=e.i(814747),a=e.i(446786);let n=i.default.join(a.default.homedir(),".purplemux","cli-token"),s=globalThis;e.s(["verifyCliToken",0,e=>{let a=e.headers["x-pmux-token"];var o="string"==typeof a?a:void 0;if(!o)return!1;let l=(()=>{if(s.__ptCliToken)return s.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(n,"utf-8").trim()||null}catch{return null}})();if(e)return s.__ptCliToken=e,e;let a=(0,t.randomBytes)(32).toString("hex");s.__ptCliToken=a;try{r.default.mkdirSync(i.default.dirname(n),{recursive:!0}),r.default.writeFileSync(n,a,{mode:384})}catch{}return a})();return o.length===l.length&&(0,t.timingSafeEqual)(Buffer.from(o),Buffer.from(l))}])},796902,e=>{"use strict";var t=e.i(814747),r=e.i(446786);let i=t.default.join(r.default.homedir(),".purplemux"),a=t.default.join(i,"statusline.sh"),n=t.default.join(i,"rate-limits.json"),s=`#!/bin/sh
|
|
2
2
|
PORT_FILE="$HOME/.purplemux/port"
|
|
3
3
|
TOKEN_FILE="$HOME/.purplemux/cli-token"
|
|
4
4
|
[ -f "$PORT_FILE" ] || exit 0
|
|
@@ -12,4 +12,4 @@ curl -sf --max-time 2 -X POST \\
|
|
|
12
12
|
"http://localhost:\${PORT}/api/status/statusline" 2>/dev/null || exit 0
|
|
13
13
|
`;e.s(["RATE_LIMITS_FILE",0,n,"STATUSLINE_SCRIPT_CONTENT",0,s,"STATUSLINE_SCRIPT_PATH",0,a])},135992,e=>{"use strict";var t=e.i(926747),r=e.i(190406),i=e.i(244898),a=e.i(262950),n=e.i(924868),s=e.i(814747),o=e.i(446786),l=e.i(233405),u=e.i(871911),d=e.i(796902);let p=(0,e.i(25146).createLogger)("statusline"),c=async e=>{let t=e.workspace?.project_dir,r=[];for(let e of(t&&(r.push(s.default.join(t,".claude","settings.local.json")),r.push(s.default.join(t,".claude","settings.json"))),r.push(s.default.join(o.default.homedir(),".claude","settings.json")),r))try{let t=await n.default.readFile(e,"utf-8"),r=JSON.parse(t),i=r?.statusLine?.command;if("string"==typeof i&&i.trim())return i}catch{}return null},f=async e=>{let t=e.rate_limits?.five_hour??null,r=e.rate_limits?.seven_day??null;if(!t&&!r)return;let i=e.context_window,a={ts:Date.now()/1e3,model:e.model?.display_name??null,five_hour:t,seven_day:r,context:i?{used_pct:i.used_percentage,remaining_pct:i.remaining_percentage,input_tokens:i.total_input_tokens,output_tokens:i.total_output_tokens,window_size:i.context_window_size}:null,cost:e.cost??null};try{await n.default.writeFile(d.RATE_LIMITS_FILE,JSON.stringify(a))}catch(e){p.debug({err:e},"failed to write rate-limits.json")}},m=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});if(!(0,u.verifyCliToken)(e))return t.status(403).json({error:"Forbidden"});let r=e.body??{};await f(r),t.setHeader("Content-Type","text/plain; charset=utf-8");try{let e=await c(r);if(e){let i,a=await (i=JSON.stringify(r),new Promise((t,r)=>{let a=(0,l.spawn)("sh",["-c",e],{stdio:["pipe","pipe","pipe"]}),n="",s="";a.stdout.on("data",e=>{n+=e.toString()}),a.stderr.on("data",e=>{s+=e.toString()}),a.on("error",r),a.on("close",e=>{0!==e&&s&&p.debug({code:e,stderr:s},"user statusLine exited non-zero"),t(n)}),a.stdin.write(i),a.stdin.end()}));return t.status(200).send(a)}}catch(e){p.debug({err:e},"user statusLine failed")}return t.status(204).end()};e.s(["default",0,m],826327);var _=e.i(826327),g=e.i(7031),h=e.i(181927),x=e.i(846432);let y=(0,a.hoist)(_,"default"),v=(0,a.hoist)(_,"config"),T=new i.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/status/statusline",pathname:"/api/status/statusline",bundlePath:"",filename:""},userland:_,distDir:".next",relativeProjectDir:""});async function w(e,r,i){i.requestMeta&&(0,x.setRequestMeta)(e,i.requestMeta),T.isDev&&(0,x.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/status/statusline";a=a.replace(/\/index$/,"")||"/";let n=await T.prepare(e,r,{srcPage:a});if(!n){r.statusCode=400,r.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve());return}let{query:s,params:o,prerenderManifest:l,routerServerContext:u}=n;try{let t,i=e.method||"GET",n=(0,g.getTracer)(),d=n.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),c=T.instrumentationOnRequestError.bind(T),f=async d=>T.render(e,r,{query:{...s,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:T.isDev,page:"/api/status/statusline",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${i} ${s}`;d.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",s),t.updateName(e))}else d.updateName(`${i} ${a}`)});p&&d?await f(d):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(h.BaseServerSpan.handleRequest,{spanName:`${i} ${a}`,kind:g.SpanKind.SERVER,attributes:{"http.method":i,"http.target":e.url}},f),void 0,!p))}catch(e){if(T.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==i.waitUntil||i.waitUntil.call(i,Promise.resolve())}}e.s(["config",0,v,"default",0,y,"handler",0,w],135992)}];
|
|
14
14
|
|
|
15
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
15
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__019s3sg._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},597789,965898,e=>{"use strict";let t=process.env.__PMUX_PRISTINE_ENV,r=Object.freeze(t?JSON.parse(t):{...process.env});t||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(r)),e.s(["PRISTINE_ENV",0,r],965898);let a=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),n=["LC_"],i=e=>a.has(e)||n.some(t=>e.startsWith(t)),s={TERM:"xterm-256color",COLORTERM:"truecolor"},l=()=>{let e={};for(let[t,a]of Object.entries(r))void 0!==a&&i(t)&&(e[t]=a);return{...e,...s}},o=e=>`'${e.replace(/'/g,"'\\''")}'`,u=()=>r.SHELL||"/bin/bash";e.s(["buildShellEnv",0,()=>l(),"buildShellLaunchCommand",0,()=>{let e=Object.entries(l()).map(([e,t])=>`${e}=${o(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${o(u())} -l`},"defaultShell",0,u],597789)},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let n=r.default.join(a.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[i,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(n,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??i,t}])},44014,e=>{"use strict";let t,r;var a=e.i(666680);e.s(["nanoid",0,function(e=21){var n;n=e|=0,!t||t.length<n?(t=Buffer.allocUnsafe(128*n),a.webcrypto.getRandomValues(t),r=0):r+n>t.length&&(a.webcrypto.getRandomValues(t),r=0),r+=n;let i="";for(let a=r-e;a<r;a++)i+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[a]];return i}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),n=e.i(814747),i=e.i(44014),s=e.i(965898),l=e.i(597789),o=e.i(25146);process.platform;let u="linux"===process.platform;e.s(["isLinux",0,u],544538);let p=(0,o.createLogger)("terminal"),c=(0,a.promisify)(t.execFile),d="purple",m=n.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),h=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},f=async(e,t,r,a)=>{let n=(0,l.buildShellLaunchCommand)();await c("tmux",["-u","-L",d,"-f",m,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),n],{timeout:5e3,cwd:a||s.PRISTINE_ENV.HOME||"/"}),await E(),p.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},y=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await g(e))return;p.debug(`killSession start: ${e}`);let t=await v(e);if(t)try{p.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await g(e))return void p.debug(`killSession done (SIGTERM): ${e}`);await y(200)}if(p.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{p.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void p.debug(`killSession done (SIGKILL): ${e}`);await y(200)}p.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{try{return await c("tmux",["-L",d,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},x=async()=>{},S=async()=>{await x();let e=await h();e.length>0&&e.forEach(e=>{p.debug(`existing tmux session found: ${e}`)})},_=async e=>{if(u)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await c("lsof",["-a","-p",String(e),"-d","cwd","-Fn"],{timeout:5e3}),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},L=async e=>{let t=await v(e);if(t){let e=await _(t);if(e)return e}try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},v=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},E=async()=>{try{await c("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},P=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},I=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let r of e.trim().split("\n")){if(!r)continue;let[e,a,n,i,s]=r.split(" ");if(e&&a){let r=parseInt(i,10),l=parseInt(s,10);t.set(e,{command:a,path:n||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},N=new Set(["bash","zsh","fish","sh","dash"]),b=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},$=async e=>{await c("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},R=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},T=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},M=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},A=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,n,i,s,l]=t.trim().split(" ");return{cwd:r||null,command:a||null,pid:n&&parseInt(n,10)||null,width:i&&parseInt(i,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},k=new Set(["node","python","python3","ruby","perl","deno","bun"]),C=async()=>{try{await c("tmux",["-L",d,"kill-server"],{timeout:5e3}),p.debug("tmux server killed")}catch{}},q=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},O=async(e,t)=>{try{let{stdout:r}=await c("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},j=async e=>{if(u){let t=[];return await Promise.all(e.map(async e=>{try{for(let a of(await r.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(a,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await c("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},U=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await j(r);if(0===e.length)break;t.push(...e),r=e}return t},G=async e=>{try{let t=new Set(e),{stdout:r}=await c("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let e of r.split("\n")){let r=e.match(/pid=(\d+)/g);if(!r||!r.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let n=e.match(/:(\d+)\s/);n&&a.add(parseInt(n[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},H=async e=>{let t=await U(e);if(0===t.length)return[];if(u)return G(t);try{let{stdout:e}=await c("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&r.add(parseInt(e[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},D=async e=>{let t=await v(e);if(!t)return null;try{let{stdout:e}=await c("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await c("ps",["-o","args=","-p",r],{timeout:5e3}),i=a.trim();if(!i)return null;let s=i.split(/\s+/);if(0===s.length)return i;if(s[0]=n.default.basename(s[0]),k.has(s[0])&&s.length>1){let e=n.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,e)}return s.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,N,"applyConfig",0,E,"capturePaneContent",0,q,"capturePaneContentWithHistory",0,O,"createSession",0,f,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,$,"getAllPanesInfo",0,I,"getLastCommand",0,D,"getListeningPorts",0,H,"getPaneCurrentCommand",0,P,"getPaneDetailInfo",0,A,"getPaneTitle",0,b,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,g,"killServer",0,C,"killSession",0,w,"listSessions",0,h,"scanSessions",0,S,"sendBracketedPaste",0,M,"sendKeys",0,R,"sendRawKeys",0,T,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},295055,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),n=e.i(262950),i=e.i(459015);let s=(0,e.i(25146).createLogger)("tmux"),l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.session;if(!r)return t.status(400).json({error:"session parameter required"});if(!await (0,i.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let e=await (0,i.capturePaneContent)(r);return t.status(200).json({content:e??""})}catch(e){return s.error(`capture failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to capture pane"})}};e.s(["default",0,l],798167);var o=e.i(798167),u=e.i(7031),p=e.i(181927),c=e.i(846432);let d=(0,n.hoist)(o,"default"),m=(0,n.hoist)(o,"config"),h=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/capture",pathname:"/api/tmux/capture",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),h.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/tmux/capture";n=n.replace(/\/index$/,"")||"/";let i=await h.prepare(e,r,{srcPage:n});if(!i){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:d}=i;try{let t,a=e.method||"GET",i=(0,u.getTracer)(),c=i.getActiveScopeSpan(),m=!!(null==d?void 0:d.isWrappedByNextServer),f=h.instrumentationOnRequestError.bind(h),y=async u=>h.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:h.isDev,page:"/api/tmux/capture",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${a} ${s}`;u.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",s),t.updateName(e))}else u.updateName(`${a} ${n}`)});m&&c?await y(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${n}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!m))}catch(e){if(h.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,m,"default",0,d,"handler",0,f],295055)}];
|
|
1
|
+
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let n=r.default.join(a.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[i,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(n,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??i,t}])},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},597789,965898,e=>{"use strict";let t=process.env.__PMUX_PRISTINE_ENV,r=Object.freeze(t?JSON.parse(t):{...process.env});t||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(r)),e.s(["PRISTINE_ENV",0,r],965898);let a=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),n=["LC_"],i=e=>a.has(e)||n.some(t=>e.startsWith(t)),s={TERM:"xterm-256color",COLORTERM:"truecolor"},l=()=>{let e={};for(let[t,a]of Object.entries(r))void 0!==a&&i(t)&&(e[t]=a);return{...e,...s}},o=e=>`'${e.replace(/'/g,"'\\''")}'`,u=()=>r.SHELL||"/bin/bash";e.s(["buildShellEnv",0,()=>l(),"buildShellLaunchCommand",0,()=>{let e=Object.entries(l()).map(([e,t])=>`${e}=${o(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${o(u())} -l`},"defaultShell",0,u],597789)},44014,e=>{"use strict";let t,r;var a=e.i(666680);e.s(["nanoid",0,function(e=21){var n;n=e|=0,!t||t.length<n?(t=Buffer.allocUnsafe(128*n),a.webcrypto.getRandomValues(t),r=0):r+n>t.length&&(a.webcrypto.getRandomValues(t),r=0),r+=n;let i="";for(let a=r-e;a<r;a++)i+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[a]];return i}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),n=e.i(814747),i=e.i(44014),s=e.i(965898),l=e.i(597789),o=e.i(25146);process.platform;let u="linux"===process.platform;e.s(["isLinux",0,u],544538);let p=(0,o.createLogger)("terminal"),c=(0,a.promisify)(t.execFile),d="purple",m=n.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),h=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},f=async(e,t,r,a)=>{let n=(0,l.buildShellLaunchCommand)();await c("tmux",["-u","-L",d,"-f",m,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),n],{timeout:5e3,cwd:a||s.PRISTINE_ENV.HOME||"/"}),await E(),p.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},y=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await g(e))return;p.debug(`killSession start: ${e}`);let t=await v(e);if(t)try{p.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await g(e))return void p.debug(`killSession done (SIGTERM): ${e}`);await y(200)}if(p.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{p.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void p.debug(`killSession done (SIGKILL): ${e}`);await y(200)}p.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{try{return await c("tmux",["-L",d,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},x=async()=>{},S=async()=>{await x();let e=await h();e.length>0&&e.forEach(e=>{p.debug(`existing tmux session found: ${e}`)})},_=async e=>{if(u)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await c("lsof",["-a","-p",String(e),"-d","cwd","-Fn"],{timeout:5e3}),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},L=async e=>{let t=await v(e);if(t){let e=await _(t);if(e)return e}try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},v=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},E=async()=>{try{await c("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},P=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},I=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let r of e.trim().split("\n")){if(!r)continue;let[e,a,n,i,s]=r.split(" ");if(e&&a){let r=parseInt(i,10),l=parseInt(s,10);t.set(e,{command:a,path:n||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},N=new Set(["bash","zsh","fish","sh","dash"]),b=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},$=async e=>{await c("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},R=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},T=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},M=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},A=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,n,i,s,l]=t.trim().split(" ");return{cwd:r||null,command:a||null,pid:n&&parseInt(n,10)||null,width:i&&parseInt(i,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},k=new Set(["node","python","python3","ruby","perl","deno","bun"]),C=async()=>{try{await c("tmux",["-L",d,"kill-server"],{timeout:5e3}),p.debug("tmux server killed")}catch{}},q=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},O=async(e,t)=>{try{let{stdout:r}=await c("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},j=async e=>{if(u){let t=[];return await Promise.all(e.map(async e=>{try{for(let a of(await r.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(a,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await c("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},U=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await j(r);if(0===e.length)break;t.push(...e),r=e}return t},G=async e=>{try{let t=new Set(e),{stdout:r}=await c("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let e of r.split("\n")){let r=e.match(/pid=(\d+)/g);if(!r||!r.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let n=e.match(/:(\d+)\s/);n&&a.add(parseInt(n[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},H=async e=>{let t=await U(e);if(0===t.length)return[];if(u)return G(t);try{let{stdout:e}=await c("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&r.add(parseInt(e[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},D=async e=>{let t=await v(e);if(!t)return null;try{let{stdout:e}=await c("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await c("ps",["-o","args=","-p",r],{timeout:5e3}),i=a.trim();if(!i)return null;let s=i.split(/\s+/);if(0===s.length)return i;if(s[0]=n.default.basename(s[0]),k.has(s[0])&&s.length>1){let e=n.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,e)}return s.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,N,"applyConfig",0,E,"capturePaneContent",0,q,"capturePaneContentWithHistory",0,O,"createSession",0,f,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,$,"getAllPanesInfo",0,I,"getLastCommand",0,D,"getListeningPorts",0,H,"getPaneCurrentCommand",0,P,"getPaneDetailInfo",0,A,"getPaneTitle",0,b,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,g,"killServer",0,C,"killSession",0,w,"listSessions",0,h,"scanSessions",0,S,"sendBracketedPaste",0,M,"sendKeys",0,R,"sendRawKeys",0,T,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},295055,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),n=e.i(262950),i=e.i(459015);let s=(0,e.i(25146).createLogger)("tmux"),l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.session;if(!r)return t.status(400).json({error:"session parameter required"});if(!await (0,i.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let e=await (0,i.capturePaneContent)(r);return t.status(200).json({content:e??""})}catch(e){return s.error(`capture failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to capture pane"})}};e.s(["default",0,l],798167);var o=e.i(798167),u=e.i(7031),p=e.i(181927),c=e.i(846432);let d=(0,n.hoist)(o,"default"),m=(0,n.hoist)(o,"config"),h=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/capture",pathname:"/api/tmux/capture",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),h.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/tmux/capture";n=n.replace(/\/index$/,"")||"/";let i=await h.prepare(e,r,{srcPage:n});if(!i){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:d}=i;try{let t,a=e.method||"GET",i=(0,u.getTracer)(),c=i.getActiveScopeSpan(),m=!!(null==d?void 0:d.isWrappedByNextServer),f=h.instrumentationOnRequestError.bind(h),y=async u=>h.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:h.isDev,page:"/api/tmux/capture",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${a} ${s}`;u.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",s),t.updateName(e))}else u.updateName(`${a} ${n}`)});m&&c?await y(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${n}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!m))}catch(e){if(h.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,m,"default",0,d,"handler",0,f],295055)}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__02d5mfa._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[254799,(e,t,
|
|
1
|
+
module.exports=[254799,(e,t,a)=>{t.exports=e.x("crypto",()=>require("crypto"))},270406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,a)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),a=e.i(814747),r=e.i(446786);let i=a.default.join(r.default.homedir(),".purplemux","logs"),o=process.env.LOG_LEVEL||"info",l=(e=>{if(!e)return{};let t={};for(let a of e.split(",")){let[e,r]=a.split("=").map(e=>e.trim());e&&r&&(t[e]=r)}return t})(process.env.LOG_LEVELS),n=["trace","debug","info","warn","error","fatal"],s=globalThis;if(!s.__ptRootLogger){let e=[o,...Object.values(l)].reduce((e,t)=>n.indexOf(t)<n.indexOf(e)?t:e,"fatal");s.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:a.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let d=s.__ptRootLogger;e.s(["createLogger",0,e=>{let t=d.child({module:e});return t.level=l[e]??o,t}])},105265,e=>{"use strict";var t=e.i(924868),a=e.i(814747),r=e.i(446786),i=e.i(254799);let o=a.default.join(r.default.homedir(),".purplemux"),l=a.default.join(o,"uploads"),n=864e5,s={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp"},d=e=>{if(!e)return"unknown";let t=e.replace(/[^a-zA-Z0-9_-]/g,"");return t.length>0?t.slice(0,64):"unknown"},u=e=>e in s,p=async({data:e,mime:r,originalName:o,wsId:n,tabId:p})=>{let c,f,m,g;if(!u(r))throw Error(`Unsupported image type: ${r}`);if(e.length>0xa00000)throw Error("Image exceeds 10485760 bytes");let h=a.default.join(l,d(n),d(p));await t.default.mkdir(h,{recursive:!0});let y=(c=s[r],f=Date.now(),m=(0,i.randomBytes)(4).toString("hex"),g=(o?a.default.parse(o).name:"image").replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,40)||"image",`${f}-${m}-${g}.${c}`),x=a.default.join(h,y);return await t.default.writeFile(x,e,{mode:384}),{path:x,filename:y}},c=async({data:e,originalName:r,wsId:o,tabId:n})=>{let s,u,p,c,f,m;if(e.length>0x3200000)throw Error("File exceeds 52428800 bytes");let g=a.default.join(l,d(o),d(n));await t.default.mkdir(g,{recursive:!0});let h=(s=Date.now(),u=(0,i.randomBytes)(4).toString("hex"),c=((p=r?a.default.parse(r):{name:"",ext:""}).name||"file").replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,40)||"file",m=(f=p.ext?p.ext.replace(/[^a-zA-Z0-9.]/g,""):"").startsWith(".")?f.slice(0,16):"",`${s}-${u}-${c}${m}`),y=a.default.join(g,h);return await t.default.writeFile(y,e,{mode:384}),{path:y,filename:h}},f=async e=>{try{let a=await t.default.stat(e);return await t.default.unlink(e),a.size}catch{return 0}},m=async e=>{try{let a=await t.default.readdir(e);0===a.length&&e!==l&&await t.default.rmdir(e)}catch{}},g=async e=>{let r,i={deleted:0,freedBytes:0};try{r=await t.default.readdir(l)}catch{return i}for(let o of r){let r,n=a.default.join(l,o);try{r=await t.default.readdir(n)}catch{continue}for(let o of r){let r,l=a.default.join(n,o);try{r=await t.default.readdir(l)}catch{continue}for(let o of r){let r=a.default.join(l,o);try{let a=await t.default.stat(r);if(!a.isFile())continue;await e(r,a.mtimeMs,a.size)&&(i.deleted+=1,i.freedBytes+=a.size)}catch{}}await m(l)}await m(n)}return i},h=async(e=n)=>{let t=Date.now()-e;return g(async(e,a)=>a<t&&await f(e)>0)},y=async()=>g(async e=>await f(e)>0);e.s(["GENERIC_MAX_BYTES",0,0x3200000,"MAX_BYTES",0,0xa00000,"cleanupAllUploads",0,y,"cleanupExpiredUploads",0,h,"isValidMime",0,u,"saveFile",0,c,"saveImage",0,p])},284615,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),o=e.i(105265);let l=(0,e.i(25146).createLogger)("uploads"),n=e=>Array.isArray(e)?e[0]:e,s=async(e,t)=>{let a;if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let r=n(e.headers["content-type"])?.split(";")[0]?.trim()??"";if(!(0,o.isValidMime)(r))return t.status(400).json({error:"Unsupported image type"});try{a=await new Promise((t,a)=>{let r=[],i=0;e.on("data",t=>{if((i+=t.length)>o.MAX_BYTES){a(Error("payload too large")),e.destroy();return}r.push(t)}),e.on("end",()=>t(Buffer.concat(r))),e.on("error",a)})}catch(a){let e=a instanceof Error?a.message:"failed to read body";if("payload too large"===e)return t.status(413).json({error:"Image exceeds 10MB"});return t.status(400).json({error:e})}if(0===a.length)return t.status(400).json({error:"Empty body"});let i=n(e.headers["x-pmux-ws-id"]),s=n(e.headers["x-pmux-tab-id"]),d=n(e.headers["x-pmux-filename"]);try{let e=await (0,o.saveImage)({data:a,mime:r,originalName:d?decodeURIComponent(d):void 0,wsId:i,tabId:s});return t.status(200).json({path:e.path,filename:e.filename})}catch(e){return l.error(`upload-image failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to save image"})}};e.s(["config",0,{api:{bodyParser:!1,sizeLimit:"12mb"}},"default",0,s],897874);var d=e.i(897874),u=e.i(7031),p=e.i(181927),c=e.i(846432);let f=(0,i.hoist)(d,"default"),m=(0,i.hoist)(d,"config"),g=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/upload-image",pathname:"/api/upload-image",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function h(e,a,r){r.requestMeta&&(0,c.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/upload-image";i=i.replace(/\/index$/,"")||"/";let o=await g.prepare(e,a,{srcPage:i});if(!o){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:l,params:n,prerenderManifest:s,routerServerContext:d}=o;try{let t,r=e.method||"GET",o=(0,u.getTracer)(),c=o.getActiveScopeSpan(),f=!!(null==d?void 0:d.isWrappedByNextServer),m=g.instrumentationOnRequestError.bind(g),h=async u=>g.render(e,a,{query:{...l,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:s.preview,propagateError:!1,dev:g.isDev,page:"/api/upload-image",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>m(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=o.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let l=e.get("next.route");if(l){let e=`${r} ${l}`;u.setAttributes({"next.route":l,"http.route":l,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",l),t.updateName(e))}else u.updateName(`${r} ${i}`)});f&&c?await h(c):(t=o.getActiveScopeSpan(),await o.withPropagatedContext(e.headers,()=>o.trace(p.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},h),void 0,!f))}catch(e){if(g.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,m,"default",0,f,"handler",0,h],284615)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__038erb-._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},889215,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),l=e.i(924868),
|
|
1
|
+
module.exports=[270406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},889215,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),l=e.i(924868),o=e.i(814747),s=e.i(446786);let n=o.default.join(s.default.homedir(),".purplemux"),p=o.default.join(n,"keybindings.json"),d={overrides:{}},u=e=>{if(!e||"object"!=typeof e)return d;let t=e.overrides;if(!t||"object"!=typeof t)return d;let a={};for(let[e,r]of Object.entries(t))"string"==typeof e&&(null===r||"string"==typeof r)&&(a[e]=r);return{overrides:a}},c=async()=>{try{let e=await l.default.readFile(p,"utf-8");return u(JSON.parse(e))}catch{return d}},f=async e=>{await l.default.mkdir(n,{recursive:!0}),await l.default.writeFile(p,JSON.stringify(u(e),null,2),{encoding:"utf-8",mode:384})},y=async(e,t)=>{let a=await c();return a.overrides[e]=t,await f(a),a},h=async e=>{let t=await c();return delete t.overrides[e],await f(t),t},w=async()=>(await f(d),d),m="u">typeof navigator&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??navigator.userAgent),g=m?"meta":"ctrl",b=m?"meta+ctrl+shift":"ctrl+alt+shift",v=e=>Array.from({length:9},(t,a)=>`${e}+${a+1}`).join(", "),C={"workspace.new":{id:"workspace.new",label:"New workspace",category:"workspace",defaultKey:`${g}+n`,display:{mac:"⌘N",other:"Ctrl+N"}},"workspace.rename":{id:"workspace.rename",label:"Rename workspace",category:"workspace",defaultKey:`${g}+shift+r`,display:{mac:"⌘⇧R",other:"Ctrl+Shift+R"}},"workspace.switch":{id:"workspace.switch",label:"Switch to workspace 1–9",category:"workspace",defaultKey:v(g),display:{mac:"⌘1 – ⌘9",other:"Ctrl+1 – Ctrl+9"},editable:!1},"tab.new":{id:"tab.new",label:"New tab",category:"tab",defaultKey:`${g}+t`,display:{mac:"⌘T",other:"Ctrl+T"}},"tab.close":{id:"tab.close",label:"Close tab",category:"tab",defaultKey:`${g}+w`,display:{mac:"⌘W",other:"Ctrl+W"}},"tab.prev":{id:"tab.prev",label:"Previous tab",category:"tab",defaultKey:`${g}+shift+BracketLeft`,display:{mac:"⌘⇧[",other:"Ctrl+Shift+["}},"tab.next":{id:"tab.next",label:"Next tab",category:"tab",defaultKey:`${g}+shift+BracketRight`,display:{mac:"⌘⇧]",other:"Ctrl+Shift+]"}},"tab.goto":{id:"tab.goto",label:"Go to tab 1–9",category:"tab",defaultKey:v(m?"ctrl":"alt"),display:{mac:"⌃1 – ⌃9",other:"Alt+1 – Alt+9"},editable:!1},"pane.split_right":{id:"pane.split_right",label:"Split pane right",category:"pane",defaultKey:`${g}+d`,display:{mac:"⌘D",other:"Ctrl+D"}},"pane.split_down":{id:"pane.split_down",label:"Split pane down",category:"pane",defaultKey:`${g}+shift+d`,display:{mac:"⌘⇧D",other:"Ctrl+Shift+D"}},"pane.focus_left":{id:"pane.focus_left",label:"Focus left pane",category:"pane",defaultKey:`${g}+alt+ArrowLeft`,display:{mac:"⌘⌥←",other:"Ctrl+Alt+←"}},"pane.focus_right":{id:"pane.focus_right",label:"Focus right pane",category:"pane",defaultKey:`${g}+alt+ArrowRight`,display:{mac:"⌘⌥→",other:"Ctrl+Alt+→"}},"pane.focus_up":{id:"pane.focus_up",label:"Focus upper pane",category:"pane",defaultKey:`${g}+alt+ArrowUp`,display:{mac:"⌘⌥↑",other:"Ctrl+Alt+↑"}},"pane.focus_down":{id:"pane.focus_down",label:"Focus lower pane",category:"pane",defaultKey:`${g}+alt+ArrowDown`,display:{mac:"⌘⌥↓",other:"Ctrl+Alt+↓"}},"pane.clear_screen":{id:"pane.clear_screen",label:"Clear screen",category:"pane",defaultKey:`${g}+k`,display:{mac:"⌘K",other:"Ctrl+K"}},"pane.resize_left":{id:"pane.resize_left",label:"Resize pane left",category:"pane",defaultKey:`${b}+ArrowLeft`,display:{mac:"⌘⌃⇧←",other:"Ctrl+Alt+Shift+←"}},"pane.resize_right":{id:"pane.resize_right",label:"Resize pane right",category:"pane",defaultKey:`${b}+ArrowRight`,display:{mac:"⌘⌃⇧→",other:"Ctrl+Alt+Shift+→"}},"pane.resize_up":{id:"pane.resize_up",label:"Resize pane up",category:"pane",defaultKey:`${b}+ArrowUp`,display:{mac:"⌘⌃⇧↑",other:"Ctrl+Alt+Shift+↑"}},"pane.resize_down":{id:"pane.resize_down",label:"Resize pane down",category:"pane",defaultKey:`${b}+ArrowDown`,display:{mac:"⌘⌃⇧↓",other:"Ctrl+Alt+Shift+↓"}},"pane.equalize":{id:"pane.equalize",label:"Equalize splits",category:"pane",defaultKey:`${g}+alt+Equal`,display:{mac:"⌘⌥=",other:"Ctrl+Alt+="}},"panel.focus_input":{id:"panel.focus_input",label:"Focus Claude input",category:"panel",defaultKey:`${g}+i`,display:{mac:"⌘I",other:"Ctrl+I"}},"view.toggle_sidebar":{id:"view.toggle_sidebar",label:"Toggle sidebar",category:"view",defaultKey:`${g}+b`,display:{mac:"⌘B",other:"Ctrl+B"}},"view.notes":{id:"view.notes",label:"Notes",category:"view",defaultKey:`${g}+shift+e`,display:{mac:"⌘⇧E",other:"Ctrl+Shift+E"}},"view.stats":{id:"view.stats",label:"Stats",category:"view",defaultKey:`${g}+shift+u`,display:{mac:"⌘⇧U",other:"Ctrl+Shift+U"}},"view.mode_terminal":{id:"view.mode_terminal",label:"Switch to Terminal mode",category:"view",defaultKey:`${g}+shift+t`,display:{mac:"⌘⇧T",other:"Ctrl+Shift+T"}},"view.mode_claude":{id:"view.mode_claude",label:"Switch to Claude mode",category:"view",defaultKey:`${g}+shift+c`,display:{mac:"⌘⇧C",other:"Ctrl+Shift+C"}},"view.mode_diff":{id:"view.mode_diff",label:"Switch to Diff mode",category:"view",defaultKey:`${g}+shift+f`,display:{mac:"⌘⇧F",other:"Ctrl+Shift+F"}},"app.settings":{id:"app.settings",label:"Settings",category:"app",defaultKey:`${g}+comma`,display:{mac:"⌘,",other:"Ctrl+,"}},"app.new_window":{id:"app.new_window",label:"New window",category:"app",defaultKey:`${g}+shift+n`,display:{mac:"⌘⇧N",other:"Ctrl+Shift+N"}}},S=e=>e.split(",").map(e=>e.trim()).filter(Boolean),$=e=>{let t=e.split("+").map(e=>e.trim()).filter(Boolean);if(0===t.length)return null;let a=!1,r=!1,i=!1,l=!1,o=null;for(let e of t){let t=e.toLowerCase();"meta"===t||"cmd"===t||"super"===t?a=!0:"ctrl"===t||"control"===t?r=!0:"alt"===t||"opt"===t||"option"===t?i=!0:"shift"===t?l=!0:o=/^[a-z]$/.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:"comma"===t?"Comma":"period"===t?"Period":"slash"===t?"Slash":"equal"===t?"Equal":"minus"===t?"Minus":"space"===t?"Space":"enter"===t||"return"===t?"Enter":"escape"===t||"esc"===t?"Escape":"tab"===t?"Tab":"backspace"===t?"Backspace":e}if(!o)return null;let s=[];return a&&s.push("meta"),r&&s.push("ctrl"),i&&s.push("alt"),l&&s.push("shift"),s.push(o),s.join("+")},_={},K=new Set,A=new Map,k=new Map;for(let e of(A.clear(),k.clear(),K=new Set,Object.values(C))){let t=_[e.id],a=void 0!==t?t:e.defaultKey;if(A.set(e.id,a),!a)continue;let r=new Set;for(let e of S(a)){let t=$(e);t&&(r.add(t),K.add(t))}k.set(e.id,r)}let x=e=>Object.prototype.hasOwnProperty.call(C,e),E=async(e,t)=>{if("GET"===e.method){let e=await c();return t.status(200).json(e)}if("PATCH"===e.method){let{id:a,key:r}=e.body??{};if("string"!=typeof a||!a||!x(a))return t.status(400).json({error:"unknown action id"});if(null!==r&&"string"!=typeof r)return t.status(400).json({error:"key must be string or null"});let i=await y(a,r);return t.status(200).json(i)}if("DELETE"===e.method){let{id:a}=e.query;if("string"==typeof a&&a){if(!x(a))return t.status(400).json({error:"unknown action id"});let e=await h(a);return t.status(200).json(e)}let r=await w();return t.status(200).json(r)}return t.setHeader("Allow","GET, PATCH, DELETE"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,E],684930);var R=e.i(684930),j=e.i(7031),q=e.i(181927),P=e.i(846432);let N=(0,i.hoist)(R,"default"),z=(0,i.hoist)(R,"config"),D=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/keybindings",pathname:"/api/keybindings",bundlePath:"",filename:""},userland:R,distDir:".next",relativeProjectDir:""});async function T(e,a,r){r.requestMeta&&(0,P.setRequestMeta)(e,r.requestMeta),D.isDev&&(0,P.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/keybindings";i=i.replace(/\/index$/,"")||"/";let l=await D.prepare(e,a,{srcPage:i});if(!l){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:o,params:s,prerenderManifest:n,routerServerContext:p}=l;try{let t,r=e.method||"GET",l=(0,j.getTracer)(),d=l.getActiveScopeSpan(),u=!!(null==p?void 0:p.isWrappedByNextServer),c=D.instrumentationOnRequestError.bind(D),f=async d=>D.render(e,a,{query:{...o,...s},params:s,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:D.isDev,page:"/api/keybindings",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=l.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==q.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${r} ${o}`;d.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",o),t.updateName(e))}else d.updateName(`${r} ${i}`)});u&&d?await f(d):(t=l.getActiveScopeSpan(),await l.withPropagatedContext(e.headers,()=>l.trace(q.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:j.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},f),void 0,!u))}catch(e){if(D.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,z,"default",0,N,"handler",0,T],889215)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__045vzzi._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},597789,965898,e=>{"use strict";let t=process.env.__PMUX_PRISTINE_ENV,r=Object.freeze(t?JSON.parse(t):{...process.env});t||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(r)),e.s(["PRISTINE_ENV",0,r],965898);let a=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),i=["LC_"],n=e=>a.has(e)||i.some(t=>e.startsWith(t)),s={TERM:"xterm-256color",COLORTERM:"truecolor"},l=()=>{let e={};for(let[t,a]of Object.entries(r))void 0!==a&&n(t)&&(e[t]=a);return{...e,...s}},o=e=>`'${e.replace(/'/g,"'\\''")}'`,u=()=>r.SHELL||"/bin/bash";e.s(["buildShellEnv",0,()=>l(),"buildShellLaunchCommand",0,()=>{let e=Object.entries(l()).map(([e,t])=>`${e}=${o(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${o(u())} -l`},"defaultShell",0,u],597789)},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[n,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??n,t}])},44014,e=>{"use strict";let t,r;var a=e.i(666680);e.s(["nanoid",0,function(e=21){var i;i=e|=0,!t||t.length<i?(t=Buffer.allocUnsafe(128*i),a.webcrypto.getRandomValues(t),r=0):r+i>t.length&&(a.webcrypto.getRandomValues(t),r=0),r+=i;let n="";for(let a=r-e;a<r;a++)n+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[a]];return n}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),i=e.i(814747),n=e.i(44014),s=e.i(965898),l=e.i(597789),o=e.i(25146);process.platform;let u="linux"===process.platform;e.s(["isLinux",0,u],544538);let p=(0,o.createLogger)("terminal"),c=(0,a.promisify)(t.execFile),d="purple",m=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),f=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},h=async(e,t,r,a)=>{let i=(0,l.buildShellLaunchCommand)();await c("tmux",["-u","-L",d,"-f",m,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),i],{timeout:5e3,cwd:a||s.PRISTINE_ENV.HOME||"/"}),await E(),p.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},y=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await g(e))return;p.debug(`killSession start: ${e}`);let t=await v(e);if(t)try{p.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await g(e))return void p.debug(`killSession done (SIGTERM): ${e}`);await y(200)}if(p.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{p.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void p.debug(`killSession done (SIGKILL): ${e}`);await y(200)}p.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{try{return await c("tmux",["-L",d,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},S=async()=>{},x=async()=>{await S();let e=await f();e.length>0&&e.forEach(e=>{p.debug(`existing tmux session found: ${e}`)})},_=async e=>{if(u)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await c("lsof",["-a","-p",String(e),"-d","cwd","-Fn"],{timeout:5e3}),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},L=async e=>{let t=await v(e);if(t){let e=await _(t);if(e)return e}try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},v=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},E=async()=>{try{await c("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},P=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},I=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let r of e.trim().split("\n")){if(!r)continue;let[e,a,i,n,s]=r.split(" ");if(e&&a){let r=parseInt(n,10),l=parseInt(s,10);t.set(e,{command:a,path:i||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},N=new Set(["bash","zsh","fish","sh","dash"]),b=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},$=async e=>{await c("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},R=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},T=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},M=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},C=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,i,n,s,l]=t.trim().split(" ");return{cwd:r||null,command:a||null,pid:i&&parseInt(i,10)||null,width:n&&parseInt(n,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},A=new Set(["node","python","python3","ruby","perl","deno","bun"]),k=async()=>{try{await c("tmux",["-L",d,"kill-server"],{timeout:5e3}),p.debug("tmux server killed")}catch{}},q=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},j=async(e,t)=>{try{let{stdout:r}=await c("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},O=async e=>{if(u){let t=[];return await Promise.all(e.map(async e=>{try{for(let a of(await r.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(a,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await c("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},D=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await O(r);if(0===e.length)break;t.push(...e),r=e}return t},U=async e=>{try{let t=new Set(e),{stdout:r}=await c("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let e of r.split("\n")){let r=e.match(/pid=(\d+)/g);if(!r||!r.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let i=e.match(/:(\d+)\s/);i&&a.add(parseInt(i[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},G=async e=>{let t=await D(e);if(0===t.length)return[];if(u)return U(t);try{let{stdout:e}=await c("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&r.add(parseInt(e[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},H=async e=>{let t=await v(e);if(!t)return null;try{let{stdout:e}=await c("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await c("ps",["-o","args=","-p",r],{timeout:5e3}),n=a.trim();if(!n)return null;let s=n.split(/\s+/);if(0===s.length)return n;if(s[0]=i.default.basename(s[0]),A.has(s[0])&&s.length>1){let e=i.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,e)}return s.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,N,"applyConfig",0,E,"capturePaneContent",0,q,"capturePaneContentWithHistory",0,j,"createSession",0,h,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,$,"getAllPanesInfo",0,I,"getLastCommand",0,H,"getListeningPorts",0,G,"getPaneCurrentCommand",0,P,"getPaneDetailInfo",0,C,"getPaneTitle",0,b,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,g,"killServer",0,k,"killSession",0,w,"listSessions",0,f,"scanSessions",0,x,"sendBracketedPaste",0,M,"sendKeys",0,R,"sendRawKeys",0,T,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},891870,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),n=e.i(459015);let s=(0,e.i(25146).createLogger)("layout"),l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.session;if(!r)return t.status(400).json({error:"session parameter required"});if(!await (0,n.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let[e,a]=await Promise.all([(0,n.getSessionCwd)(r),(0,n.getLastCommand)(r)]);if(!e)return t.status(500).json({error:"Failed to get CWD"});return t.status(200).json({cwd:e,lastCommand:a})}catch(e){return s.error(`cwd query failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to get CWD"})}};e.s(["default",0,l],18541);var o=e.i(18541),u=e.i(7031),p=e.i(181927),c=e.i(846432);let d=(0,i.hoist)(o,"default"),m=(0,i.hoist)(o,"config"),f=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/layout/cwd",pathname:"/api/layout/cwd",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/cwd";i=i.replace(/\/index$/,"")||"/";let n=await f.prepare(e,r,{srcPage:i});if(!n){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:d}=n;try{let t,a=e.method||"GET",n=(0,u.getTracer)(),c=n.getActiveScopeSpan(),m=!!(null==d?void 0:d.isWrappedByNextServer),h=f.instrumentationOnRequestError.bind(f),y=async u=>f.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:f.isDev,page:"/api/layout/cwd",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${a} ${s}`;u.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",s),t.updateName(e))}else u.updateName(`${a} ${i}`)});m&&c?await y(c):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!m))}catch(e){if(f.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,m,"default",0,d,"handler",0,h],891870)}];
|
|
1
|
+
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[n,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??n,t}])},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},597789,965898,e=>{"use strict";let t=process.env.__PMUX_PRISTINE_ENV,r=Object.freeze(t?JSON.parse(t):{...process.env});t||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(r)),e.s(["PRISTINE_ENV",0,r],965898);let a=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),i=["LC_"],n=e=>a.has(e)||i.some(t=>e.startsWith(t)),s={TERM:"xterm-256color",COLORTERM:"truecolor"},l=()=>{let e={};for(let[t,a]of Object.entries(r))void 0!==a&&n(t)&&(e[t]=a);return{...e,...s}},o=e=>`'${e.replace(/'/g,"'\\''")}'`,u=()=>r.SHELL||"/bin/bash";e.s(["buildShellEnv",0,()=>l(),"buildShellLaunchCommand",0,()=>{let e=Object.entries(l()).map(([e,t])=>`${e}=${o(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${o(u())} -l`},"defaultShell",0,u],597789)},44014,e=>{"use strict";let t,r;var a=e.i(666680);e.s(["nanoid",0,function(e=21){var i;i=e|=0,!t||t.length<i?(t=Buffer.allocUnsafe(128*i),a.webcrypto.getRandomValues(t),r=0):r+i>t.length&&(a.webcrypto.getRandomValues(t),r=0),r+=i;let n="";for(let a=r-e;a<r;a++)n+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[a]];return n}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),i=e.i(814747),n=e.i(44014),s=e.i(965898),l=e.i(597789),o=e.i(25146);process.platform;let u="linux"===process.platform;e.s(["isLinux",0,u],544538);let p=(0,o.createLogger)("terminal"),c=(0,a.promisify)(t.execFile),d="purple",m=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),f=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},h=async(e,t,r,a)=>{let i=(0,l.buildShellLaunchCommand)();await c("tmux",["-u","-L",d,"-f",m,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),i],{timeout:5e3,cwd:a||s.PRISTINE_ENV.HOME||"/"}),await E(),p.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},y=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await g(e))return;p.debug(`killSession start: ${e}`);let t=await v(e);if(t)try{p.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await g(e))return void p.debug(`killSession done (SIGTERM): ${e}`);await y(200)}if(p.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{p.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void p.debug(`killSession done (SIGKILL): ${e}`);await y(200)}p.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{try{return await c("tmux",["-L",d,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},S=async()=>{},x=async()=>{await S();let e=await f();e.length>0&&e.forEach(e=>{p.debug(`existing tmux session found: ${e}`)})},_=async e=>{if(u)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await c("lsof",["-a","-p",String(e),"-d","cwd","-Fn"],{timeout:5e3}),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},L=async e=>{let t=await v(e);if(t){let e=await _(t);if(e)return e}try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},v=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},E=async()=>{try{await c("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},P=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},I=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let r of e.trim().split("\n")){if(!r)continue;let[e,a,i,n,s]=r.split(" ");if(e&&a){let r=parseInt(n,10),l=parseInt(s,10);t.set(e,{command:a,path:i||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},N=new Set(["bash","zsh","fish","sh","dash"]),b=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},$=async e=>{await c("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},R=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},T=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},M=async(e,t)=>{await $(e),await c("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},C=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,i,n,s,l]=t.trim().split(" ");return{cwd:r||null,command:a||null,pid:i&&parseInt(i,10)||null,width:n&&parseInt(n,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},A=new Set(["node","python","python3","ruby","perl","deno","bun"]),k=async()=>{try{await c("tmux",["-L",d,"kill-server"],{timeout:5e3}),p.debug("tmux server killed")}catch{}},q=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},j=async(e,t)=>{try{let{stdout:r}=await c("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},O=async e=>{if(u){let t=[];return await Promise.all(e.map(async e=>{try{for(let a of(await r.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(a,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await c("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},D=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await O(r);if(0===e.length)break;t.push(...e),r=e}return t},U=async e=>{try{let t=new Set(e),{stdout:r}=await c("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let e of r.split("\n")){let r=e.match(/pid=(\d+)/g);if(!r||!r.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let i=e.match(/:(\d+)\s/);i&&a.add(parseInt(i[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},G=async e=>{let t=await D(e);if(0===t.length)return[];if(u)return U(t);try{let{stdout:e}=await c("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&r.add(parseInt(e[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},H=async e=>{let t=await v(e);if(!t)return null;try{let{stdout:e}=await c("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await c("ps",["-o","args=","-p",r],{timeout:5e3}),n=a.trim();if(!n)return null;let s=n.split(/\s+/);if(0===s.length)return n;if(s[0]=i.default.basename(s[0]),A.has(s[0])&&s.length>1){let e=i.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,e)}return s.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,N,"applyConfig",0,E,"capturePaneContent",0,q,"capturePaneContentWithHistory",0,j,"createSession",0,h,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,$,"getAllPanesInfo",0,I,"getLastCommand",0,H,"getListeningPorts",0,G,"getPaneCurrentCommand",0,P,"getPaneDetailInfo",0,C,"getPaneTitle",0,b,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,g,"killServer",0,k,"killSession",0,w,"listSessions",0,f,"scanSessions",0,x,"sendBracketedPaste",0,M,"sendKeys",0,R,"sendRawKeys",0,T,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},891870,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),n=e.i(459015);let s=(0,e.i(25146).createLogger)("layout"),l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.session;if(!r)return t.status(400).json({error:"session parameter required"});if(!await (0,n.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let[e,a]=await Promise.all([(0,n.getSessionCwd)(r),(0,n.getLastCommand)(r)]);if(!e)return t.status(500).json({error:"Failed to get CWD"});return t.status(200).json({cwd:e,lastCommand:a})}catch(e){return s.error(`cwd query failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to get CWD"})}};e.s(["default",0,l],18541);var o=e.i(18541),u=e.i(7031),p=e.i(181927),c=e.i(846432);let d=(0,i.hoist)(o,"default"),m=(0,i.hoist)(o,"config"),f=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/layout/cwd",pathname:"/api/layout/cwd",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/cwd";i=i.replace(/\/index$/,"")||"/";let n=await f.prepare(e,r,{srcPage:i});if(!n){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:d}=n;try{let t,a=e.method||"GET",n=(0,u.getTracer)(),c=n.getActiveScopeSpan(),m=!!(null==d?void 0:d.isWrappedByNextServer),h=f.instrumentationOnRequestError.bind(f),y=async u=>f.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:f.isDev,page:"/api/layout/cwd",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${a} ${s}`;u.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",s),t.updateName(e))}else u.updateName(`${a} ${i}`)});m&&c?await y(c):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!m))}catch(e){if(f.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,m,"default",0,d,"handler",0,h],891870)}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__050uepg._.js.map
|