purplemux 0.2.3 → 0.2.5
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 +84 -79
- 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 +47 -7
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-qfa-x._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00nrs0h._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__014kwh_._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02v.lnb._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03x8rds._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__04cr_m8._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06j59n1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07gfnob._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07xijrd._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__08tdlcm._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09_6_.~._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09gkm_6._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_uldiw._.js +15 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0a4t.z5._.js +52 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ar~lbk._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bo-su1._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c-bb5d._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dvelfj._.js +52 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e.7isl._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gcec.8._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0i1m1v9._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ihlt6s._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kd7wei._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mky_tj._.js +35 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oiiu_o._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oqgn2h._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qvunc5._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0r77-u1._.js +52 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rhb4gk._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vi8p6v._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w0wz~a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w3m-oz._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zh8xur._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~iu3jq._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__11xw16l._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12nr~pb._.js +1 -1
- package/.next/standalone/.next/server/chunks/{_0v81st0._.js → _0.pa6m1._.js} +1 -1
- package/.next/standalone/.next/server/chunks/_05ib7yu._.js +3 -0
- package/.next/standalone/.next/server/chunks/{_0ll-5~7._.js → _09y8.gr._.js} +1 -1
- package/.next/standalone/.next/server/chunks/{_0.5a4bu._.js → _0mwq11h._.js} +1 -1
- package/.next/standalone/.next/server/chunks/_0y4b49w._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0zcb2f0._.js +3 -0
- package/.next/standalone/.next/server/chunks/{node_modules_ws_124xx2_._.js → _106a~ya._.js} +2 -2
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_00-t8sq.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_00fhuqb._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_0dvlmi4._.js +15 -0
- package/.next/standalone/.next/server/chunks/src_lib_0ojl2hg._.js +52 -0
- package/.next/standalone/.next/server/chunks/src_lib_layout-store_ts_0fanx7c._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_status-manager_ts_003hlhy._.js +1 -13
- package/.next/standalone/.next/server/chunks/src_lib_workspace-store_ts_0vqt073._.js +1 -40
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ap_bxo._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t9ru13._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0-9ezhb._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_101yu0w._.js → _0-kyl7i._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_003~2_g._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_00zsk6a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_017c8be._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_01eupc5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_05bq96_._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0c1yivm._.js → _070zc_o._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_07jud1p._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0_sz4y0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0_uqm-4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0ftinmo._.js → _0ed.wmt._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0egedv6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0-ug5tr._.js → _0fota2a._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0h4kenr._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0ihbr8k._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0lpqhot._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0mltzed._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0nbe6mv._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0pg-q18._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0pp3e5j._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0ttiybw._.js +18 -0
- package/.next/standalone/.next/server/chunks/ssr/_0w.1ts8._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0w6jc9p._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0xp3-y6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0y7o.rg._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0ytb_c0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0ozy~xe._.js → _0~hz1fq._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_1289s74._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_02jzd5g._.js → _13gee5r._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/messages_de_terminal_json_[json]_cjs_05jirtw._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_de_webBrowser_json_[json]_cjs_0wfz-ul._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_en_terminal_json_[json]_cjs_0~ls3g-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_en_webBrowser_json_[json]_cjs_0oirdko._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_es_terminal_json_[json]_cjs_04g2b1_._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_es_webBrowser_json_[json]_cjs_0w_no_c._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_fr_terminal_json_[json]_cjs_0uhakya._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_fr_webBrowser_json_[json]_cjs_00tbjsf._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ja_terminal_json_[json]_cjs_0776z4f._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ja_webBrowser_json_[json]_cjs_0tp7~.s._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ko_terminal_json_[json]_cjs_06611.3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ko_webBrowser_json_[json]_cjs_0ibtysu._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_terminal_json_[json]_cjs_034yyg9._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_webBrowser_json_[json]_cjs_0eu9fbw._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ru_terminal_json_[json]_cjs_0emk8~n._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ru_webBrowser_json_[json]_cjs_113-x8n._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_tr_terminal_json_[json]_cjs_0xpix8g._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_tr_webBrowser_json_[json]_cjs_12ziott._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_terminal_json_[json]_cjs_12vwl8a._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_webBrowser_json_[json]_cjs_0e5lp-q._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_terminal_json_[json]_cjs_0spg5z5._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_webBrowser_json_[json]_cjs_0u_cpuv._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_030gj7p._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_04tdvwp._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0bdox2f._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{src_components_12mrirb._.js → src_components_0_nzv1r._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_0_aiven._.js → src_components_0bqqfju._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_0geizrr._.js → src_components_0rqxlj-._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_11_1i~k._.js → src_components_0s~.n3e._.js} +1 -1
- 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_lib_message-namespaces_ts_0wjpvu5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_workspace-store_ts_00x-rec._.js +10 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +84 -79
- 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/_app.js +2 -2
- package/.next/standalone/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/auth/login.js +2 -2
- package/.next/standalone/.next/server/pages/api/auth/login.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/auth/preflight.js +2 -2
- package/.next/standalone/.next/server/pages/api/auth/preflight.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/auth/setup.js +2 -2
- package/.next/standalone/.next/server/pages/api/auth/setup.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/check-claude.js +5 -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]/browser/console/pages-manifest.json +3 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/console.js +8 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/console.js.map +5 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/console.js.nft.json +1 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/eval/pages-manifest.json +3 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/eval.js +8 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/eval.js.map +5 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/eval.js.nft.json +1 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/network/pages-manifest.json +3 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/network.js +8 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/network.js.map +5 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/network.js.nft.json +1 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/screenshot/pages-manifest.json +3 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/screenshot.js +8 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/screenshot.js.map +5 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/screenshot.js.nft.json +1 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/url/pages-manifest.json +3 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/url.js +8 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/url.js.map +5 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/url.js.nft.json +1 -0
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/.next/standalone/.next/server/pages/api/cli/tabs.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/workspaces.js +2 -2
- package/.next/standalone/.next/server/pages/api/cli/workspaces.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/config.js +2 -2
- package/.next/standalone/.next/server/pages/api/config.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 +2 -2
- 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 +5 -5
- 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 +2 -2
- 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 +5 -5
- 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 +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/pages/api/layout/pane.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout.js +2 -2
- package/.next/standalone/.next/server/pages/api/layout.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/message-history.js +2 -2
- package/.next/standalone/.next/server/pages/api/message-history.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/preflight/runtime.js.nft.json +1 -1
- 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.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/projects.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/uptime.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/status/hook.js +6 -6
- package/.next/standalone/.next/server/pages/api/status/hook.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/status/statusline.js +6 -6
- package/.next/standalone/.next/server/pages/api/status/statusline.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/timeline/sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/permission-options.js +3 -2
- 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 +3 -2
- 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 +5 -5
- 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 +5 -5
- package/.next/standalone/.next/server/pages/api/tmux/reset.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js +2 -2
- package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/active.js +2 -2
- package/.next/standalone/.next/server/pages/api/workspace/active.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/group/[groupId].js +2 -2
- package/.next/standalone/.next/server/pages/api/workspace/group/[groupId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/group/reorder.js +2 -2
- package/.next/standalone/.next/server/pages/api/workspace/group/reorder.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/group.js +2 -2
- package/.next/standalone/.next/server/pages/api/workspace/group.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/reorder.js +2 -2
- package/.next/standalone/.next/server/pages/api/workspace/reorder.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/validate.js +2 -2
- package/.next/standalone/.next/server/pages/api/workspace/validate.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace.js +5 -5
- 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 +16 -15
- package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/index/react-loadable-manifest.json +9 -9
- package/.next/standalone/.next/server/pages/index.js +13 -12
- 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/login/build-manifest.json +9 -8
- package/.next/standalone/.next/server/pages/login/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/login.js +8 -7
- package/.next/standalone/.next/server/pages/login.js.nft.json +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 +14 -13
- package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/reports/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/reports.js +15 -14
- package/.next/standalone/.next/server/pages/reports.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/reset.js.nft.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 +15 -14
- 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 +13 -12
- package/.next/standalone/.next/server/pages/stats.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/tools-required/build-manifest.json +6 -6
- package/.next/standalone/.next/server/pages/tools-required/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/tools-required.js +4 -3
- package/.next/standalone/.next/server/pages/tools-required.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 +17 -16
- package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/webview/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/webview.js +13 -12
- package/.next/standalone/.next/server/pages/webview.js.nft.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 +5 -0
- package/.next/standalone/.next/static/chunks/{11tnyk0iystp1.js → 0--r5y9cw3.0z.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0w1ldes9u.mhe.js → 0-8v00lvs9_s0.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0oy5nvsojxb2i.js → 0-rskn1p_p.qb.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0h7n~i8gk~-a2.js → 0.4j~sc70rsrv.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0g0xm7shj062y.js → 001_h.~thz3j3.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ynitrrzdxcnh.js → 00gxls80r--_0.js} +9 -8
- package/.next/standalone/.next/static/chunks/{121i8u8byuotx.js → 01rmp.m_ls7z_.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0312riii_sl_1.js → 02o84r01jsc.z.js} +1 -1
- package/.next/standalone/.next/static/chunks/039-4cgt.dvjg.js +1 -0
- package/.next/standalone/.next/static/chunks/03t01d94eyxh2.js +1 -0
- package/.next/standalone/.next/static/chunks/04hn532e1vcts.js +1 -0
- package/.next/standalone/.next/static/chunks/05o56eq7.f3q2.js +1 -0
- package/.next/standalone/.next/static/chunks/{0x.dxrfqc.ix9.js → 0628quqp4ggh9.js} +1 -1
- package/.next/standalone/.next/static/chunks/06ak74s111wx-.js +1 -0
- package/.next/standalone/.next/static/chunks/07yop4v9xcwb9.js +1 -0
- package/.next/standalone/.next/static/chunks/08d6vee5l~1wn.js +1 -0
- package/.next/standalone/.next/static/chunks/09o2m0ingey8v.js +1 -0
- package/.next/standalone/.next/static/chunks/{0d5b6a8r1tk95.js → 09s7ub8rgh~u-.js} +1 -1
- package/.next/standalone/.next/static/chunks/{02su2lz3i24nj.js → 09zxrli-btome.js} +1 -1
- package/.next/standalone/.next/static/chunks/0_7~rgbkmfo_p.js +1 -0
- package/.next/standalone/.next/static/chunks/0a1xt.enr50l5.js +1 -0
- package/.next/standalone/.next/static/chunks/{0-p.9vdmq-_co.js → 0am7rh7xdv5lw.js} +4 -4
- package/.next/standalone/.next/static/chunks/{13u3mwvwu3kc..js → 0apqp49tgoz~z.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0_67ozmvnvz16.js → 0bx27stclo8g5.js} +1 -1
- package/.next/standalone/.next/static/chunks/0ddh4qmi2awdq.js +1 -0
- package/.next/standalone/.next/static/chunks/0dwxj97xm70gv.js +1 -0
- package/.next/standalone/.next/static/chunks/0f3q6qhpk.i_r.js +1 -0
- package/.next/standalone/.next/static/chunks/{07.5h~7~q9~1e.js → 0f_7vuqno92ye.js} +1 -1
- package/.next/standalone/.next/static/chunks/0fsldybjx443~.js +1 -0
- package/.next/standalone/.next/static/chunks/0gfhd.gsbt9qg.js +1 -0
- package/.next/standalone/.next/static/chunks/0hv4~cszgs3im.js +1 -0
- package/.next/standalone/.next/static/chunks/0ic.mcu6-9din.js +1 -0
- package/.next/standalone/.next/static/chunks/0k4b.~5c4nvtm.js +1 -0
- package/.next/standalone/.next/static/chunks/0kqxfunh4731g.js +1 -0
- package/.next/standalone/.next/static/chunks/{0fn24h74ta78c.js → 0k~crb4s4z7gy.js} +1 -1
- package/.next/standalone/.next/static/chunks/0lrjdru2bjp.x.js +1 -0
- package/.next/standalone/.next/static/chunks/0lujhtd04orw5.js +1 -0
- package/.next/standalone/.next/static/chunks/0mwkajcworx_-.js +1 -0
- package/.next/standalone/.next/static/chunks/0nqofghl.17w_.js +1 -0
- package/.next/standalone/.next/static/chunks/0o1lsz827g-q_.js +1 -0
- package/.next/standalone/.next/static/chunks/0qqsez8ir1.fs.js +1 -0
- package/.next/standalone/.next/static/chunks/{0_htal_j04mkg.js → 0r3lm4_qr3y.a.js} +1 -1
- package/.next/standalone/.next/static/chunks/{06vxx-4w.uvj0.js → 0rahh2v7~f4tj.js} +17 -16
- package/.next/standalone/.next/static/chunks/{0pxbg4s8a4y54.js → 0rb41e1r1urhx.js} +1 -1
- package/.next/standalone/.next/static/chunks/0uii4rziiew3_.js +1 -0
- package/.next/standalone/.next/static/chunks/0vtkq~yk_1~gv.js +1 -0
- package/.next/standalone/.next/static/chunks/0vx2hhzc46h_7.js +1 -0
- package/.next/standalone/.next/static/chunks/0x_.wshvak6zp.js +1 -0
- package/.next/standalone/.next/static/chunks/0xa1.t1vj1mw0.js +1 -0
- package/.next/standalone/.next/static/chunks/0xpr6vw-p8oxk.js +1 -0
- package/.next/standalone/.next/static/chunks/{0uzs3jw4-93ly.js → 0zih6-g65txpb.js} +1 -1
- package/.next/standalone/.next/static/chunks/0zn1jt__-t51p.js +1 -0
- package/.next/standalone/.next/static/chunks/0zrhxc96zwjuv.js +1 -0
- package/.next/standalone/.next/static/chunks/0z~yy1lqrvp_a.js +1 -0
- package/.next/standalone/.next/static/chunks/0~cgr_3dpx0vl.js +1 -0
- package/.next/standalone/.next/static/chunks/{0te1jnz5.rt.r.js → 0~g0t2q6o3r-7.js} +6 -6
- package/.next/standalone/.next/static/chunks/0~vfb0ylk_9au.js +16 -0
- package/.next/standalone/.next/static/chunks/109f1pvy3e_vd.js +1 -0
- package/.next/standalone/.next/static/chunks/10em078j6cul4.js +1 -0
- package/.next/standalone/.next/static/chunks/{0a9t5laucshuf.js → 10todxw2604hk.js} +1 -1
- package/.next/standalone/.next/static/chunks/{05zne4hn1v65k.js → 10uz6x-h~dv0..js} +14 -13
- package/.next/standalone/.next/static/chunks/{0~nexgc77r_hk.js → 13q-ol3bkz8ft.js} +16 -15
- package/.next/standalone/.next/static/chunks/14if5vtky.3sn.js +1 -0
- package/.next/standalone/.next/static/chunks/{017n78o_7xb4_.js → 15hd85wggjanq.js} +1 -1
- package/.next/standalone/.next/static/chunks/15i_n03eg5uyp.js +1 -0
- package/.next/standalone/.next/static/chunks/15sblmrroyskk.js +1 -0
- package/.next/standalone/.next/static/chunks/1756nfyulu.9h.css +1 -0
- package/.next/standalone/.next/static/chunks/{0j.sfmmqj2xel.js → 17rh_.7tkk2m0.js} +15 -14
- package/.next/standalone/.next/static/chunks/turbopack-02..gqxjw9fev.js +1 -0
- package/.next/standalone/.next/static/chunks/turbopack-05luogg2yney~.js +1 -0
- package/.next/standalone/.next/static/chunks/turbopack-092b2t67-z3ds.js +1 -0
- package/.next/standalone/.next/static/chunks/turbopack-0eue2xixdnbd..js +1 -0
- package/.next/standalone/.next/static/chunks/{turbopack-15bv~a4hbvh29.js → turbopack-0i6l53-j6t6zg.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0d-xk62f1t05v.js → turbopack-0ser1ty-sh2jk.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0zcblahe.hdqd.js → turbopack-0zouy.~ram.7g.js} +1 -1
- package/.next/standalone/.next/static/{X7BRO7ORR4bKFt1LXzGU8 → onsm_2jNZvyggHqM9yibn}/_buildManifest.js +11 -6
- package/.next/standalone/messages/de/terminal.json +4 -0
- package/.next/standalone/messages/de/webBrowser.json +5 -1
- package/.next/standalone/messages/en/terminal.json +4 -0
- package/.next/standalone/messages/en/webBrowser.json +5 -1
- package/.next/standalone/messages/es/terminal.json +4 -0
- package/.next/standalone/messages/es/webBrowser.json +5 -1
- package/.next/standalone/messages/fr/terminal.json +4 -0
- package/.next/standalone/messages/fr/webBrowser.json +5 -1
- package/.next/standalone/messages/ja/terminal.json +4 -0
- package/.next/standalone/messages/ja/webBrowser.json +5 -1
- package/.next/standalone/messages/ko/terminal.json +4 -0
- package/.next/standalone/messages/ko/webBrowser.json +5 -1
- package/.next/standalone/messages/pt-BR/terminal.json +4 -0
- package/.next/standalone/messages/pt-BR/webBrowser.json +5 -1
- package/.next/standalone/messages/ru/terminal.json +4 -0
- package/.next/standalone/messages/ru/webBrowser.json +5 -1
- package/.next/standalone/messages/tr/terminal.json +4 -0
- package/.next/standalone/messages/tr/webBrowser.json +5 -1
- package/.next/standalone/messages/zh-CN/terminal.json +4 -0
- package/.next/standalone/messages/zh-CN/webBrowser.json +5 -1
- package/.next/standalone/messages/zh-TW/terminal.json +4 -0
- package/.next/standalone/messages/zh-TW/webBrowser.json +5 -1
- package/.next/standalone/package.json +5 -2
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/config/tmux.conf +17 -7
- package/.next/standalone/src/lib/providers/claude/index.ts +44 -0
- package/.next/standalone/src/pages/api/layout/pane/[paneId]/tabs/index.ts +13 -6
- package/README.de.md +5 -4
- package/README.es.md +5 -4
- package/README.fr.md +5 -4
- package/README.ja.md +5 -4
- package/README.ko.md +5 -4
- package/README.md +5 -4
- package/README.pt-BR.md +5 -4
- package/README.ru.md +5 -4
- package/README.tr.md +5 -4
- package/README.zh-CN.md +5 -4
- package/README.zh-TW.md +5 -4
- package/bin/cli.js +95 -0
- package/dist/server.js +974 -852
- package/package.json +5 -2
- package/src/config/tmux.conf +17 -7
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01.~37j._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__016s4a9._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02.9a5j._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03l15.f._.js +0 -3
- 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]__06h3gzy._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_fu3k.._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_imm_0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0abp0lo._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0auutl5._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d-inw8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g8mjyh._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lk7ru8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l~_wd0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ovn6yp._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0un_g-o._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12ksl6n._.js +0 -42
- package/.next/standalone/.next/server/chunks/_03-duro._.js +0 -3
- package/.next/standalone/.next/server/chunks/_07097f~._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0z7d6.z._.js +0 -3
- package/.next/standalone/.next/server/chunks/src_lib_0p.xsqi._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da5cj~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12b2-y_._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_016o9_-._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_04iqb-o._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_04q3_kj._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0a_u5qm._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0d58w1~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0nib_x8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0nuztht._.js +0 -18
- package/.next/standalone/.next/server/chunks/ssr/_0oca87b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0ovjjn5._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0pk4~_0._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0qt-m3l._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0sm8slq._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_10s2f96._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_13c-b~p._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_13lrp9_._.js +0 -3
- package/.next/standalone/.next/static/chunks/0-7en.d6a3jki.js +0 -1
- package/.next/standalone/.next/static/chunks/0-pm5wxsyxs3e.js +0 -1
- package/.next/standalone/.next/static/chunks/01ul8lmr04ls3.js +0 -1
- package/.next/standalone/.next/static/chunks/05b7zy0n0vhms.js +0 -1
- package/.next/standalone/.next/static/chunks/05kshd9vdrl4o.js +0 -1
- package/.next/standalone/.next/static/chunks/05w~qu2zpvh2f.js +0 -1
- package/.next/standalone/.next/static/chunks/08f708~_7uy_i.js +0 -1
- package/.next/standalone/.next/static/chunks/0af.3khnmptnl.js +0 -1
- package/.next/standalone/.next/static/chunks/0cvx059r5hgj1.js +0 -1
- package/.next/standalone/.next/static/chunks/0dp178b-0_ltl.js +0 -1
- package/.next/standalone/.next/static/chunks/0ebjicjua7yl-.js +0 -1
- package/.next/standalone/.next/static/chunks/0gn-f6_m696k0.js +0 -1
- package/.next/standalone/.next/static/chunks/0kaufevqdhsld.js +0 -1
- package/.next/standalone/.next/static/chunks/0n2k1al4sr_qq.css +0 -1
- package/.next/standalone/.next/static/chunks/0n4fv8.loh_0x.js +0 -1
- package/.next/standalone/.next/static/chunks/0nn618je7_7ec.js +0 -16
- package/.next/standalone/.next/static/chunks/0pv9~yath4mjh.js +0 -1
- package/.next/standalone/.next/static/chunks/0q0yh17_ncipj.js +0 -1
- package/.next/standalone/.next/static/chunks/0qkrdmhiv-0d3.js +0 -1
- package/.next/standalone/.next/static/chunks/0r9z55-r31en8.js +0 -1
- package/.next/standalone/.next/static/chunks/0ra09kjja5rf..js +0 -1
- package/.next/standalone/.next/static/chunks/0sc7tkg1gojr..js +0 -1
- package/.next/standalone/.next/static/chunks/0u.snf3d~5nvq.js +0 -1
- package/.next/standalone/.next/static/chunks/0u9yrtrs1bktp.js +0 -1
- package/.next/standalone/.next/static/chunks/0v.l~.~v98c2c.js +0 -1
- package/.next/standalone/.next/static/chunks/0wu~4k-l8otuy.js +0 -1
- package/.next/standalone/.next/static/chunks/0wvu-lowt9uem.js +0 -1
- package/.next/standalone/.next/static/chunks/0x7cvsf..ezd..js +0 -1
- package/.next/standalone/.next/static/chunks/0yb~gw6ukzdmo.js +0 -1
- package/.next/standalone/.next/static/chunks/0yg3hj1g~k1ip.js +0 -1
- package/.next/standalone/.next/static/chunks/0z_~g~mb.kjs1.js +0 -1
- package/.next/standalone/.next/static/chunks/0~c6h8j7ut2ca.js +0 -1
- package/.next/standalone/.next/static/chunks/0~lnp45fxxtgz.js +0 -1
- package/.next/standalone/.next/static/chunks/0~ts_4hi7.u_0.js +0 -1
- package/.next/standalone/.next/static/chunks/13_l03e3sab-g.js +0 -1
- package/.next/standalone/.next/static/chunks/156~ejmpjxu8e.js +0 -1
- package/.next/standalone/.next/static/chunks/15m4y6otktj8z.js +0 -1
- package/.next/standalone/.next/static/chunks/16bag6z7n~ffw.js +0 -1
- package/.next/standalone/.next/static/chunks/17ebdp-_o5o30.js +0 -1
- package/.next/standalone/.next/static/chunks/turbopack-0nn9kx.dkgwqs.js +0 -1
- package/.next/standalone/.next/static/chunks/turbopack-0rb3q18bhb2hu.js +0 -1
- package/.next/standalone/.next/static/chunks/turbopack-0~wmco6ifn20m.js +0 -1
- package/.next/standalone/.next/static/chunks/turbopack-1469mxaruw82d.js +0 -1
- /package/.next/standalone/.next/static/{X7BRO7ORR4bKFt1LXzGU8 → onsm_2jNZvyggHqM9yibn}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{X7BRO7ORR4bKFt1LXzGU8 → onsm_2jNZvyggHqM9yibn}/_ssgManifest.js +0 -0
|
@@ -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"),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 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 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,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=>{let t=await P(e);return t?{isSafe:N.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},$=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}},R=async e=>{await c("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},T=async(e,t)=>{await R(e),await c("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},M=async(e,t)=>{await R(e),await c("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},k=async(e,t)=>{await R(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}}},C=new Set(["node","python","python3","ruby","perl","deno","bun"]),q=async()=>{try{await c("tmux",["-L",d,"kill-server"],{timeout:5e3}),p.debug("tmux server killed")}catch{}},O=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}},U=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 U(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 D(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[]}},F=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]),C.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,O,"capturePaneContentWithHistory",0,j,"checkTerminalProcess",0,b,"createSession",0,h,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,R,"getAllPanesInfo",0,I,"getLastCommand",0,F,"getListeningPorts",0,H,"getPaneCurrentCommand",0,P,"getPaneDetailInfo",0,A,"getPaneTitle",0,$,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,g,"killServer",0,q,"killSession",0,w,"listSessions",0,f,"scanSessions",0,S,"sendBracketedPaste",0,k,"sendKeys",0,T,"sendRawKeys",0,M,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},820158,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,a]=await Promise.all([(0,i.getPaneDetailInfo)(r),(0,i.getLastCommand)(r)]);return t.status(200).json({...e,lastCommand:a,sessionName:r})}catch(e){return s.error(`info query failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to get tmux info"})}};e.s(["default",0,l],831539);var o=e.i(831539),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"),f=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/info",pathname:"/api/tmux/info",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 n="/api/tmux/info";n=n.replace(/\/index$/,"")||"/";let i=await f.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),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/tmux/info",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=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(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],820158)}];
|
|
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 c=(0,o.createLogger)("terminal"),p=(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 p("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 p("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 P(),c.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},y=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await x(e))return;c.debug(`killSession start: ${e}`);let t=await E(e);if(t)try{c.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await x(e))return void c.debug(`killSession done (SIGTERM): ${e}`);await y(200)}if(c.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{c.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await x(e))return void c.debug(`killSession done (SIGKILL): ${e}`);await y(200)}c.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{let t=s.PRISTINE_ENV.HOME||"/";if(!e)return t;let a=e;for(;;){try{if((await r.default.stat(a)).isDirectory())return a}catch{}let e=i.default.dirname(a);if(e===a)return t;a=e}},x=async e=>{try{return await p("tmux",["-L",d,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},S=async()=>{},_=async()=>{await S();let e=await f();e.length>0&&e.forEach(e=>{c.debug(`existing tmux session found: ${e}`)})},L=async e=>{if(u)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await p("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}},v=async e=>{let t=await E(e);if(t){let e=await L(t);if(e)return e}try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},E=async e=>{try{let{stdout:t}=await p("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}},P=async()=>{try{await p("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},I=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},N=async()=>{try{let{stdout:e}=await p("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}},b=new Set(["bash","zsh","fish","sh","dash"]),R=async e=>{let t=await I(e);return t?{isSafe:b.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},$=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},T=async e=>{await p("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},M=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},k=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},A=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await p("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await p("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},C=async e=>{try{let{stdout:t}=await p("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}}},q=new Set(["node","python","python3","ruby","perl","deno","bun"]),O=async()=>{try{await p("tmux",["-L",d,"kill-server"],{timeout:5e3}),c.debug("tmux server killed")}catch{}},j=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},D=async(e,t)=>{try{let{stdout:r}=await p("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},H=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 p("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 H(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 p("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[]}},F=async e=>{let t=await U(e);if(0===t.length)return[];if(u)return G(t);try{let{stdout:e}=await p("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[]}},K=async e=>{let t=await E(e);if(!t)return null;try{let{stdout:e}=await p("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await p("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]),q.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,b,"applyConfig",0,P,"capturePaneContent",0,j,"capturePaneContentWithHistory",0,D,"checkTerminalProcess",0,R,"createSession",0,h,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,T,"getAllPanesInfo",0,N,"getLastCommand",0,K,"getListeningPorts",0,F,"getPaneCurrentCommand",0,I,"getPaneDetailInfo",0,C,"getPaneTitle",0,$,"getSessionCwd",0,v,"getSessionPanePid",0,E,"hasSession",0,x,"killServer",0,O,"killSession",0,w,"listSessions",0,f,"resolveExistingDir",0,g,"scanSessions",0,_,"sendBracketedPaste",0,A,"sendKeys",0,M,"sendRawKeys",0,k,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},820158,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)("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,n.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let[e,a]=await Promise.all([(0,n.getPaneDetailInfo)(r),(0,n.getLastCommand)(r)]);return t.status(200).json({...e,lastCommand:a,sessionName:r})}catch(e){return s.error(`info query failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to get tmux info"})}};e.s(["default",0,l],831539);var o=e.i(831539),u=e.i(7031),c=e.i(181927),p=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/tmux/info",pathname:"/api/tmux/info",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,p.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/tmux/info";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)(),p=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/tmux/info",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")!==c.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&&p?await y(p):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(c.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],820158)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0w3m-oz._.js.map
|
|
@@ -0,0 +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"))},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",o=(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),s=["trace","debug","info","warn","error","fatal"],l=globalThis;if(!l.__ptRootLogger){let e=[n,...Object.values(o)].reduce((e,t)=>s.indexOf(t)<s.indexOf(e)?t:e,"fatal");l.__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=l.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=o[e]??n,t}])},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},406461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},524836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},921517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},845994,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(254799),n=e.i(666126);(0,e.i(25146).createLogger)("config");let o=r.default.join(a.default.homedir(),".purplemux"),s=r.default.join(o,"config.json"),l=globalThis;l.__ptConfigLock||(l.__ptConfigLock=Promise.resolve());let u=async e=>{let t,r=new Promise(e=>{t=e}),a=l.__ptConfigLock;l.__ptConfigLock=r,await a;try{return await e()}finally{t()}},p=()=>({updatedAt:new Date().toISOString()}),d=async()=>{try{let e=await t.default.readFile(s,"utf-8");return JSON.parse(e)}catch{return null}},f=async e=>{let{updatedAt:r,...a}=e,i=JSON.stringify(a);if(l.__ptConfigContentCache===i)return;e.updatedAt=new Date().toISOString();let o=s+".tmp";try{await t.default.writeFile(o,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(o,s)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}l.__ptConfigContentCache=i,(0,n.broadcastSync)({type:"config"})},c="scrypt:",g=e=>"string"==typeof e&&e.startsWith(c),m=async e=>{let t=i.default.randomBytes(16),r=await new Promise((r,a)=>{i.default.scrypt(e,t,64,(e,t)=>{e?a(e):r(t)})});return`${c}${t.toString("hex")}:${r.toString("hex")}`},h=async(e,t)=>{if(!g(t))return!1;let[,r,a]=t.split(":"),n=Buffer.from(r,"hex"),o=Buffer.from(a,"hex"),s=await new Promise((t,r)=>{i.default.scrypt(e,n,o.length,(e,a)=>{e?r(e):t(a)})});return i.default.timingSafeEqual(s,o)},x=async()=>await d()??p(),y=async e=>u(async()=>{let t=await d()??p();Object.assign(t,e),await f(t)}),w=async()=>{let e=await d();return!g(e?.authPassword)},v=async()=>{let e=await d();return e?.dangerouslySkipPermissions??!1};e.s(["generateSecret",0,()=>i.default.randomBytes(32).toString("hex"),"getConfig",0,x,"getDangerouslySkipPermissions",0,v,"hashPassword",0,m,"needsSetup",0,w,"updateConfig",0,y,"verifyPassword",0,h])},818794,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),n=e.i(845994),o=e.i(772601);let s={count:0,firstAt:0},l=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});if(0!==s.count&&(Date.now()-s.firstAt>9e5?(s={count:0,firstAt:0},!1):s.count>=16))return t.status(429).json({error:"Too many login attempts. Please try again later."});let{password:r}=e.body??{},a=process.env.AUTH_PASSWORD;if(!r||!a||!await (0,n.verifyPassword)(r,a))return 0===s.count||Date.now()-s.firstAt>9e5?s={count:1,firstAt:Date.now()}:s.count++,t.status(401).json({error:"Invalid password."});s={count:0,firstAt:0};let i=await (0,o.signSessionToken)(),l=(0,o.isSecureRequest)(e);return t.setHeader("Set-Cookie",(0,o.buildCookieHeader)(i,l)),t.status(200).json({ok:!0})};e.s(["default",0,l],328912);var u=e.i(328912),p=e.i(7031),d=e.i(181927),f=e.i(846432);let c=(0,i.hoist)(u,"default"),g=(0,i.hoist)(u,"config"),m=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/auth/login",pathname:"/api/auth/login",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,f.setRequestMeta)(e,a.requestMeta),m.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/auth/login";i=i.replace(/\/index$/,"")||"/";let n=await m.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:o,params:s,prerenderManifest:l,routerServerContext:u}=n;try{let t,a=e.method||"GET",n=(0,p.getTracer)(),f=n.getActiveScopeSpan(),c=!!(null==u?void 0:u.isWrappedByNextServer),g=m.instrumentationOnRequestError.bind(m),h=async p=>m.render(e,r,{query:{...o,...s},params:s,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:m.isDev,page:"/api/auth/login",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>g(e,...t)}).finally(()=>{if(!p)return;p.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==d.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=`${a} ${o}`;p.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),p.updateName(e),t&&t!==p&&(t.setAttribute("http.route",o),t.updateName(e))}else p.updateName(`${a} ${i}`)});c&&f?await h(f):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(d.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:p.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},h),void 0,!c))}catch(e){if(m.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,g,"default",0,c,"handler",0,h],818794)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0zh8xur._.js.map
|
|
@@ -0,0 +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"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),s=e.i(446786);let o=r.default.join(s.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",a=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,s]=r.split("=").map(e=>e.trim());e&&s&&(t[e]=s)}return t})(process.env.LOG_LEVELS),n=["trace","debug","info","warn","error","fatal"],l=globalThis;if(!l.__ptRootLogger){let e=[i,...Object.values(a)].reduce((e,t)=>n.indexOf(t)<n.indexOf(e)?t:e,"fatal");l.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(o,"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=a[e]??i,t}])},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},406461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},524836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},921517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},845994,e=>{"use strict";var t=e.i(924868),r=e.i(814747),s=e.i(446786),o=e.i(254799),i=e.i(666126);(0,e.i(25146).createLogger)("config");let a=r.default.join(s.default.homedir(),".purplemux"),n=r.default.join(a,"config.json"),l=globalThis;l.__ptConfigLock||(l.__ptConfigLock=Promise.resolve());let u=async e=>{let t,r=new Promise(e=>{t=e}),s=l.__ptConfigLock;l.__ptConfigLock=r,await s;try{return await e()}finally{t()}},d=()=>({updatedAt:new Date().toISOString()}),p=async()=>{try{let e=await t.default.readFile(n,"utf-8");return JSON.parse(e)}catch{return null}},c=async e=>{let{updatedAt:r,...s}=e,o=JSON.stringify(s);if(l.__ptConfigContentCache===o)return;e.updatedAt=new Date().toISOString();let a=n+".tmp";try{await t.default.writeFile(a,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(a,n)}catch(e){throw await t.default.unlink(a).catch(()=>{}),e}l.__ptConfigContentCache=o,(0,i.broadcastSync)({type:"config"})},f="scrypt:",g=e=>"string"==typeof e&&e.startsWith(f),m=async e=>{let t=o.default.randomBytes(16),r=await new Promise((r,s)=>{o.default.scrypt(e,t,64,(e,t)=>{e?s(e):r(t)})});return`${f}${t.toString("hex")}:${r.toString("hex")}`},h=async(e,t)=>{if(!g(t))return!1;let[,r,s]=t.split(":"),i=Buffer.from(r,"hex"),a=Buffer.from(s,"hex"),n=await new Promise((t,r)=>{o.default.scrypt(e,i,a.length,(e,s)=>{e?r(e):t(s)})});return o.default.timingSafeEqual(n,a)},y=async()=>await p()??d(),w=async e=>u(async()=>{let t=await p()??d();Object.assign(t,e),await c(t)}),x=async()=>{let e=await p();return!g(e?.authPassword)},v=async()=>{let e=await p();return e?.dangerouslySkipPermissions??!1};e.s(["generateSecret",0,()=>o.default.randomBytes(32).toString("hex"),"getConfig",0,y,"getDangerouslySkipPermissions",0,v,"hashPassword",0,m,"needsSetup",0,x,"updateConfig",0,w,"verifyPassword",0,h])},716018,e=>{"use strict";e.i(446786);e.s(["isBoundToLocalhostOnly",0,()=>"127.0.0.1"===(process.env.__PMUX_BOUND_HOST??"0.0.0.0"),"updateAccessFromConfig",0,e=>{process.env.HOST?.trim()||(process.env.__PMUX_NETWORK_ACCESS=e)}],716018)},671207,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),o=e.i(262950),i=e.i(845994),a=e.i(716018);let n=["code-server","vscode","vscode-insiders","cursor","windsurf","zed","custom","off"],l=["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right"],u=e=>"string"==typeof e&&l.includes(e),d=["appTheme","terminalTheme","customCSS","dangerouslySkipPermissions","claudeShowTerminal","editorUrl","editorPreset","authPassword","notificationsEnabled","toastOnCompleteEnabled","toastDuration","toastPositionDesktop","toastPositionMobile","locale","fontSize","systemResourcesEnabled","networkAccess"],p=["localhost","tailscale","all"],c=async(e,t)=>{if("GET"===e.method){let{authPassword:e,authSecret:r,...s}=await (0,i.getConfig)(),o="string"==typeof process.env.HOST&&process.env.HOST.trim().length>0;return t.status(200).json({...s,hasAuthPassword:!!e,hostEnvLocked:o,bindHostIsLocal:(0,a.isBoundToLocalhostOnly)()})}if("PATCH"===e.method){let r,s,o,l=e.body??{},c={};for(let e of d)e in l&&(c[e]=l[e]);if("editorUrl"in c&&"string"!=typeof c.editorUrl)return t.status(400).json({error:"editorUrl must be a string."});if("editorPreset"in c&&!("string"==typeof(r=c.editorPreset)&&n.includes(r)))return t.status(400).json({error:"editorPreset is invalid."});if("networkAccess"in c&&!("string"==typeof(s=c.networkAccess)&&p.includes(s)))return t.status(400).json({error:"networkAccess must be one of: localhost, tailscale, all."});if("toastPositionDesktop"in c&&!u(c.toastPositionDesktop))return t.status(400).json({error:"toastPositionDesktop is invalid."});if("toastPositionMobile"in c&&!u(c.toastPositionMobile))return t.status(400).json({error:"toastPositionMobile is invalid."});if("toastDuration"in c&&!("number"==typeof(o=c.toastDuration)&&Number.isFinite(o)&&o>=1e3&&o<=6e4))return t.status(400).json({error:"toastDuration must be a number between 1000 and 60000."});if("string"==typeof c.authPassword&&c.authPassword){let e=await (0,i.hashPassword)(c.authPassword),t=(0,i.generateSecret)();c.authPassword=e,c.authSecret=t,await (0,i.updateConfig)(c),process.env.AUTH_PASSWORD=e,process.env.NEXTAUTH_SECRET=t}else delete c.authPassword,await (0,i.updateConfig)(c);return"networkAccess"in c&&(0,a.updateAccessFromConfig)(c.networkAccess),t.status(200).json({ok:!0})}return t.setHeader("Allow","GET, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,c],183329);var f=e.i(183329),g=e.i(7031),m=e.i(181927),h=e.i(846432);let y=(0,o.hoist)(f,"default"),w=(0,o.hoist)(f,"config"),x=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/config",pathname:"/api/config",bundlePath:"",filename:""},userland:f,distDir:".next",relativeProjectDir:""});async function v(e,r,s){s.requestMeta&&(0,h.setRequestMeta)(e,s.requestMeta),x.isDev&&(0,h.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let o="/api/config";o=o.replace(/\/index$/,"")||"/";let i=await x.prepare(e,r,{srcPage:o});if(!i){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:a,params:n,prerenderManifest:l,routerServerContext:u}=i;try{let t,s=e.method||"GET",i=(0,g.getTracer)(),d=i.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),c=x.instrumentationOnRequestError.bind(x),f=async d=>x.render(e,r,{query:{...a,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:x.isDev,page:"/api/config",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=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==m.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 a=e.get("next.route");if(a){let e=`${s} ${a}`;d.setAttributes({"next.route":a,"http.route":a,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",a),t.updateName(e))}else d.updateName(`${s} ${o}`)});p&&d?await f(d):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(m.BaseServerSpan.handleRequest,{spanName:`${s} ${o}`,kind:g.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},f),void 0,!p))}catch(e){if(x.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==s.waitUntil||s.waitUntil.call(s,Promise.resolve())}}e.s(["config",0,w,"default",0,y,"handler",0,v],671207)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0~iu3jq._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),a=e.i(814747),i=e.i(446786);let n=a.default.join(i.default.homedir(),".purplemux","cli-token"),s=globalThis;e.s(["verifyCliToken",0,e=>{let i=e.headers["x-pmux-token"];var o="string"==typeof i?i: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 i=(0,t.randomBytes)(32).toString("hex");s.__ptCliToken=i;try{r.default.mkdirSync(a.default.dirname(n),{recursive:!0}),r.default.writeFileSync(n,i,{mode:384})}catch{}return i})();return o.length===l.length&&(0,t.timingSafeEqual)(Buffer.from(o),Buffer.from(l))}])},200523,e=>{"use strict";var t=e.i(825265),r=e.i(804767),a=e.i(322429),i=e.i(871911);let n=async(e,i)=>{if(!await (0,a.getWorkspaceById)(e))return null;let n=await (0,t.getLayout)(e);for(let t of(0,r.collectPanes)(n.root)){let r=t.tabs.find(e=>e.id===i);if(r)return{workspaceId:e,paneId:t.id,tab:r}}return null},s=async e=>{let a=await (0,t.getLayout)(e);return(0,r.getFirstPaneId)(a.root)||null},o=async(e,t,r,a)=>{if(e.method!==r){t.setHeader("Allow",r),t.status(405).json({error:"Method not allowed"});return}if(!(0,i.verifyCliToken)(e))return void t.status(403).json({error:"Forbidden"});let s=e.query.tabId,o="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!o)return void t.status(400).json({error:"workspaceId is required"});let l=await n(o,s);if(!l)return void t.status(404).json({error:"Tab not found"});if("web-browser"!==l.tab.panelType)return void t.status(400).json({error:"Tab is not a web-browser panel"});let u=globalThis.__ptBrowserBridge??null;u?await a({tabId:s,bridge:u}):t.status(503).json({error:"Browser bridge unavailable (Electron-only feature)"})};e.s(["findTab",0,n,"resolveFirstPaneId",0,s,"withBrowserTab",0,o],200523)},513092,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),n=e.i(200523);let s=async(e,t)=>{await (0,n.withBrowserTab)(e,t,"GET",async({tabId:r,bridge:a})=>{let i="1"===e.query.full||"true"===e.query.full,n="base64"===e.query.format?"base64":"png";try{let e=await a.capture(r,{fullPage:i});if("base64"===n)return void t.status(200).json({tabId:r,format:"png",base64:e});let s=Buffer.from(e,"base64");t.setHeader("Content-Type","image/png"),t.setHeader("Content-Length",String(s.byteLength)),t.status(200).end(s)}catch(r){let e=r instanceof Error?r.message:"capture failed";t.status(409).json({error:e})}})};e.s(["default",0,s],821755);var o=e.i(821755),l=e.i(7031),u=e.i(181927),d=e.i(846432);let p=(0,i.hoist)(o,"default"),c=(0,i.hoist)(o,"config"),f=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/browser/screenshot",pathname:"/api/cli/tabs/[tabId]/browser/screenshot",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function v(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/browser/screenshot";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:o,prerenderManifest:p,routerServerContext:c}=n;try{let t,a=e.method||"GET",n=(0,l.getTracer)(),d=n.getActiveScopeSpan(),v=!!(null==c?void 0:c.isWrappedByNextServer),h=f.instrumentationOnRequestError.bind(f),b=async l=>f.render(e,r,{query:{...s,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:p.preview,propagateError:!1,dev:f.isDev,page:"/api/cli/tabs/[tabId]/browser/screenshot",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!l)return;l.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.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}`;l.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),l.updateName(e),t&&t!==l&&(t.setAttribute("http.route",s),t.updateName(e))}else l.updateName(`${a} ${i}`)});v&&d?await b(d):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:l.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},b),void 0,!v))}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,c,"default",0,p,"handler",0,v],513092)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__11xw16l._.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 c=(0,o.createLogger)("terminal"),p=(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 p("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 p("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(),c.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},w=e=>new Promise(t=>setTimeout(t,e)),g=async e=>{if(!await y(e))return;c.debug(`killSession start: ${e}`);let t=await v(e);if(t)try{c.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await y(e))return void c.debug(`killSession done (SIGTERM): ${e}`);await w(200)}if(c.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{c.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await y(e))return void c.debug(`killSession done (SIGKILL): ${e}`);await w(200)}c.warn(`tmux session still alive after kill: ${e}`)},y=async e=>{try{return await p("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=>{c.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 p("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 p("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 p("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 p("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},b=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},P=async()=>{try{let{stdout:e}=await p("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}},I=new Set(["bash","zsh","fish","sh","dash"]),N=async e=>{let t=await b(e);return t?{isSafe:I.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},$=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},R=async e=>{await p("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},T=async(e,t)=>{await R(e),await p("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},M=async(e,t)=>{await R(e),await p("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},C=async(e,t)=>{await R(e),await p("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await p("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await p("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},A=async e=>{try{let{stdout:t}=await p("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"]),q=async()=>{try{await p("tmux",["-L",d,"kill-server"],{timeout:5e3}),c.debug("tmux server killed")}catch{}},O=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},j=async(e,t)=>{try{let{stdout:r}=await p("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},D=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 p("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},H=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await D(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 p("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[]}},G=async e=>{let t=await H(e);if(0===t.length)return[];if(u)return U(t);try{let{stdout:e}=await p("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[]}},F=async e=>{let t=await v(e);if(!t)return null;try{let{stdout:e}=await p("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await p("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,I,"applyConfig",0,E,"capturePaneContent",0,O,"capturePaneContentWithHistory",0,j,"checkTerminalProcess",0,N,"createSession",0,f,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,R,"getAllPanesInfo",0,P,"getLastCommand",0,F,"getListeningPorts",0,G,"getPaneCurrentCommand",0,b,"getPaneDetailInfo",0,A,"getPaneTitle",0,$,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,y,"killServer",0,q,"killSession",0,g,"listSessions",0,h,"scanSessions",0,S,"sendBracketedPaste",0,C,"sendKeys",0,T,"sendRawKeys",0,M,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},422392,e=>{"use strict";let t=new Map,r=6e4;e.s(["getCached",0,e=>{let r=t.get(e);return r?Date.now()>r.expiresAt?(t.delete(e),null):r.data:null},"setCached",0,(e,a,n=r)=>{t.set(e,{data:a,expiresAt:Date.now()+n})}])},740670,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),n=e.i(262950),i=e.i(233405),s=e.i(224361),l=e.i(459015),o=e.i(422392);let u=(0,s.promisify)(i.execFile),c=async e=>{let t=await (0,l.getSessionCwd)(e);if(!t)throw Error("tmux-session-not-found");let r=`git-branch:${t}`,a=(0,o.getCached)(r);if(null!==a)return a;try{let{stdout:e}=await u("git",["-C",t,"rev-parse","--abbrev-ref","HEAD"],{timeout:5e3}),a=e.trim()||null;return(0,o.setCached)(r,a,15e3),a}catch(e){if(128===e.code)return(0,o.setCached)(r,null,15e3),null;throw e}},p=(0,e.i(25146).createLogger)("git"),d=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.tmuxSession;if(!r)return t.status(400).json({error:"missing-param",message:"tmuxSession parameter required"});try{let e=await c(r);return t.status(200).json({branch:e})}catch(r){let e=r instanceof Error?r.message:String(r);if("tmux-session-not-found"===e)return t.status(404).json({error:"tmux-session-not-found"});return p.error(`branch query failed: ${e}`),t.status(500).json({error:"git-error"})}};e.s(["default",0,d],612542);var m=e.i(612542),h=e.i(7031),f=e.i(181927),w=e.i(846432);let g=(0,n.hoist)(m,"default"),y=(0,n.hoist)(m,"config"),x=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/git/branch",pathname:"/api/git/branch",bundlePath:"",filename:""},userland:m,distDir:".next",relativeProjectDir:""});async function S(e,r,a){a.requestMeta&&(0,w.setRequestMeta)(e,a.requestMeta),x.isDev&&(0,w.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/git/branch";n=n.replace(/\/index$/,"")||"/";let i=await x.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:u}=i;try{let t,a=e.method||"GET",i=(0,h.getTracer)(),c=i.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),d=x.instrumentationOnRequestError.bind(x),m=async c=>x.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:x.isDev,page:"/api/git/branch",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>d(e,...t)}).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==f.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}`;c.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),c.updateName(e),t&&t!==c&&(t.setAttribute("http.route",s),t.updateName(e))}else c.updateName(`${a} ${n}`)});p&&c?await m(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(f.BaseServerSpan.handleRequest,{spanName:`${a} ${n}`,kind:h.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},m),void 0,!p))}catch(e){if(x.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,y,"default",0,g,"handler",0,S],740670)}];
|
|
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 c=(0,o.createLogger)("terminal"),p=(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"),h=async()=>{try{let{stdout:e}=await p("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 i=(0,l.buildShellLaunchCommand)();await p("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 b(),c.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},w=e=>new Promise(t=>setTimeout(t,e)),y=async e=>{if(!await x(e))return;c.debug(`killSession start: ${e}`);let t=await E(e);if(t)try{c.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await x(e))return void c.debug(`killSession done (SIGTERM): ${e}`);await w(200)}if(c.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{c.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await x(e))return void c.debug(`killSession done (SIGKILL): ${e}`);await w(200)}c.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{let t=s.PRISTINE_ENV.HOME||"/";if(!e)return t;let a=e;for(;;){try{if((await r.default.stat(a)).isDirectory())return a}catch{}let e=i.default.dirname(a);if(e===a)return t;a=e}},x=async e=>{try{return await p("tmux",["-L",d,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},S=async()=>{},_=async()=>{await S();let e=await h();e.length>0&&e.forEach(e=>{c.debug(`existing tmux session found: ${e}`)})},L=async e=>{if(u)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await p("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}},v=async e=>{let t=await E(e);if(t){let e=await L(t);if(e)return e}try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},E=async e=>{try{let{stdout:t}=await p("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}},b=async()=>{try{await p("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},I=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},P=async()=>{try{let{stdout:e}=await p("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"]),$=async e=>{let t=await I(e);return t?{isSafe:N.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},R=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},T=async e=>{await p("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},M=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},C=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},A=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await p("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await p("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},k=async e=>{try{let{stdout:t}=await p("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}}},q=new Set(["node","python","python3","ruby","perl","deno","bun"]),O=async()=>{try{await p("tmux",["-L",d,"kill-server"],{timeout:5e3}),c.debug("tmux server killed")}catch{}},D=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},j=async(e,t)=>{try{let{stdout:r}=await p("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},H=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 p("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 H(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 p("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[]}},F=async e=>{let t=await U(e);if(0===t.length)return[];if(u)return G(t);try{let{stdout:e}=await p("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[]}},K=async e=>{let t=await E(e);if(!t)return null;try{let{stdout:e}=await p("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await p("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]),q.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,b,"capturePaneContent",0,D,"capturePaneContentWithHistory",0,j,"checkTerminalProcess",0,$,"createSession",0,f,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,T,"getAllPanesInfo",0,P,"getLastCommand",0,K,"getListeningPorts",0,F,"getPaneCurrentCommand",0,I,"getPaneDetailInfo",0,k,"getPaneTitle",0,R,"getSessionCwd",0,v,"getSessionPanePid",0,E,"hasSession",0,x,"killServer",0,O,"killSession",0,y,"listSessions",0,h,"resolveExistingDir",0,g,"scanSessions",0,_,"sendBracketedPaste",0,A,"sendKeys",0,M,"sendRawKeys",0,C,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},422392,e=>{"use strict";let t=new Map,r=6e4;e.s(["getCached",0,e=>{let r=t.get(e);return r?Date.now()>r.expiresAt?(t.delete(e),null):r.data:null},"setCached",0,(e,a,i=r)=>{t.set(e,{data:a,expiresAt:Date.now()+i})}])},740670,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),n=e.i(233405),s=e.i(224361),l=e.i(459015),o=e.i(422392);let u=(0,s.promisify)(n.execFile),c=async e=>{let t=await (0,l.getSessionCwd)(e);if(!t)throw Error("tmux-session-not-found");let r=`git-branch:${t}`,a=(0,o.getCached)(r);if(null!==a)return a;try{let{stdout:e}=await u("git",["-C",t,"rev-parse","--abbrev-ref","HEAD"],{timeout:5e3}),a=e.trim()||null;return(0,o.setCached)(r,a,15e3),a}catch(e){if(128===e.code)return(0,o.setCached)(r,null,15e3),null;throw e}},p=(0,e.i(25146).createLogger)("git"),d=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.tmuxSession;if(!r)return t.status(400).json({error:"missing-param",message:"tmuxSession parameter required"});try{let e=await c(r);return t.status(200).json({branch:e})}catch(r){let e=r instanceof Error?r.message:String(r);if("tmux-session-not-found"===e)return t.status(404).json({error:"tmux-session-not-found"});return p.error(`branch query failed: ${e}`),t.status(500).json({error:"git-error"})}};e.s(["default",0,d],612542);var m=e.i(612542),h=e.i(7031),f=e.i(181927),w=e.i(846432);let y=(0,i.hoist)(m,"default"),g=(0,i.hoist)(m,"config"),x=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/git/branch",pathname:"/api/git/branch",bundlePath:"",filename:""},userland:m,distDir:".next",relativeProjectDir:""});async function S(e,r,a){a.requestMeta&&(0,w.setRequestMeta)(e,a.requestMeta),x.isDev&&(0,w.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/git/branch";i=i.replace(/\/index$/,"")||"/";let n=await x.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:u}=n;try{let t,a=e.method||"GET",n=(0,h.getTracer)(),c=n.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),d=x.instrumentationOnRequestError.bind(x),m=async c=>x.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:x.isDev,page:"/api/git/branch",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>d(e,...t)}).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==f.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}`;c.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),c.updateName(e),t&&t!==c&&(t.setAttribute("http.route",s),t.updateName(e))}else c.updateName(`${a} ${i}`)});p&&c?await m(c):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(f.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:h.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},m),void 0,!p))}catch(e){if(x.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,g,"default",0,y,"handler",0,S],740670)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__12nr~pb._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[561089,e=>{"use strict";var t=e.i(926747),r=e.i(190406),n=e.i(244898),a=e.i(262950),i=e.i(964759);let o=(0,e.i(25146).createLogger)("tmux"),s=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let r="string"==typeof e.body?.tabId?e.body.tabId:void 0;if(!r)return t.status(400).json({error:"tabId required"});try{let e=await (0,i.getStatusManager)().recoverUnknownIfPending(r);return t.status(200).json(e)}catch(e){return o.error(`recover-unknown failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"recover-unknown failed"})}};e.s(["default",0,s],353162);var u=e.i(353162),l=e.i(7031),d=e.i(181927),p=e.i(846432);let v=(0,a.hoist)(u,"default"),c=(0,a.hoist)(u,"config"),h=new n.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/recover-unknown",pathname:"/api/tmux/recover-unknown",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function m(e,r,n){n.requestMeta&&(0,p.setRequestMeta)(e,n.requestMeta),h.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/tmux/recover-unknown";a=a.replace(/\/index$/,"")||"/";let i=await h.prepare(e,r,{srcPage:a});if(!i){r.statusCode=400,r.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve());return}let{query:o,params:s,prerenderManifest:u,routerServerContext:v}=i;try{let t,n=e.method||"GET",i=(0,l.getTracer)(),p=i.getActiveScopeSpan(),c=!!(null==v?void 0:v.isWrappedByNextServer),m=h.instrumentationOnRequestError.bind(h),g=async l=>h.render(e,r,{query:{...o,...s},params:s,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:u.preview,propagateError:!1,dev:h.isDev,page:"/api/tmux/recover-unknown",internalRevalidate:null==v?void 0:v.revalidate,onError:(...t)=>m(e,...t)}).finally(()=>{if(!l)return;l.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==d.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=`${n} ${o}`;l.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),l.updateName(e),t&&t!==l&&(t.setAttribute("http.route",o),t.updateName(e))}else l.updateName(`${n} ${a}`)});c&&p?await g(p):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(d.BaseServerSpan.handleRequest,{spanName:`${n} ${a}`,kind:l.SpanKind.SERVER,attributes:{"http.method":n,"http.target":e.url}},g),void 0,!c))}catch(e){if(h.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==n.waitUntil||n.waitUntil.call(n,Promise.resolve())}}e.s(["config",0,c,"default",0,v,"handler",0,m],561089)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_0.pa6m1._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[997054,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),s=e.i(262950),i=e.i(446786),n=e.i(322429),o=e.i(825265),l=e.i(804767);e.i(462180);var d=e.i(282992),u=e.i(459015),p=e.i(964759);let c=(0,e.i(25146).createLogger)("workspace-api"),v=async(e,t)=>{if("GET"===e.method){let e=await (0,n.getWorkspaces)();return t.status(200).json(e)}if("POST"===e.method){let{directory:r,name:a,resumeSessionId:s,panelType:v}=e.body??{},m=s?(0,d.getProviderByPanelType)(v??"claude-code"):null;if(s){if(!m)return t.status(400).json({error:"Unknown panel type for resume"});if(!m.isValidSessionId(s))return t.status(400).json({error:"Invalid session ID format"})}let w=r&&"string"==typeof r?r:i.default.homedir();try{let e=m?{panelType:m.panelType}:void 0,r=await (0,n.createWorkspace)(w,a,e),i=await (0,o.readLayoutFile)((0,o.resolveLayoutFile)(r.id)),d=i?(0,l.collectAllTabs)(i.root)[0]:null;return d&&"web-browser"!==d.panelType&&(0,p.getStatusManager)().registerTab(d.id,{cliState:"inactive",workspaceId:r.id,tabName:d.name,tmuxSession:d.sessionName,lastEvent:null,eventSeq:0}),s&&m&&d&&setTimeout(async()=>{try{let e=await m.buildResumeCommand(s,{workspaceId:r.id});await (0,u.sendKeys)(d.sessionName,e)}catch(e){c.warn(`resume sendKeys failed: ${e instanceof Error?e.message:e}`)}},500),t.status(200).json(r)}catch(a){let e=a instanceof Error?a.message:"Unknown error",r=["not exist","directory","registered"].some(t=>e.includes(t));return t.status(r?400:500).json({error:e})}}return t.setHeader("Allow","GET, POST"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,v],401508);var m=e.i(401508),w=e.i(7031),h=e.i(181927),f=e.i(846432);let g=(0,s.hoist)(m,"default"),y=(0,s.hoist)(m,"config"),S=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/workspace/index",pathname:"/api/workspace",bundlePath:"",filename:""},userland:m,distDir:".next",relativeProjectDir:""});async function x(e,r,a){a.requestMeta&&(0,f.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/workspace/index";s=s.replace(/\/index$/,"")||"/";let i=await S.prepare(e,r,{srcPage:s});if(!i){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:n,params:o,prerenderManifest:l,routerServerContext:d}=i;try{let t,a=e.method||"GET",i=(0,w.getTracer)(),u=i.getActiveScopeSpan(),p=!!(null==d?void 0:d.isWrappedByNextServer),c=S.instrumentationOnRequestError.bind(S),v=async u=>S.render(e,r,{query:{...n,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:S.isDev,page:"/api/workspace/index",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>c(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")!==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 n=e.get("next.route");if(n){let e=`${a} ${n}`;u.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",n),t.updateName(e))}else u.updateName(`${a} ${s}`)});p&&u?await v(u):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(h.BaseServerSpan.handleRequest,{spanName:`${a} ${s}`,kind:w.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},v),void 0,!p))}catch(e){if(S.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,y,"default",0,g,"handler",0,x],997054)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_05ib7yu._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[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"),o=globalThis;e.s(["verifyCliToken",0,e=>{let a=e.headers["x-pmux-token"];var s="string"==typeof a?a:void 0;if(!s)return!1;let l=(()=>{if(o.__ptCliToken)return o.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(n,"utf-8").trim()||null}catch{return null}})();if(e)return o.__ptCliToken=e,e;let a=(0,t.randomBytes)(32).toString("hex");o.__ptCliToken=a;try{r.default.mkdirSync(i.default.dirname(n),{recursive:!0}),r.default.writeFileSync(n,a,{mode:384})}catch{}return a})();return s.length===l.length&&(0,t.timingSafeEqual)(Buffer.from(s),Buffer.from(l))}])},34717,e=>{"use strict";var t=e.i(926747),r=e.i(190406),i=e.i(244898),a=e.i(262950),n=e.i(871911),o=e.i(964759);let s=(0,e.i(25146).createLogger)("hooks"),l=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});if(!(0,n.verifyCliToken)(e))return t.status(403).json({error:"Forbidden"});let{event:r,session:i,notificationType:a}=e.body??{};if("string"==typeof r&&"poll"!==r&&"string"==typeof i&&i){let e="string"==typeof a&&a?a:void 0;s.debug({event:r,session:i,notificationType:e},`received ${r}${e?`(${e})`:""}`),(0,o.getStatusManager)().updateTabFromHook(i,r,e)}else s.debug({body:e.body},"poll trigger"),(0,o.getStatusManager)().poll().catch(e=>{s.error({err:e},"Poll trigger failed")});return t.status(204).end()};e.s(["default",0,l],860464);var u=e.i(860464),d=e.i(7031),p=e.i(181927),f=e.i(846432);let c=(0,a.hoist)(u,"default"),h=(0,a.hoist)(u,"config"),v=new i.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/status/hook",pathname:"/api/status/hook",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function g(e,r,i){i.requestMeta&&(0,f.setRequestMeta)(e,i.requestMeta),v.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/status/hook";a=a.replace(/\/index$/,"")||"/";let n=await v.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:o,params:s,prerenderManifest:l,routerServerContext:u}=n;try{let t,i=e.method||"GET",n=(0,d.getTracer)(),f=n.getActiveScopeSpan(),c=!!(null==u?void 0:u.isWrappedByNextServer),h=v.instrumentationOnRequestError.bind(v),g=async d=>v.render(e,r,{query:{...o,...s},params:s,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:v.isDev,page:"/api/status/hook",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>h(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")!==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 o=e.get("next.route");if(o){let e=`${i} ${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(`${i} ${a}`)});c&&f?await g(f):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(p.BaseServerSpan.handleRequest,{spanName:`${i} ${a}`,kind:d.SpanKind.SERVER,attributes:{"http.method":i,"http.target":e.url}},g),void 0,!c))}catch(e){if(v.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,h,"default",0,c,"handler",0,g],34717)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_09y8.gr._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module.exports=[848738,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),o=e.i(262950),i=e.i(825265),n=e.i(322429),s=e.i(964759);let d=(0,e.i(25146).createLogger)("layout"),u=async(e,t)=>{let r=e.query.workspace||await (0,n.getActiveWorkspaceId)();if(!r)return t.status(400).json({error:"No workspace found"});let a=e.query.paneId,o=e.query.tabId;if("DELETE"===e.method)return await (0,i.removeTabFromPane)(r,a,o)?((0,s.getStatusManager)().removeTab(o),t.status(204).end()):t.status(404).json({error:"Tab not found"});if("POST"===e.method)try{let{command:n}=e.body??{};if(!await (0,i.restartTabSession)(r,a,o,n))return t.status(404).json({error:"Tab not found"});return t.status(200).json({ok:!0})}catch(e){return d.error(`tab restart failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to restart session"})}if("PATCH"===e.method){let{name:n,panelType:s,title:d,cwd:u,lastCommand:l,webUrl:p,terminalRatio:v,terminalCollapsed:m}=e.body??{};if(void 0!==n||void 0!==s||void 0!==d||void 0!==u||void 0!==l||void 0!==p||void 0!==v||void 0!==m){let e={};if(void 0!==n){if("string"!=typeof n)return t.status(400).json({error:"name must be a string"});e.name=n.trim()}if(void 0!==s&&(e.panelType=s),void 0!==d&&(e.title=d),void 0!==u&&(e.cwd=u),void 0!==l&&(e.lastCommand=l),void 0!==p&&(e.webUrl=p),void 0!==v){if("number"!=typeof v||!Number.isFinite(v))return t.status(400).json({error:"terminalRatio must be a number"});e.terminalRatio=Math.max(0,Math.min(100,v))}if(void 0!==m){if("boolean"!=typeof m)return t.status(400).json({error:"terminalCollapsed must be a boolean"});e.terminalCollapsed=m}let f=await (0,i.patchTab)(r,a,o,e);return f?t.status(200).json(f):t.status(404).json({error:"Tab not found"})}return t.status(400).json({error:"No fields to update"})}return t.setHeader("Allow","POST, DELETE, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,u],360163);var l=e.i(360163),p=e.i(7031),v=e.i(181927),m=e.i(846432);let f=(0,o.hoist)(l,"default"),b=(0,o.hoist)(l,"config"),c=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/layout/pane/[paneId]/tabs/[tabId]/index",pathname:"/api/layout/pane/[paneId]/tabs/[tabId]",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,m.setRequestMeta)(e,a.requestMeta),c.isDev&&(0,m.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let o="/api/layout/pane/[paneId]/tabs/[tabId]/index";o=o.replace(/\/index$/,"")||"/";let i=await c.prepare(e,r,{srcPage:o});if(!i){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:n,params:s,prerenderManifest:d,routerServerContext:u}=i;try{let t,a=e.method||"GET",i=(0,p.getTracer)(),l=i.getActiveScopeSpan(),m=!!(null==u?void 0:u.isWrappedByNextServer),f=c.instrumentationOnRequestError.bind(c),b=async l=>c.render(e,r,{query:{...n,...s},params:s,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:d.preview,propagateError:!1,dev:c.isDev,page:"/api/layout/pane/[paneId]/tabs/[tabId]/index",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!l)return;l.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==v.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 n=e.get("next.route");if(n){let e=`${a} ${n}`;l.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),l.updateName(e),t&&t!==l&&(t.setAttribute("http.route",n),t.updateName(e))}else l.updateName(`${a} ${o}`)});m&&l?await b(l):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(v.BaseServerSpan.handleRequest,{spanName:`${a} ${o}`,kind:p.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},b),void 0,!m))}catch(e){if(c.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,b,"default",0,f,"handler",0,h],848738)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_0mwq11h._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[758518,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),a=e.i(262950),i=e.i(459015),n=e.i(322429),o=e.i(825265),l=e.i(804767);e.i(462180);var u=e.i(282992),d=e.i(25146);let p=(0,d.createLogger)("auto-resume"),m=new Set(["bash","zsh","fish","sh","dash"]),c=async()=>{let{workspaces:e}=await (0,n.getWorkspaces)(),t=[];for(let r of e){let e=await (0,o.readLayoutFile)((0,o.resolveLayoutFile)(r.id));if(e)for(let s of(0,l.collectAllTabs)(e.root)){let e=(0,u.getProviderByPanelType)(s.panelType);if(!e)continue;let a=e.readSessionId(s);a&&t.push({workspaceId:r.id,tabId:s.id,tmuxSession:s.sessionName,sessionId:a,provider:e})}}return t},g=async e=>{try{let t=await (0,i.getPaneCurrentCommand)(e.tmuxSession);if(!t)return p.warn(`Cannot check process: ${e.tmuxSession}`),!1;if(!m.has(t)){let r=(0,u.getProviderByProcessName)(t);if(r&&r.id===e.provider.id)return p.debug(`${e.provider.displayName} already running, skip: ${e.tmuxSession}`),!0;return p.debug(`Non-shell process running (${t}), skip: ${e.tmuxSession}`),!1}let r=await e.provider.buildResumeCommand(e.sessionId,{workspaceId:e.workspaceId});return p.debug(`Sending resume: ${e.tmuxSession} → ${e.sessionId}`),await (0,i.sendKeys)(e.tmuxSession,r),!0}catch(t){return p.error(`Failed: ${e.tmuxSession} — ${t instanceof Error?t.message:t}`),!1}},h=async e=>{let t=!1;for(let r of e)await (0,i.hasSession)(r.tmuxSession)||(p.debug(`No tmux session, creating new: ${r.tmuxSession}`),await (0,i.createSession)(r.tmuxSession,80,24),t=!0);t&&await new Promise(e=>setTimeout(e,500)),await Promise.allSettled(e.map(e=>g(e)))},v=async()=>{let e=await c();0!==e.length&&(p.debug(`${e.length} surface(s) auto-resume started`),h(e).then(()=>{p.debug("Auto-resume complete")}).catch(e=>{p.error(`Auto-resume error: ${e instanceof Error?e.message:e}`)}))};var f=e.i(964759);let w=(0,d.createLogger)("terminal"),S=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});try{let e=await (0,i.listSessions)();return w.info(`tmux reset requested — killing ${e.length} session(s)`),await (0,i.killServer)(),await (0,i.scanSessions)(),await (0,i.applyConfig)(),await (0,n.initWorkspaceStore)(),await v(),await (0,f.getStatusManager)().rescan(),w.info("tmux re-initialized after reset"),t.status(200).json({killed:e.length})}catch(e){return w.error(`tmux reset failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"tmux reset failed"})}};e.s(["default",0,S],191170);var x=e.i(191170),y=e.i(7031),P=e.i(181927),$=e.i(846432);let b=(0,a.hoist)(x,"default"),R=(0,a.hoist)(x,"config"),k=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/reset",pathname:"/api/tmux/reset",bundlePath:"",filename:""},userland:x,distDir:".next",relativeProjectDir:""});async function A(e,r,s){s.requestMeta&&(0,$.setRequestMeta)(e,s.requestMeta),k.isDev&&(0,$.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/tmux/reset";a=a.replace(/\/index$/,"")||"/";let i=await k.prepare(e,r,{srcPage:a});if(!i){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:n,params:o,prerenderManifest:l,routerServerContext:u}=i;try{let t,s=e.method||"GET",i=(0,y.getTracer)(),d=i.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),m=k.instrumentationOnRequestError.bind(k),c=async d=>k.render(e,r,{query:{...n,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:k.isDev,page:"/api/tmux/reset",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>m(e,...t)}).finally(()=>{if(!d)return;d.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 n=e.get("next.route");if(n){let e=`${s} ${n}`;d.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",n),t.updateName(e))}else d.updateName(`${s} ${a}`)});p&&d?await c(d):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(P.BaseServerSpan.handleRequest,{spanName:`${s} ${a}`,kind:y.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},c),void 0,!p))}catch(e){if(k.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==s.waitUntil||s.waitUntil.call(s,Promise.resolve())}}e.s(["config",0,R,"default",0,b,"handler",0,A],758518)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0y4b49w._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[667250,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),s=e.i(262950),n=e.i(825265),i=e.i(322429),o=e.i(964759);e.i(462180);var l=e.i(282992),d=e.i(459015);let u=(0,e.i(25146).createLogger)("layout"),p=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let a=e.query.workspace||await (0,i.getActiveWorkspaceId)();if(!a)return t.status(400).json({error:"No workspace found"});let r=e.query.paneId,{name:s,cwd:p,panelType:c,command:v,resumeSessionId:m}=e.body??{},f=m?(0,l.getProviderByPanelType)(c??"claude-code"):null;if(m){if(!f)return t.status(400).json({error:"Unknown panel type for resume"});if(!f.isValidSessionId(m))return t.status(400).json({error:"Invalid session ID format"})}try{let e=await (0,n.addTabToPane)(a,r,s,p,c,v);if(!e)return t.status(404).json({error:"Pane not found"});return"web-browser"!==e.panelType&&(0,o.getStatusManager)().registerTab(e.id,{cliState:"inactive",workspaceId:a,tabName:e.name,tmuxSession:e.sessionName,lastEvent:null,eventSeq:0}),m&&f&&!v&&(await (0,n.updateTabClaudeSessionId)(e.sessionName,m),f.writeSessionId(e,m),setTimeout(async()=>{try{let t=await f.buildResumeCommand(m,{workspaceId:a});await (0,d.sendKeys)(e.sessionName,t)}catch(e){u.warn(`resume sendKeys failed: ${e instanceof Error?e.message:e}`)}},500)),t.status(200).json(e)}catch(e){return u.error(`tab creation failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to create tab"})}};e.s(["default",0,p],170096);var c=e.i(170096),v=e.i(7031),m=e.i(181927),f=e.i(846432);let w=(0,s.hoist)(c,"default"),h=(0,s.hoist)(c,"config"),y=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/layout/pane/[paneId]/tabs/index",pathname:"/api/layout/pane/[paneId]/tabs",bundlePath:"",filename:""},userland:c,distDir:".next",relativeProjectDir:""});async function g(e,a,r){r.requestMeta&&(0,f.setRequestMeta)(e,r.requestMeta),y.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/layout/pane/[paneId]/tabs/index";s=s.replace(/\/index$/,"")||"/";let n=await y.prepare(e,a,{srcPage:s});if(!n){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:i,params:o,prerenderManifest:l,routerServerContext:d}=n;try{let t,r=e.method||"GET",n=(0,v.getTracer)(),u=n.getActiveScopeSpan(),p=!!(null==d?void 0:d.isWrappedByNextServer),c=y.instrumentationOnRequestError.bind(y),f=async u=>y.render(e,a,{query:{...i,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:y.isDev,page:"/api/layout/pane/[paneId]/tabs/index",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==m.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 i=e.get("next.route");if(i){let e=`${r} ${i}`;u.setAttributes({"next.route":i,"http.route":i,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",i),t.updateName(e))}else u.updateName(`${r} ${s}`)});p&&u?await f(u):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(m.BaseServerSpan.handleRequest,{spanName:`${r} ${s}`,kind:v.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},f),void 0,!p))}catch(e){if(y.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,h,"default",0,w,"handler",0,g],667250)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0zcb2f0._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[288061,(e,t,s)=>{"use strict";let r=["nodebuffer","arraybuffer","fragments"],i="u">typeof Blob;i&&r.push("blob"),t.exports={BINARY_TYPES:r,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:i,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}},202588,(e,t,s)=>{"use strict";let{EMPTY_BUFFER:r}=e.r(288061),i=Buffer[Symbol.species];function o(e,t,s,r,i){for(let o=0;o<i;o++)s[r+o]=e[o]^t[3&o]}function n(e,t){for(let s=0;s<e.length;s++)e[s]^=t[3&s]}function a(e){let t;return(a.readOnly=!0,Buffer.isBuffer(e))?e:(e instanceof ArrayBuffer?t=new i(e):ArrayBuffer.isView(e)?t=new i(e.buffer,e.byteOffset,e.byteLength):(t=Buffer.from(e),a.readOnly=!1),t)}if(t.exports={concat:function(e,t){if(0===e.length)return r;if(1===e.length)return e[0];let s=Buffer.allocUnsafe(t),o=0;for(let t=0;t<e.length;t++){let r=e[t];s.set(r,o),o+=r.length}return o<t?new i(s.buffer,s.byteOffset,o):s},mask:o,toArrayBuffer:function(e){return e.length===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.length)},toBuffer:a,unmask:n},!process.env.WS_NO_BUFFER_UTIL)try{let e=(()=>{let e=Error("Cannot find module 'bufferutil'");throw e.code="MODULE_NOT_FOUND",e})();t.exports.mask=function(t,s,r,i,n){n<48?o(t,s,r,i,n):e.mask(t,s,r,i,n)},t.exports.unmask=function(t,s){t.length<32?n(t,s):e.unmask(t,s)}}catch(e){}},653640,(e,t,s)=>{"use strict";let r=Symbol("kDone"),i=Symbol("kRun");t.exports=class{constructor(e){this[r]=()=>{this.pending--,this[i]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[i]()}[i](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[r])}}}},278671,(e,t,s)=>{"use strict";let r,i=e.r(406461),o=e.r(202588),n=e.r(653640),{kStatusCode:a}=e.r(288061),h=Buffer[Symbol.species],l=Buffer.from([0,0,255,255]),c=Symbol("permessage-deflate"),d=Symbol("total-length"),f=Symbol("callback"),_=Symbol("buffers"),u=Symbol("error");function p(e){this[_].push(e),this[d]+=e.length}function m(e){(this[d]+=e.length,this[c]._maxPayload<1||this[d]<=this[c]._maxPayload)?this[_].push(e):(this[u]=RangeError("Max payload size exceeded"),this[u].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[u][a]=1009,this.removeListener("data",m),this.reset())}function y(e){(this[c]._inflate=null,this[u])?this[f](this[u]):(e[a]=1007,this[f](e))}t.exports=class{constructor(e){this._options=e||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._maxPayload=0|this._options.maxPayload,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,r||(r=new n(void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10))}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[f];this._deflate.close(),this._deflate=null,e&&e(Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let t=this._options,s=e.find(e=>(!1!==t.serverNoContextTakeover||!e.server_no_context_takeover)&&(!e.server_max_window_bits||!1!==t.serverMaxWindowBits&&("number"!=typeof t.serverMaxWindowBits||!(t.serverMaxWindowBits>e.server_max_window_bits)))&&("number"!=typeof t.clientMaxWindowBits||!!e.client_max_window_bits));if(!s)throw Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(s.server_no_context_takeover=!0),t.clientNoContextTakeover&&(s.client_no_context_takeover=!0),"number"==typeof t.serverMaxWindowBits&&(s.server_max_window_bits=t.serverMaxWindowBits),"number"==typeof t.clientMaxWindowBits?s.client_max_window_bits=t.clientMaxWindowBits:(!0===s.client_max_window_bits||!1===t.clientMaxWindowBits)&&delete s.client_max_window_bits,s}acceptAsClient(e){let t=e[0];if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw Error('Unexpected parameter "client_no_context_takeover"');if(t.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(t.client_max_window_bits=this._options.clientMaxWindowBits);return t}normalizeParams(e){return e.forEach(e=>{Object.keys(e).forEach(t=>{let s=e[t];if(s.length>1)throw Error(`Parameter "${t}" must have only a single value`);if(s=s[0],"client_max_window_bits"===t){if(!0!==s){let e=+s;if(!Number.isInteger(e)||e<8||e>15)throw TypeError(`Invalid value for parameter "${t}": ${s}`);s=e}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${t}": ${s}`)}else if("server_max_window_bits"===t){let e=+s;if(!Number.isInteger(e)||e<8||e>15)throw TypeError(`Invalid value for parameter "${t}": ${s}`);s=e}else if("client_no_context_takeover"===t||"server_no_context_takeover"===t){if(!0!==s)throw TypeError(`Invalid value for parameter "${t}": ${s}`)}else throw Error(`Unknown parameter "${t}"`);e[t]=s})}),e}decompress(e,t,s){r.add(r=>{this._decompress(e,t,(e,t)=>{r(),s(e,t)})})}compress(e,t,s){r.add(r=>{this._compress(e,t,(e,t)=>{r(),s(e,t)})})}_decompress(e,t,s){let r=this._isServer?"client":"server";if(!this._inflate){let e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?i.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=i.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[c]=this,this._inflate[d]=0,this._inflate[_]=[],this._inflate.on("error",y),this._inflate.on("data",m)}this._inflate[f]=s,this._inflate.write(e),t&&this._inflate.write(l),this._inflate.flush(()=>{let e=this._inflate[u];if(e){this._inflate.close(),this._inflate=null,s(e);return}let i=o.concat(this._inflate[_],this._inflate[d]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[d]=0,this._inflate[_]=[],t&&this.params[`${r}_no_context_takeover`]&&this._inflate.reset()),s(null,i)})}_compress(e,t,s){let r=this._isServer?"server":"client";if(!this._deflate){let e=`${r}_max_window_bits`,t="number"!=typeof this.params[e]?i.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=i.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[d]=0,this._deflate[_]=[],this._deflate.on("data",p)}this._deflate[f]=s,this._deflate.write(e),this._deflate.flush(i.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let e=o.concat(this._deflate[_],this._deflate[d]);t&&(e=new h(e.buffer,e.byteOffset,e.length-4)),this._deflate[f]=null,this._deflate[d]=0,this._deflate[_]=[],t&&this.params[`${r}_no_context_takeover`]&&this._deflate.reset(),s(null,e)})}}},136217,(e,t,s)=>{"use strict";let{isUtf8:r}=e.r(500874),{hasBlob:i}=e.r(288061);function o(e){let t=e.length,s=0;for(;s<t;)if((128&e[s])==0)s++;else if((224&e[s])==192){if(s+1===t||(192&e[s+1])!=128||(254&e[s])==192)return!1;s+=2}else if((240&e[s])==224){if(s+2>=t||(192&e[s+1])!=128||(192&e[s+2])!=128||224===e[s]&&(224&e[s+1])==128||237===e[s]&&(224&e[s+1])==160)return!1;s+=3}else{if((248&e[s])!=240||s+3>=t||(192&e[s+1])!=128||(192&e[s+2])!=128||(192&e[s+3])!=128||240===e[s]&&(240&e[s+1])==128||244===e[s]&&e[s+1]>143||e[s]>244)return!1;s+=4}return!0}if(t.exports={isBlob:function(e){return i&&"object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&("Blob"===e[Symbol.toStringTag]||"File"===e[Symbol.toStringTag])},isValidStatusCode:function(e){return e>=1e3&&e<=1014&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999},isValidUTF8:o,tokenChars:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0]},r)t.exports.isValidUTF8=function(e){return e.length<24?o(e):r(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=(()=>{let e=Error("Cannot find module 'utf-8-validate'");throw e.code="MODULE_NOT_FOUND",e})();t.exports.isValidUTF8=function(t){return t.length<32?o(t):e(t)}}catch(e){}},633257,(e,t,s)=>{"use strict";let{Writable:r}=e.r(688947),i=e.r(278671),{BINARY_TYPES:o,EMPTY_BUFFER:n,kStatusCode:a,kWebSocket:h}=e.r(288061),{concat:l,toArrayBuffer:c,unmask:d}=e.r(202588),{isValidStatusCode:f,isValidUTF8:_}=e.r(136217),u=Buffer[Symbol.species];t.exports=class extends r{constructor(e={}){super(),this._allowSynchronousEvents=void 0===e.allowSynchronousEvents||e.allowSynchronousEvents,this._binaryType=e.binaryType||o[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=0|e.maxPayload,this._skipUTF8Validation=!!e.skipUTF8Validation,this[h]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(e,t,s){if(8===this._opcode&&0==this._state)return s();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(s)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let t=this._buffers[0];return this._buffers[0]=new u(t.buffer,t.byteOffset+e,t.length-e),new u(t.buffer,t.byteOffset,e)}let t=Buffer.allocUnsafe(e);do{let s=this._buffers[0],r=t.length-e;e>=s.length?t.set(this._buffers.shift(),r):(t.set(new Uint8Array(s.buffer,s.byteOffset,e),r),this._buffers[0]=new u(s.buffer,s.byteOffset+e,s.length-e)),e-=s.length}while(e>0)return t}startLoop(e){this._loop=!0;do switch(this._state){case 0:this.getInfo(e);break;case 1:this.getPayloadLength16(e);break;case 2:this.getPayloadLength64(e);break;case 3:this.getMask();break;case 4:this.getData(e);break;case 5:case 6:this._loop=!1;return}while(this._loop)this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let t=this.consume(2);if((48&t[0])!=0)return void e(this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3"));let s=(64&t[0])==64;if(s&&!this._extensions[i.extensionName])return void e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(this._fin=(128&t[0])==128,this._opcode=15&t[0],this._payloadLength=127&t[1],0===this._opcode){if(s)return void e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(!this._fragmented)return void e(this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE"));this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return void e(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"));this._compressed=s}else{if(!(this._opcode>7)||!(this._opcode<11))return void e(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"));if(!this._fin)return void e(this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN"));if(s)return void e(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(this._payloadLength>125||8===this._opcode&&1===this._payloadLength)return void e(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH"))}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=(128&t[1])==128,this._isServer){if(!this._masked)return void e(this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK"))}else if(this._masked)return void e(this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK"));126===this._payloadLength?this._state=1:127===this._payloadLength?this._state=2:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let t=this.consume(8),s=t.readUInt32BE(0);s>2097151?e(this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=0x100000000*s+t.readUInt32BE(4),this.haveLength(e))}haveLength(e){this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)?e(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH")):this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(e){let t=n;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}t=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!=0&&d(t,this._mask)}if(this._opcode>7)return void this.controlMessage(t,e);if(this._compressed){this._state=5,this.decompress(t,e);return}t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}decompress(e,t){this._extensions[i.extensionName].decompress(e,this._fin,(e,s)=>{if(e)return t(e);if(s.length){if(this._messageLength+=s.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return void t(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"));this._fragments.push(s)}this.dataMessage(t),0===this._state&&this.startLoop(t)})}dataMessage(e){if(!this._fin){this._state=0;return}let t=this._messageLength,s=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let r;r="nodebuffer"===this._binaryType?l(s,t):"arraybuffer"===this._binaryType?c(l(s,t)):"blob"===this._binaryType?new Blob(s):s,this._allowSynchronousEvents?(this.emit("message",r,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit("message",r,!0),this._state=0,this.startLoop(e)}))}else{let r=l(s,t);if(!this._skipUTF8Validation&&!_(r))return void e(this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8"));5===this._state||this._allowSynchronousEvents?(this.emit("message",r,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit("message",r,!1),this._state=0,this.startLoop(e)}))}}controlMessage(e,t){if(8===this._opcode){if(0===e.length)this._loop=!1,this.emit("conclude",1005,n),this.end();else{let s=e.readUInt16BE(0);if(!f(s))return void t(this.createError(RangeError,`invalid status code ${s}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE"));let r=new u(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!_(r))return void t(this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8"));this._loop=!1,this.emit("conclude",s,r),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(9===this._opcode?"ping":"pong",e),this._state=0):(this._state=6,setImmediate(()=>{this.emit(9===this._opcode?"ping":"pong",e),this._state=0,this.startLoop(t)}))}createError(e,t,s,r,i){this._loop=!1,this._errored=!0;let o=new e(s?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(o,this.createError),o.code=i,o[a]=r,o}}},791805,(e,t,s)=>{"use strict";let r,{Duplex:i}=e.r(688947),{randomFillSync:o}=e.r(254799),n=e.r(278671),{EMPTY_BUFFER:a,kWebSocket:h,NOOP:l}=e.r(288061),{isBlob:c,isValidStatusCode:d}=e.r(136217),{mask:f,toBuffer:_}=e.r(202588),u=Symbol("kByteLength"),p=Buffer.alloc(4),m=8192;class y{constructor(e,t,s){this._extensions=t||{},s&&(this._generateMask=s,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=l,this[h]=void 0}static frame(e,t){let s,i,n=!1,a=2,h=!1;t.mask&&(s=t.maskBuffer||p,t.generateMask?t.generateMask(s):(8192===m&&(void 0===r&&(r=Buffer.alloc(8192)),o(r,0,8192),m=0),s[0]=r[m++],s[1]=r[m++],s[2]=r[m++],s[3]=r[m++]),h=(s[0]|s[1]|s[2]|s[3])==0,a=6),"string"==typeof e?i=(!t.mask||h)&&void 0!==t[u]?t[u]:(e=Buffer.from(e)).length:(i=e.length,n=t.mask&&t.readOnly&&!h);let l=i;i>=65536?(a+=8,l=127):i>125&&(a+=2,l=126);let c=Buffer.allocUnsafe(n?i+a:a);return(c[0]=t.fin?128|t.opcode:t.opcode,t.rsv1&&(c[0]|=64),c[1]=l,126===l?c.writeUInt16BE(i,2):127===l&&(c[2]=c[3]=0,c.writeUIntBE(i,4,6)),t.mask)?(c[1]|=128,c[a-4]=s[0],c[a-3]=s[1],c[a-2]=s[2],c[a-1]=s[3],h)?[c,e]:n?(f(e,s,c,a,i),[c]):(f(e,s,e,0,i),[c,e]):[c,e]}close(e,t,s,r){let i;if(void 0===e)i=a;else if("number"==typeof e&&d(e))if(void 0!==t&&t.length){let s=Buffer.byteLength(t);if(s>123)throw RangeError("The message must not be greater than 123 bytes");(i=Buffer.allocUnsafe(2+s)).writeUInt16BE(e,0),"string"==typeof t?i.write(t,2):i.set(t,2)}else(i=Buffer.allocUnsafe(2)).writeUInt16BE(e,0);else throw TypeError("First argument must be a valid error code number");let o={[u]:i.length,fin:!0,generateMask:this._generateMask,mask:s,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};0!==this._state?this.enqueue([this.dispatch,i,!1,o,r]):this.sendFrame(y.frame(i,o),r)}ping(e,t,s){let r,i;if("string"==typeof e?(r=Buffer.byteLength(e),i=!1):c(e)?(r=e.size,i=!1):(r=(e=_(e)).length,i=_.readOnly),r>125)throw RangeError("The data size must not be greater than 125 bytes");let o={[u]:r,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};c(e)?0!==this._state?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):0!==this._state?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(y.frame(e,o),s)}pong(e,t,s){let r,i;if("string"==typeof e?(r=Buffer.byteLength(e),i=!1):c(e)?(r=e.size,i=!1):(r=(e=_(e)).length,i=_.readOnly),r>125)throw RangeError("The data size must not be greater than 125 bytes");let o={[u]:r,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};c(e)?0!==this._state?this.enqueue([this.getBlobData,e,!1,o,s]):this.getBlobData(e,!1,o,s):0!==this._state?this.enqueue([this.dispatch,e,!1,o,s]):this.sendFrame(y.frame(e,o),s)}send(e,t,s){let r,i,o=this._extensions[n.extensionName],a=t.binary?2:1,h=t.compress;"string"==typeof e?(r=Buffer.byteLength(e),i=!1):c(e)?(r=e.size,i=!1):(r=(e=_(e)).length,i=_.readOnly),this._firstFragment?(this._firstFragment=!1,h&&o&&o.params[o._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(h=r>=o._threshold),this._compress=h):(h=!1,a=0),t.fin&&(this._firstFragment=!0);let l={[u]:r,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:a,readOnly:i,rsv1:h};c(e)?0!==this._state?this.enqueue([this.getBlobData,e,this._compress,l,s]):this.getBlobData(e,this._compress,l,s):0!==this._state?this.enqueue([this.dispatch,e,this._compress,l,s]):this.dispatch(e,this._compress,l,s)}getBlobData(e,t,s,r){this._bufferedBytes+=s[u],this._state=2,e.arrayBuffer().then(e=>{if(this._socket.destroyed){let e=Error("The socket was closed while the blob was being read");process.nextTick(g,this,e,r);return}this._bufferedBytes-=s[u];let i=_(e);t?this.dispatch(i,t,s,r):(this._state=0,this.sendFrame(y.frame(i,s),r),this.dequeue())}).catch(e=>{process.nextTick(b,this,e,r)})}dispatch(e,t,s,r){if(!t)return void this.sendFrame(y.frame(e,s),r);let i=this._extensions[n.extensionName];this._bufferedBytes+=s[u],this._state=1,i.compress(e,s.fin,(e,t)=>{this._socket.destroyed?g(this,Error("The socket was closed while data was being compressed"),r):(this._bufferedBytes-=s[u],this._state=0,s.readOnly=!1,this.sendFrame(y.frame(t,s),r),this.dequeue())})}dequeue(){for(;0===this._state&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][u],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][u],this._queue.push(e)}sendFrame(e,t){2===e.length?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}}function g(e,t,s){"function"==typeof s&&s(t);for(let s=0;s<e._queue.length;s++){let r=e._queue[s],i=r[r.length-1];"function"==typeof i&&i(t)}}function b(e,t,s){g(e,t,s),e.onerror(t)}t.exports=y},602875,(e,t,s)=>{"use strict";let{kForOnEventAttribute:r,kListener:i}=e.r(288061),o=Symbol("kCode"),n=Symbol("kData"),a=Symbol("kError"),h=Symbol("kMessage"),l=Symbol("kReason"),c=Symbol("kTarget"),d=Symbol("kType"),f=Symbol("kWasClean");class _{constructor(e){this[c]=null,this[d]=e}get target(){return this[c]}get type(){return this[d]}}Object.defineProperty(_.prototype,"target",{enumerable:!0}),Object.defineProperty(_.prototype,"type",{enumerable:!0});class u extends _{constructor(e,t={}){super(e),this[o]=void 0===t.code?0:t.code,this[l]=void 0===t.reason?"":t.reason,this[f]=void 0!==t.wasClean&&t.wasClean}get code(){return this[o]}get reason(){return this[l]}get wasClean(){return this[f]}}Object.defineProperty(u.prototype,"code",{enumerable:!0}),Object.defineProperty(u.prototype,"reason",{enumerable:!0}),Object.defineProperty(u.prototype,"wasClean",{enumerable:!0});class p extends _{constructor(e,t={}){super(e),this[a]=void 0===t.error?null:t.error,this[h]=void 0===t.message?"":t.message}get error(){return this[a]}get message(){return this[h]}}Object.defineProperty(p.prototype,"error",{enumerable:!0}),Object.defineProperty(p.prototype,"message",{enumerable:!0});class m extends _{constructor(e,t={}){super(e),this[n]=void 0===t.data?null:t.data}get data(){return this[n]}}function y(e,t,s){"object"==typeof e&&e.handleEvent?e.handleEvent.call(e,s):e.call(t,s)}Object.defineProperty(m.prototype,"data",{enumerable:!0}),t.exports={CloseEvent:u,ErrorEvent:p,Event:_,EventTarget:{addEventListener(e,t,s={}){let o;for(let o of this.listeners(e))if(!s[r]&&o[i]===t&&!o[r])return;if("message"===e)o=function(e,s){let r=new m("message",{data:s?e:e.toString()});r[c]=this,y(t,this,r)};else if("close"===e)o=function(e,s){let r=new u("close",{code:e,reason:s.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});r[c]=this,y(t,this,r)};else if("error"===e)o=function(e){let s=new p("error",{error:e,message:e.message});s[c]=this,y(t,this,s)};else{if("open"!==e)return;o=function(){let e=new _("open");e[c]=this,y(t,this,e)}}o[r]=!!s[r],o[i]=t,s.once?this.once(e,o):this.on(e,o)},removeEventListener(e,t){for(let s of this.listeners(e))if(s[i]===t&&!s[r]){this.removeListener(e,s);break}}},MessageEvent:m}},99434,(e,t,s)=>{"use strict";let{tokenChars:r}=e.r(136217);function i(e,t,s){void 0===e[t]?e[t]=[s]:e[t].push(s)}t.exports={format:function(e){return Object.keys(e).map(t=>{let s=e[t];return Array.isArray(s)||(s=[s]),s.map(e=>[t].concat(Object.keys(e).map(t=>{let s=e[t];return Array.isArray(s)||(s=[s]),s.map(e=>!0===e?t:`${t}=${e}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(e){let t,s,o=Object.create(null),n=Object.create(null),a=!1,h=!1,l=!1,c=-1,d=-1,f=-1,_=0;for(;_<e.length;_++)if(d=e.charCodeAt(_),void 0===t)if(-1===f&&1===r[d])-1===c&&(c=_);else if(0!==_&&(32===d||9===d))-1===f&&-1!==c&&(f=_);else if(59===d||44===d){if(-1===c)throw SyntaxError(`Unexpected character at index ${_}`);-1===f&&(f=_);let s=e.slice(c,f);44===d?(i(o,s,n),n=Object.create(null)):t=s,c=f=-1}else throw SyntaxError(`Unexpected character at index ${_}`);else if(void 0===s)if(-1===f&&1===r[d])-1===c&&(c=_);else if(32===d||9===d)-1===f&&-1!==c&&(f=_);else if(59===d||44===d){if(-1===c)throw SyntaxError(`Unexpected character at index ${_}`);-1===f&&(f=_),i(n,e.slice(c,f),!0),44===d&&(i(o,t,n),n=Object.create(null),t=void 0),c=f=-1}else if(61===d&&-1!==c&&-1===f)s=e.slice(c,_),c=f=-1;else throw SyntaxError(`Unexpected character at index ${_}`);else if(h){if(1!==r[d])throw SyntaxError(`Unexpected character at index ${_}`);-1===c?c=_:a||(a=!0),h=!1}else if(l)if(1===r[d])-1===c&&(c=_);else if(34===d&&-1!==c)l=!1,f=_;else if(92===d)h=!0;else throw SyntaxError(`Unexpected character at index ${_}`);else if(34===d&&61===e.charCodeAt(_-1))l=!0;else if(-1===f&&1===r[d])-1===c&&(c=_);else if(-1!==c&&(32===d||9===d))-1===f&&(f=_);else if(59===d||44===d){if(-1===c)throw SyntaxError(`Unexpected character at index ${_}`);-1===f&&(f=_);let r=e.slice(c,f);a&&(r=r.replace(/\\/g,""),a=!1),i(n,s,r),44===d&&(i(o,t,n),n=Object.create(null),t=void 0),s=void 0,c=f=-1}else throw SyntaxError(`Unexpected character at index ${_}`);if(-1===c||l||32===d||9===d)throw SyntaxError("Unexpected end of input");-1===f&&(f=_);let u=e.slice(c,f);return void 0===t?i(o,u,n):(void 0===s?i(n,u,!0):a?i(n,s,u.replace(/\\/g,"")):i(n,s,u),i(o,t,n)),o}}},41414,(e,t,s)=>{"use strict";let r=e.r(427699),i=e.r(524836),o=e.r(921517),n=e.r(504446),a=e.r(755004),{randomBytes:h,createHash:l}=e.r(254799),{Duplex:c,Readable:d}=e.r(688947),{URL:f}=e.r(792509),_=e.r(278671),u=e.r(633257),p=e.r(791805),{isBlob:m}=e.r(136217),{BINARY_TYPES:y,CLOSE_TIMEOUT:g,EMPTY_BUFFER:b,GUID:v,kForOnEventAttribute:S,kListener:E,kStatusCode:k,kWebSocket:x,NOOP:w}=e.r(288061),{EventTarget:{addEventListener:O,removeEventListener:T}}=e.r(602875),{format:C,parse:N}=e.r(99434),{toBuffer:L}=e.r(202588),P=Symbol("kAborted"),B=[8,13],U=["CONNECTING","OPEN","CLOSING","CLOSED"],R=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class I extends r{constructor(e,t,s){super(),this._binaryType=y[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=b,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=I.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==e?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,void 0===t?t=[]:Array.isArray(t)||("object"==typeof t&&null!==t?(s=t,t=[]):t=[t]),function e(t,s,r,n){let a,c,d,u,p={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:g,protocolVersion:B[1],maxPayload:0x6400000,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...n,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(t._autoPong=p.autoPong,t._closeTimeout=p.closeTimeout,!B.includes(p.protocolVersion))throw RangeError(`Unsupported protocol version: ${p.protocolVersion} (supported versions: ${B.join(", ")})`);if(s instanceof f)a=s;else try{a=new f(s)}catch{throw SyntaxError(`Invalid URL: ${s}`)}"http:"===a.protocol?a.protocol="ws:":"https:"===a.protocol&&(a.protocol="wss:"),t._url=a.href;let m="wss:"===a.protocol,y="ws+unix:"===a.protocol;if("ws:"===a.protocol||m||y?y&&!a.pathname?c="The URL's pathname is empty":a.hash&&(c="The URL contains a fragment identifier"):c='The URL\'s protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"',c){let e=SyntaxError(c);if(0!==t._redirects)return void D(t,e);throw e}let b=m?443:80,S=h(16).toString("base64"),E=m?i.request:o.request,k=new Set;if(p.createConnection=p.createConnection||(m?W:M),p.defaultPort=p.defaultPort||b,p.port=a.port||b,p.host=a.hostname.startsWith("[")?a.hostname.slice(1,-1):a.hostname,p.headers={...p.headers,"Sec-WebSocket-Version":p.protocolVersion,"Sec-WebSocket-Key":S,Connection:"Upgrade",Upgrade:"websocket"},p.path=a.pathname+a.search,p.timeout=p.handshakeTimeout,p.perMessageDeflate&&(d=new _({...p.perMessageDeflate,isServer:!1,maxPayload:p.maxPayload}),p.headers["Sec-WebSocket-Extensions"]=C({[_.extensionName]:d.offer()})),r.length){for(let e of r){if("string"!=typeof e||!R.test(e)||k.has(e))throw SyntaxError("An invalid or duplicated subprotocol was specified");k.add(e)}p.headers["Sec-WebSocket-Protocol"]=r.join(",")}if(p.origin&&(p.protocolVersion<13?p.headers["Sec-WebSocket-Origin"]=p.origin:p.headers.Origin=p.origin),(a.username||a.password)&&(p.auth=`${a.username}:${a.password}`),y){let e=p.path.split(":");p.socketPath=e[0],p.path=e[1]}if(p.followRedirects){if(0===t._redirects){t._originalIpc=y,t._originalSecure=m,t._originalHostOrSocketPath=y?p.socketPath:a.host;let e=n&&n.headers;if(n={...n,headers:{}},e)for(let[t,s]of Object.entries(e))n.headers[t.toLowerCase()]=s}else if(0===t.listenerCount("redirect")){let e=y?!!t._originalIpc&&p.socketPath===t._originalHostOrSocketPath:!t._originalIpc&&a.host===t._originalHostOrSocketPath;e&&(!t._originalSecure||m)||(delete p.headers.authorization,delete p.headers.cookie,e||delete p.headers.host,p.auth=void 0)}p.auth&&!n.headers.authorization&&(n.headers.authorization="Basic "+Buffer.from(p.auth).toString("base64")),u=t._req=E(p),t._redirects&&t.emit("redirect",t.url,u)}else u=t._req=E(p);p.timeout&&u.on("timeout",()=>{A(t,u,"Opening handshake has timed out")}),u.on("error",e=>{null===u||u[P]||(u=t._req=null,D(t,e))}),u.on("response",i=>{let o=i.headers.location,a=i.statusCode;if(o&&p.followRedirects&&a>=300&&a<400){let i;if(++t._redirects>p.maxRedirects)return void A(t,u,"Maximum redirects exceeded");u.abort();try{i=new f(o,s)}catch(e){D(t,SyntaxError(`Invalid URL: ${o}`));return}e(t,i,r,n)}else t.emit("unexpected-response",u,i)||A(t,u,`Unexpected server response: ${i.statusCode}`)}),u.on("upgrade",(e,s,r)=>{let i;if(t.emit("upgrade",e),t.readyState!==I.CONNECTING)return;u=t._req=null;let o=e.headers.upgrade;if(void 0===o||"websocket"!==o.toLowerCase())return void A(t,s,"Invalid Upgrade header");let n=l("sha1").update(S+v).digest("base64");if(e.headers["sec-websocket-accept"]!==n)return void A(t,s,"Invalid Sec-WebSocket-Accept header");let a=e.headers["sec-websocket-protocol"];if(void 0!==a?k.size?k.has(a)||(i="Server sent an invalid subprotocol"):i="Server sent a subprotocol but none was requested":k.size&&(i="Server sent no subprotocol"),i)return void A(t,s,i);a&&(t._protocol=a);let h=e.headers["sec-websocket-extensions"];if(void 0!==h){let e;if(!d)return void A(t,s,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");try{e=N(h)}catch(e){A(t,s,"Invalid Sec-WebSocket-Extensions header");return}let r=Object.keys(e);if(1!==r.length||r[0]!==_.extensionName)return void A(t,s,"Server indicated an extension that was not requested");try{d.accept(e[_.extensionName])}catch(e){A(t,s,"Invalid Sec-WebSocket-Extensions header");return}t._extensions[_.extensionName]=d}t.setSocket(s,r,{allowSynchronousEvents:p.allowSynchronousEvents,generateMask:p.generateMask,maxPayload:p.maxPayload,skipUTF8Validation:p.skipUTF8Validation})}),p.finishRequest?p.finishRequest(u,t):u.end()}(this,e,t,s)):(this._autoPong=s.autoPong,this._closeTimeout=s.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){y.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,s){let r=new u({allowSynchronousEvents:s.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation}),i=new p(e,this._extensions,s.generateMask);this._receiver=r,this._sender=i,this._socket=e,r[x]=this,i[x]=this,e[x]=this,r.on("conclude",$),r.on("drain",j),r.on("error",G),r.on("message",q),r.on("ping",z),r.on("pong",H),i.onerror=K,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),t.length>0&&e.unshift(t),e.on("close",Y),e.on("data",J),e.on("end",Q),e.on("error",ee),this._readyState=I.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=I.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[_.extensionName]&&this._extensions[_.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=I.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState!==I.CLOSED){if(this.readyState===I.CONNECTING)return void A(this,this._req,"WebSocket was closed before the connection was established");if(this.readyState===I.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=I.CLOSING,this._sender.close(e,t,!this._isServer,e=>{!e&&(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Z(this)}}pause(){this.readyState!==I.CONNECTING&&this.readyState!==I.CLOSED&&(this._paused=!0,this._socket.pause())}ping(e,t,s){if(this.readyState===I.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");("function"==typeof e?(s=e,e=t=void 0):"function"==typeof t&&(s=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState!==I.OPEN)?F(this,e,s):(void 0===t&&(t=!this._isServer),this._sender.ping(e||b,t,s))}pong(e,t,s){if(this.readyState===I.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");("function"==typeof e?(s=e,e=t=void 0):"function"==typeof t&&(s=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState!==I.OPEN)?F(this,e,s):(void 0===t&&(t=!this._isServer),this._sender.pong(e||b,t,s))}resume(){this.readyState!==I.CONNECTING&&this.readyState!==I.CLOSED&&(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,t,s){if(this.readyState===I.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof t&&(s=t,t={}),"number"==typeof e&&(e=e.toString()),this.readyState!==I.OPEN)return void F(this,e,s);let r={binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[_.extensionName]||(r.compress=!1),this._sender.send(e||b,r,s)}terminate(){if(this.readyState!==I.CLOSED){if(this.readyState===I.CONNECTING)return void A(this,this._req,"WebSocket was closed before the connection was established");this._socket&&(this._readyState=I.CLOSING,this._socket.destroy())}}}function D(e,t){e._readyState=I.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function M(e){return e.path=e.socketPath,n.connect(e)}function W(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=n.isIP(e.host)?"":e.host),a.connect(e)}function A(e,t,s){e._readyState=I.CLOSING;let r=Error(s);Error.captureStackTrace(r,A),t.setHeader?(t[P]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(D,e,r)):(t.destroy(r),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function F(e,t,s){if(t){let s=m(t)?t.size:L(t).length;e._socket?e._sender._bufferedBytes+=s:e._bufferedAmount+=s}if(s){let t=Error(`WebSocket is not open: readyState ${e.readyState} (${U[e.readyState]})`);process.nextTick(s,t)}}function $(e,t){let s=this[x];s._closeFrameReceived=!0,s._closeMessage=t,s._closeCode=e,void 0!==s._socket[x]&&(s._socket.removeListener("data",J),process.nextTick(X,s._socket),1005===e?s.close():s.close(e,t))}function j(){let e=this[x];e.isPaused||e._socket.resume()}function G(e){let t=this[x];void 0!==t._socket[x]&&(t._socket.removeListener("data",J),process.nextTick(X,t._socket),t.close(e[k])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function V(){this[x].emitClose()}function q(e,t){this[x].emit("message",e,t)}function z(e){let t=this[x];t._autoPong&&t.pong(e,!this._isServer,w),t.emit("ping",e)}function H(e){this[x].emit("pong",e)}function X(e){e.resume()}function K(e){let t=this[x];t.readyState!==I.CLOSED&&(t.readyState===I.OPEN&&(t._readyState=I.CLOSING,Z(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function Z(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function Y(){let e=this[x];if(this.removeListener("close",Y),this.removeListener("data",J),this.removeListener("end",Q),e._readyState=I.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&0!==this._readableState.length){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[x]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",V),e._receiver.on("finish",V))}function J(e){this[x]._receiver.write(e)||this.pause()}function Q(){let e=this[x];e._readyState=I.CLOSING,e._receiver.end(),this.end()}function ee(){let e=this[x];this.removeListener("error",ee),this.on("error",w),e&&(e._readyState=I.CLOSING,this.destroy())}Object.defineProperty(I,"CONNECTING",{enumerable:!0,value:U.indexOf("CONNECTING")}),Object.defineProperty(I.prototype,"CONNECTING",{enumerable:!0,value:U.indexOf("CONNECTING")}),Object.defineProperty(I,"OPEN",{enumerable:!0,value:U.indexOf("OPEN")}),Object.defineProperty(I.prototype,"OPEN",{enumerable:!0,value:U.indexOf("OPEN")}),Object.defineProperty(I,"CLOSING",{enumerable:!0,value:U.indexOf("CLOSING")}),Object.defineProperty(I.prototype,"CLOSING",{enumerable:!0,value:U.indexOf("CLOSING")}),Object.defineProperty(I,"CLOSED",{enumerable:!0,value:U.indexOf("CLOSED")}),Object.defineProperty(I.prototype,"CLOSED",{enumerable:!0,value:U.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(I.prototype,e,{enumerable:!0})}),["open","error","close","message"].forEach(e=>{Object.defineProperty(I.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[S])return t[E];return null},set(t){for(let t of this.listeners(e))if(t[S]){this.removeListener(e,t);break}"function"==typeof t&&this.addEventListener(e,t,{[S]:!0})}})}),I.prototype.addEventListener=O,I.prototype.removeEventListener=T,t.exports=I},902699,(e,t,s)=>{"use strict";e.r(41414);let{Duplex:r}=e.r(688947);function i(e){e.emit("close")}function o(){!this.destroyed&&this._writableState.finished&&this.destroy()}function n(e){this.removeListener("error",n),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}t.exports=function(e,t){let s=!0,a=new r({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(t,s){let r=!s&&a._readableState.objectMode?t.toString():t;a.push(r)||e.pause()}),e.once("error",function(e){a.destroyed||(s=!1,a.destroy(e))}),e.once("close",function(){a.destroyed||a.push(null)}),a._destroy=function(t,r){if(e.readyState===e.CLOSED){r(t),process.nextTick(i,a);return}let o=!1;e.once("error",function(e){o=!0,r(e)}),e.once("close",function(){o||r(t),process.nextTick(i,a)}),s&&e.terminate()},a._final=function(t){e.readyState===e.CONNECTING?e.once("open",function(){a._final(t)}):null!==e._socket&&(e._socket._writableState.finished?(t(),a._readableState.endEmitted&&a.destroy()):(e._socket.once("finish",function(){t()}),e.close()))},a._read=function(){e.isPaused&&e.resume()},a._write=function(t,s,r){e.readyState===e.CONNECTING?e.once("open",function(){a._write(t,s,r)}):e.send(t,r)},a.on("end",o),a.on("error",n),a}},779163,(e,t,s)=>{"use strict";let{tokenChars:r}=e.r(136217);t.exports={parse:function(e){let t=new Set,s=-1,i=-1,o=0;for(;o<e.length;o++){let n=e.charCodeAt(o);if(-1===i&&1===r[n])-1===s&&(s=o);else if(0!==o&&(32===n||9===n))-1===i&&-1!==s&&(i=o);else if(44===n){if(-1===s)throw SyntaxError(`Unexpected character at index ${o}`);-1===i&&(i=o);let r=e.slice(s,i);if(t.has(r))throw SyntaxError(`The "${r}" subprotocol is duplicated`);t.add(r),s=i=-1}else throw SyntaxError(`Unexpected character at index ${o}`)}if(-1===s||-1!==i)throw SyntaxError("Unexpected end of input");let n=e.slice(s,o);if(t.has(n))throw SyntaxError(`The "${n}" subprotocol is duplicated`);return t.add(n),t}}},281814,(e,t,s)=>{"use strict";let r=e.r(427699),i=e.r(921517),{Duplex:o}=e.r(688947),{createHash:n}=e.r(254799),a=e.r(99434),h=e.r(278671),l=e.r(779163),c=e.r(41414),{CLOSE_TIMEOUT:d,GUID:f,kWebSocket:_}=e.r(288061),u=/^[+/0-9A-Za-z]{22}==$/;function p(e){e._state=2,e.emit("close")}function m(){this.destroy()}function y(e,t,s,r){s=s||i.STATUS_CODES[t],r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(s),...r},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${i.STATUS_CODES[t]}\r
|
|
2
|
-
`+Object.keys(r).map(e=>`${e}: ${r[e]}`).join("\r\n")+"\r\n\r\n"+s)}function g(e,t,s,r,i,o){if(e.listenerCount("wsClientError")){let r=Error(i);Error.captureStackTrace(r,g),e.emit("wsClientError",r,s,t)}else y(s,r,i,o)}t.exports=class extends r{constructor(e,t){if(super(),null==(e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:0x6400000,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:d,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:c,...e}).port&&!e.server&&!e.noServer||null!=e.port&&(e.server||e.noServer)||e.server&&e.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=e.port?(this._server=i.createServer((e,t)=>{let s=i.STATUS_CODES[426];t.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"}),t.end(s)}),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=function(e,t){for(let s of Object.keys(t))e.on(s,t[s]);return function(){for(let s of Object.keys(t))e.removeListener(s,t[s])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,s,r)=>{this.handleUpgrade(t,s,r,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(2===this._state){e&&this.once("close",()=>{e(Error("The server is not running"))}),process.nextTick(p,this);return}if(e&&this.once("close",e),1!==this._state)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(p,this);else{let e=this._server;this._removeListeners(),this._removeListeners=this._server=null,e.close(()=>{p(this)})}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf("?");if((-1!==t?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,s,r){t.on("error",m);let i=e.headers["sec-websocket-key"],o=e.headers.upgrade,n=+e.headers["sec-websocket-version"];if("GET"!==e.method)return void g(this,e,t,405,"Invalid HTTP method");if(void 0===o||"websocket"!==o.toLowerCase())return void g(this,e,t,400,"Invalid Upgrade header");if(void 0===i||!u.test(i))return void g(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header");if(13!==n&&8!==n)return void g(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});if(!this.shouldHandle(e))return void y(t,400);let c=e.headers["sec-websocket-protocol"],d=new Set;if(void 0!==c)try{d=l.parse(c)}catch(s){g(this,e,t,400,"Invalid Sec-WebSocket-Protocol header");return}let f=e.headers["sec-websocket-extensions"],_={};if(this.options.perMessageDeflate&&void 0!==f){let s=new h({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let e=a.parse(f);e[h.extensionName]&&(s.accept(e[h.extensionName]),_[h.extensionName]=s)}catch(s){g(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let o={origin:e.headers[`${8===n?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(o,(o,n,a,h)=>{if(!o)return y(t,n||401,a,h);this.completeUpgrade(_,i,d,e,t,s,r)});if(!this.options.verifyClient(o))return y(t,401)}this.completeUpgrade(_,i,d,e,t,s,r)}completeUpgrade(e,t,s,r,i,o,l){if(!i.readable||!i.writable)return i.destroy();if(i[_])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return y(i,503);let c=n("sha1").update(t+f).digest("base64"),d=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${c}`],u=new this.options.WebSocket(null,void 0,this.options);if(s.size){let e=this.options.handleProtocols?this.options.handleProtocols(s,r):s.values().next().value;e&&(d.push(`Sec-WebSocket-Protocol: ${e}`),u._protocol=e)}if(e[h.extensionName]){let t=e[h.extensionName].params,s=a.format({[h.extensionName]:[t]});d.push(`Sec-WebSocket-Extensions: ${s}`),u._extensions=e}this.emit("headers",d,r),i.write(d.concat("\r\n").join("\r\n")),i.removeListener("error",m),u.setSocket(i,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(u),u.on("close",()=>{this.clients.delete(u),this._shouldEmitClose&&!this.clients.size&&process.nextTick(p,this)})),l(u,r)}}},478319,220951,e=>{"use strict";e.i(902699),e.i(99434),e.i(278671),e.i(633257),e.i(791805),e.i(779163);var t=e.i(41414);e.i(281814),t.default,e.s([],478319)
|
|
2
|
+
`+Object.keys(r).map(e=>`${e}: ${r[e]}`).join("\r\n")+"\r\n\r\n"+s)}function g(e,t,s,r,i,o){if(e.listenerCount("wsClientError")){let r=Error(i);Error.captureStackTrace(r,g),e.emit("wsClientError",r,s,t)}else y(s,r,i,o)}t.exports=class extends r{constructor(e,t){if(super(),null==(e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:0x6400000,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:d,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:c,...e}).port&&!e.server&&!e.noServer||null!=e.port&&(e.server||e.noServer)||e.server&&e.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=e.port?(this._server=i.createServer((e,t)=>{let s=i.STATUS_CODES[426];t.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"}),t.end(s)}),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=function(e,t){for(let s of Object.keys(t))e.on(s,t[s]);return function(){for(let s of Object.keys(t))e.removeListener(s,t[s])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,s,r)=>{this.handleUpgrade(t,s,r,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(2===this._state){e&&this.once("close",()=>{e(Error("The server is not running"))}),process.nextTick(p,this);return}if(e&&this.once("close",e),1!==this._state)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(p,this);else{let e=this._server;this._removeListeners(),this._removeListeners=this._server=null,e.close(()=>{p(this)})}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf("?");if((-1!==t?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,s,r){t.on("error",m);let i=e.headers["sec-websocket-key"],o=e.headers.upgrade,n=+e.headers["sec-websocket-version"];if("GET"!==e.method)return void g(this,e,t,405,"Invalid HTTP method");if(void 0===o||"websocket"!==o.toLowerCase())return void g(this,e,t,400,"Invalid Upgrade header");if(void 0===i||!u.test(i))return void g(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header");if(13!==n&&8!==n)return void g(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});if(!this.shouldHandle(e))return void y(t,400);let c=e.headers["sec-websocket-protocol"],d=new Set;if(void 0!==c)try{d=l.parse(c)}catch(s){g(this,e,t,400,"Invalid Sec-WebSocket-Protocol header");return}let f=e.headers["sec-websocket-extensions"],_={};if(this.options.perMessageDeflate&&void 0!==f){let s=new h({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let e=a.parse(f);e[h.extensionName]&&(s.accept(e[h.extensionName]),_[h.extensionName]=s)}catch(s){g(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let o={origin:e.headers[`${8===n?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(o,(o,n,a,h)=>{if(!o)return y(t,n||401,a,h);this.completeUpgrade(_,i,d,e,t,s,r)});if(!this.options.verifyClient(o))return y(t,401)}this.completeUpgrade(_,i,d,e,t,s,r)}completeUpgrade(e,t,s,r,i,o,l){if(!i.readable||!i.writable)return i.destroy();if(i[_])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return y(i,503);let c=n("sha1").update(t+f).digest("base64"),d=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${c}`],u=new this.options.WebSocket(null,void 0,this.options);if(s.size){let e=this.options.handleProtocols?this.options.handleProtocols(s,r):s.values().next().value;e&&(d.push(`Sec-WebSocket-Protocol: ${e}`),u._protocol=e)}if(e[h.extensionName]){let t=e[h.extensionName].params,s=a.format({[h.extensionName]:[t]});d.push(`Sec-WebSocket-Extensions: ${s}`),u._extensions=e}this.emit("headers",d,r),i.write(d.concat("\r\n").join("\r\n")),i.removeListener("error",m),u.setSocket(i,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(u),u.on("close",()=>{this.clients.delete(u),this._shouldEmitClose&&!this.clients.size&&process.nextTick(p,this)})),l(u,r)}}},666126,478319,220951,e=>{"use strict";e.i(902699),e.i(99434),e.i(278671),e.i(633257),e.i(791805),e.i(779163);var t=e.i(41414);e.i(281814),t.default,e.s([],478319);var s=t;e.s(["WebSocket",()=>s.default],220951);var s=t;(0,e.i(25146).createLogger)("sync");let r=globalThis;r.__ptSyncClients||(r.__ptSyncClients=new Set);let i=r.__ptSyncClients;e.s(["broadcastSync",0,e=>{let t=JSON.stringify(e);for(let e of i)e.readyState===s.default.OPEN&&e.bufferedAmount<1048576&&e.send(t)}],666126)}];
|
|
3
3
|
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=_106a~ya._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[135992,e=>{"use strict";var t=e.i(926747),i=e.i(190406),a=e.i(244898),n=e.i(262950),s=e.i(924868),r=e.i(814747),l=e.i(446786),o=e.i(233405),u=e.i(871911),d=e.i(796902),p=(e.i(522734),e.i(25146));let c=(0,p.createLogger)("session-stats"),f=r.default.join(l.default.homedir(),".purplemux","session-stats");r.default.join(l.default.homedir(),".claude","projects");let m=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,_=e=>r.default.join(f,`${e}.json`),h=e=>{let t=r.default.basename(e,".jsonl");return m.test(t)?t:null},w=async e=>{if(!m.test(e))return null;try{let t=await s.default.readFile(_(e),"utf-8");return JSON.parse(t)}catch{return null}},g=async e=>{await s.default.mkdir(f,{recursive:!0});let t=_(e.sessionId),i=`${t}.tmp`;try{await s.default.writeFile(i,JSON.stringify(e),{mode:384}),await s.default.rename(i,t)}catch(e){await s.default.unlink(i).catch(()=>{}),c.debug({err:e},"failed to write session stats")}},y=async(e,t)=>{if(!m.test(e))return;let i=await w(e)??{sessionId:e};await g({...i,...t,sessionId:e})};e.i(478319);var v=e.i(220951)
|
|
1
|
+
module.exports=[135992,e=>{"use strict";var t=e.i(926747),i=e.i(190406),a=e.i(244898),n=e.i(262950),s=e.i(924868),r=e.i(814747),l=e.i(446786),o=e.i(233405),u=e.i(871911),d=e.i(796902),p=(e.i(522734),e.i(25146));let c=(0,p.createLogger)("session-stats"),f=r.default.join(l.default.homedir(),".purplemux","session-stats");r.default.join(l.default.homedir(),".claude","projects");let m=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,_=e=>r.default.join(f,`${e}.json`),h=e=>{let t=r.default.basename(e,".jsonl");return m.test(t)?t:null},w=async e=>{if(!m.test(e))return null;try{let t=await s.default.readFile(_(e),"utf-8");return JSON.parse(t)}catch{return null}},g=async e=>{await s.default.mkdir(f,{recursive:!0});let t=_(e.sessionId),i=`${t}.tmp`;try{await s.default.writeFile(i,JSON.stringify(e),{mode:384}),await s.default.rename(i,t)}catch(e){await s.default.unlink(i).catch(()=>{}),c.debug({err:e},"failed to write session stats")}},y=async(e,t)=>{if(!m.test(e))return;let i=await w(e)??{sessionId:e};await g({...i,...t,sessionId:e})};e.i(478319);var v=e.i(220951),x=e.i(840665);e.i(319668);e.i(459015);e.i(746514);e.i(825265),e.i(964759);e.i(462180),e.i(282992),e.i(133446),(0,p.createLogger)("timeline");let S=globalThis;S.__pmuxTimelineConnections||(S.__pmuxTimelineConnections=new Map),S.__pmuxTimelineFileWatchers||(S.__pmuxTimelineFileWatchers=new Map),S.__pmuxTimelineSessionWatchers||(S.__pmuxTimelineSessionWatchers=new Map),S.__pmuxTimelinePendingJsonlWatchers||(S.__pmuxTimelinePendingJsonlWatchers=new Map),S.__pmuxTimelineConnections;let T=S.__pmuxTimelineFileWatchers;S.__pmuxTimelineSessionWatchers,S.__pmuxTimelinePendingJsonlWatchers;let P=e=>e.readyState===v.WebSocket.OPEN&&e.bufferedAmount<1048576,b=(e,t)=>{P(e)&&e.send(JSON.stringify(t))},j=(0,p.createLogger)("statusline"),k=async e=>{let t=e.workspace?.project_dir,i=[];for(let e of(t&&(i.push(r.default.join(t,".claude","settings.local.json")),i.push(r.default.join(t,".claude","settings.json"))),i.push(r.default.join(l.default.homedir(),".claude","settings.json")),i))try{let t=await s.default.readFile(e,"utf-8"),i=JSON.parse(t),a=i?.statusLine?.command;if("string"==typeof a&&a.trim())return a}catch{}return null},R=async e=>{let t=e.rate_limits?.five_hour??null,i=e.rate_limits?.seven_day??null;if(!t&&!i)return;let a={ts:Date.now()/1e3,five_hour:t,seven_day:i};try{await s.default.writeFile(d.RATE_LIMITS_FILE,JSON.stringify(a))}catch(e){j.debug({err:e},"failed to write rate-limits.json")}},A=async e=>{let t=(e=>{let t=e.session_id;if(!t)return null;let i=e.context_window,a=i?.current_usage,n=a?(a.input_tokens??0)+(a.cache_creation_input_tokens??0)+(a.cache_read_input_tokens??0):0;return{sessionId:t,transcriptPath:e.transcript_path,inputTokens:i?.total_input_tokens??0,outputTokens:i?.total_output_tokens??0,cost:e.cost?.total_cost_usd??null,currentContextTokens:n,contextWindowSize:i?.context_window_size??0,usedPercentage:i?.used_percentage??null,model:e.model?.display_name??null,exceeds200k:e.exceeds_200k_tokens??!1,receivedAt:Date.now()}})(e);if(!t)return;await y(t.sessionId,t);let i=await w(t.sessionId)??t;try{for(let e of T.values())if(h(e.jsonlPath)===i.sessionId)for(let t of e.connections)b(t,{type:"timeline:stats-update",sessionStats:i})}catch(e){j.debug({err:e},"failed to broadcast session stats")}},E=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 i=e.body??{};await Promise.all([R(i),A(i)]),t.setHeader("Content-Type","text/plain; charset=utf-8");try{let e=await k(i);if(e){let a,n=await (a=JSON.stringify(i),new Promise((t,i)=>{let n=(0,o.spawn)("sh",["-c",e],{stdio:["pipe","pipe","pipe"]}),s="",r="";n.stdout.on("data",e=>{s+=e.toString()}),n.stderr.on("data",e=>{r+=e.toString()}),n.on("error",i),n.on("close",e=>{0!==e&&r&&j.debug({code:e,stderr:r},"user statusLine exited non-zero"),t(s)}),n.stdin.write(a),n.stdin.end()}));return t.status(200).send(n)}}catch(e){j.debug({err:e},"user statusLine failed")}return t.status(204).end()};e.s(["default",0,E],826327);var N=e.i(826327),M=e.i(7031),W=e.i(181927),I=e.i(846432);let $=(0,n.hoist)(N,"default"),q=(0,n.hoist)(N,"config"),O=new a.PagesAPIRouteModule({definition:{kind:i.RouteKind.PAGES_API,page:"/api/status/statusline",pathname:"/api/status/statusline",bundlePath:"",filename:""},userland:N,distDir:".next",relativeProjectDir:""});async function F(e,i,a){a.requestMeta&&(0,I.setRequestMeta)(e,a.requestMeta),O.isDev&&(0,I.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/status/statusline";n=n.replace(/\/index$/,"")||"/";let s=await O.prepare(e,i,{srcPage:n});if(!s){i.statusCode=400,i.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:r,params:l,prerenderManifest:o,routerServerContext:u}=s;try{let t,a=e.method||"GET",s=(0,M.getTracer)(),d=s.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),c=O.instrumentationOnRequestError.bind(O),f=async d=>O.render(e,i,{query:{...r,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:O.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":i.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==W.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 r=e.get("next.route");if(r){let e=`${a} ${r}`;d.setAttributes({"next.route":r,"http.route":r,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",r),t.updateName(e))}else d.updateName(`${a} ${n}`)});p&&d?await f(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(W.BaseServerSpan.handleRequest,{spanName:`${a} ${n}`,kind:M.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},f),void 0,!p))}catch(e){if(O.isDev)throw e;(0,t.sendError)(i,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,q,"default",0,$,"handler",0,F],135992)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_pages-api_00-t8sq.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),l=e.i(814747),i=e.i(446786);let n=l.default.join(i.default.homedir(),".purplemux","cli-token"),o=globalThis;e.s(["verifyCliToken",0,e=>{let i=e.headers["x-pmux-token"];var u="string"==typeof i?i:void 0;if(!u)return!1;let s=(()=>{if(o.__ptCliToken)return o.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(n,"utf-8").trim()||null}catch{return null}})();if(e)return o.__ptCliToken=e,e;let i=(0,t.randomBytes)(32).toString("hex");o.__ptCliToken=i;try{r.default.mkdirSync(l.default.dirname(n),{recursive:!0}),r.default.writeFileSync(n,i,{mode:384})}catch{}return i})();return u.length===s.length&&(0,t.timingSafeEqual)(Buffer.from(u),Buffer.from(s))}])},133446,e=>{"use strict";var t=e.i(814747),r=e.i(446786);let l=t.default.join(r.default.homedir(),".claude","projects");e.s(["isAllowedJsonlPath",0,e=>{let r=t.default.resolve(e);return r.startsWith(l+t.default.sep)&&r.endsWith(".jsonl")}])},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_lib_00fhuqb._.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module.exports=[845994,t=>{"use strict";var e=t.i(924868),a=t.i(814747),n=t.i(446786),l=t.i(254799),i=t.i(666126);(0,t.i(25146).createLogger)("config");let r=a.default.join(n.default.homedir(),".purplemux"),s=a.default.join(r,"config.json"),u=globalThis;u.__ptConfigLock||(u.__ptConfigLock=Promise.resolve());let o=async t=>{let e,a=new Promise(t=>{e=t}),n=u.__ptConfigLock;u.__ptConfigLock=a,await n;try{return await t()}finally{e()}},c=()=>({updatedAt:new Date().toISOString()}),d=async()=>{try{let t=await e.default.readFile(s,"utf-8");return JSON.parse(t)}catch{return null}},f=async t=>{let{updatedAt:a,...n}=t,l=JSON.stringify(n);if(u.__ptConfigContentCache===l)return;t.updatedAt=new Date().toISOString();let r=s+".tmp";try{await e.default.writeFile(r,JSON.stringify(t,null,2),{mode:384}),await e.default.rename(r,s)}catch(t){throw await e.default.unlink(r).catch(()=>{}),t}u.__ptConfigContentCache=l,(0,i.broadcastSync)({type:"config"})},h="scrypt:",p=t=>"string"==typeof t&&t.startsWith(h),w=async t=>{let e=l.default.randomBytes(16),a=await new Promise((a,n)=>{l.default.scrypt(t,e,64,(t,e)=>{t?n(t):a(e)})});return`${h}${e.toString("hex")}:${a.toString("hex")}`},y=async(t,e)=>{if(!p(e))return!1;let[,a,n]=e.split(":"),i=Buffer.from(a,"hex"),r=Buffer.from(n,"hex"),s=await new Promise((e,a)=>{l.default.scrypt(t,i,r.length,(t,n)=>{t?a(t):e(n)})});return l.default.timingSafeEqual(s,r)},m=async()=>await d()??c(),g=async t=>o(async()=>{let e=await d()??c();Object.assign(e,t),await f(e)}),S=async()=>{let t=await d();return!p(t?.authPassword)},P=async()=>{let t=await d();return t?.dangerouslySkipPermissions??!1};t.s(["generateSecret",0,()=>l.default.randomBytes(32).toString("hex"),"getConfig",0,m,"getDangerouslySkipPermissions",0,P,"hashPassword",0,w,"needsSetup",0,S,"updateConfig",0,g,"verifyPassword",0,y])},713915,t=>{"use strict";var e=t.i(233405),a=t.i(924868),n=t.i(446786),l=t.i(814747),i=t.i(224361),r=t.i(597789),s=t.i(965898);let u=(0,i.promisify)(e.execFile),o=null,c=null,d=async()=>{let t=n.default.userInfo().shell||(0,r.defaultShell)();try{let{stdout:e}=await u(t,["-ilc",'echo -n "$PATH"'],{timeout:5e3,env:{...(0,r.buildShellEnv)(),SHELL:t,DISABLE_AUTO_UPDATE:"true",ZSH_TMUX_AUTOSTARTED:"true"}});return e.toString().trim()}catch{return s.PRISTINE_ENV.PATH||""}},f=async()=>o||(c||(c=d().then(t=>(o=t,c=null,t))),c),h=async(t,e,a)=>{try{let n=await f(),{stdout:l}=await u(t,e,{timeout:5e3,env:{...process.env,PATH:n}});return{installed:!0,version:a(l)}}catch{return{installed:!1,version:null}}},p=t=>t.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null,w=[l.default.join(n.default.homedir(),".local","bin")],y=async()=>{for(let t of w)try{return await (0,a.access)(l.default.join(t,"claude")),t}catch{}return null},m=t=>t.installed&&null!==t.version&&parseFloat(t.version)>=2.9,g=async()=>{o=await d();let[t,e,i]=await Promise.all([h("tmux",["-V"],p),h("git",["--version"],p),h("claude",["--version"],p)]),r=(m(t)&&e.installed&&i.installed,i.installed?null:await y()),s=!1;if(i.installed||r)try{await (0,a.access)(l.default.join(n.default.homedir(),".claude")),s=!0}catch{}return{tmux:{...t,compatible:m(t)},git:e,claude:{...i,binaryPath:r,loggedIn:s}}},S=null,P=null,v=null,I=null,A=async()=>v&&Date.now()-v.checkedAt<1e3?v.result:I||(I=g().then(t=>(v={result:t,checkedAt:Date.now()},I=null,t)).catch(t=>{throw I=null,t})),T=async()=>{o=await d();let[t,e,a]=await Promise.all([h("tmux",["-V"],p),h("git",["--version"],p),h("claude",["--version"],p)]);return{tmux:{...t,compatible:m(t)},git:e,claude:a}},j=async()=>S&&Date.now()-S.checkedAt<3e4?S.result:P||(P=T().then(t=>(S={result:t,checkedAt:Date.now()},P=null,t)).catch(t=>{throw P=null,t}));t.s(["getCachedPreflightStatus",0,A,"getCachedRuntimePreflight",0,j,"getShellPath",0,f,"invalidateRuntimeCache",0,()=>{S=null,P=null}])},143511,t=>{"use strict";var e=t.i(924868),a=t.i(522734),n=t.i(814747),l=t.i(446786),i=t.i(233405),r=t.i(224361),s=t.i(713915),u=t.i(544538);let o=(0,r.promisify)(i.execFile),c=n.default.join(l.default.homedir(),".claude"),d=n.default.join(c,"sessions"),f=n.default.join(c,"projects"),h=[n.default.join(l.default.homedir(),".local","bin","claude")],p=t=>{let e=t.replace(/[^a-zA-Z0-9]/g,"-");if(e.length<=200)return e;let a=w(t);return`${e.slice(0,200)}-${a}`},w=t=>{let e=0;for(let a=0;a<t.length;a++)e=(e<<5)-e+t.charCodeAt(a)|0;return Math.abs(e).toString(36)},y=async t=>{try{let{stdout:e}=await o("pgrep",["-P",String(t)]);return e.trim().split("\n").map(t=>parseInt(t,10)).filter(t=>!Number.isNaN(t))}catch{return[]}},m=async t=>{if(u.isLinux)try{return await e.default.readlink(`/proc/${t}/cwd`)}catch{return null}try{let{stdout:e}=await o("lsof",["-a","-p",String(t),"-d","cwd","-Fn"]),a=e.split("\n").find(t=>t.startsWith("n/"));return a?a.slice(1):null}catch{return null}},g=async t=>{for(let e of t)try{let{stdout:t}=await o("ps",["-p",String(e),"-o","args="]),a=t.trim().match(/claude\s+--resume\s+([0-9a-f-]{36})/);if(a){let t=await m(e);return{pid:e,sessionId:a[1],cwd:t}}}catch{continue}return null},S=async t=>{try{let a=await e.default.readFile(t,"utf-8"),n=JSON.parse(a);if(!n.pid||!n.sessionId)return null;return n}catch{return null}},P=async(t,a)=>{let l=n.default.join(t,`${a}.jsonl`);try{return await e.default.access(l),l}catch{return null}},v=async()=>{try{return await o("claude",["--version"],{timeout:5e3,env:{...process.env,PATH:await (0,s.getShellPath)()}}),!0}catch{for(let t of h)try{return await e.default.access(t),!0}catch{}return!1}},I=async(t,e)=>{for(let a of e??await y(t))try{let{stdout:t}=await o("ps",["-p",String(a),"-o","args="]);if(t.trim().includes("claude"))return!0}catch{continue}return!1},A=async(t,a)=>{try{await e.default.access(c)}catch{return{status:await v()?"not-initialized":"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null}}let l=a??await y(t);if(0===l.length)return{status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null};let i=(await Promise.all(l.map(y))).flat(),r=[...l,...i],s=new Set(r);try{for(let t of(await e.default.readdir(d)).filter(t=>t.endsWith(".json"))){let a=await S(n.default.join(d,t));if(!a||!s.has(a.pid))continue;let l="";try{let{stdout:t}=await o("ps",["-p",String(a.pid),"-o","args="]);l=t.trim()}catch{try{await e.default.unlink(n.default.join(d,t))}catch{}continue}if(!l.includes("claude")){try{await e.default.unlink(n.default.join(d,t))}catch{}continue}let i=p(a.cwd),r=n.default.join(f,i),u=await P(r,a.sessionId),c=a.sessionId;if(!u){let t=l.match(/--resume\s+([0-9a-f-]{36})/);if(t){let e=t[1],a=await P(r,e);a&&(u=a,c=e)}}return{status:"running",sessionId:c,jsonlPath:u,pid:a.pid,startedAt:a.startedAt,cwd:a.cwd}}}catch{}let u=await g(r);if(u){let t=u.cwd;if(t){let e=p(t),a=n.default.join(f,e),l=await P(a,u.sessionId);return{status:"running",sessionId:u.sessionId,jsonlPath:l,pid:u.pid,startedAt:null,cwd:t}}}return{status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null}};t.s(["detectActiveSession",0,A,"getChildPids",0,y,"isClaudeRunning",0,I,"toClaudeProjectName",0,p,"watchSessionsDir",0,(t,n,l)=>{let r=null,s=null,u=null,o=null,c=null,f=!1,h=async()=>{let e;!f&&c&&(await (e=c,new Promise(t=>{(0,i.execFile)("ps",["-p",String(e)],e=>{t(!e)})}))||f||(c=null,n(await A(t))))},p=()=>{f||(u&&clearTimeout(u),u=setTimeout(async()=>{if(f)return;let e=await A(t);e.pid&&(c=e.pid),n(e)},200))},w=()=>{if(!f)try{(r=(0,a.watch)(d,p)).on("error",()=>{}),o&&(clearInterval(o),o=null)}catch{o||(o=setInterval(async()=>{if(!f)try{await e.default.access(d),w();let a=await A(t);a.pid&&(c=a.pid),n(a)}catch{}},6e4))}};return w(),s=setInterval(h,1e4),l?.skipInitial||A(t).then(t=>{f||(t.pid&&(c=t.pid),n(t))}),{stop:()=>{f=!0,r&&r.close(),s&&clearInterval(s),u&&clearTimeout(u),o&&clearInterval(o)}}}])},462180,796902,282992,t=>{"use strict";var e=t.i(143511),a=t.i(845994);t.i(924868);var n=t.i(814747),l=t.i(446786),i=t.i(25146);let r=n.default.join(l.default.homedir(),".purplemux"),s=n.default.join(r,"statusline.sh"),u=n.default.join(r,"rate-limits.json"),o=`#!/bin/sh
|
|
2
|
+
PORT_FILE="$HOME/.purplemux/port"
|
|
3
|
+
TOKEN_FILE="$HOME/.purplemux/cli-token"
|
|
4
|
+
[ -f "$PORT_FILE" ] || exit 0
|
|
5
|
+
[ -f "$TOKEN_FILE" ] || exit 0
|
|
6
|
+
PORT=$(cat "$PORT_FILE")
|
|
7
|
+
TOKEN=$(cat "$TOKEN_FILE")
|
|
8
|
+
curl -sf --max-time 2 -X POST \\
|
|
9
|
+
-H 'Content-Type: application/json' \\
|
|
10
|
+
-H "x-pmux-token: \${TOKEN}" \\
|
|
11
|
+
--data-binary @- \\
|
|
12
|
+
"http://localhost:\${PORT}/api/status/statusline" 2>/dev/null || exit 0
|
|
13
|
+
`;t.s(["RATE_LIMITS_FILE",0,u,"STATUSLINE_SCRIPT_CONTENT",0,o,"STATUSLINE_SCRIPT_PATH",0,s],796902),(0,i.createLogger)("hooks");let c=n.default.join(l.default.homedir(),".purplemux"),d=n.default.join(c,"hooks.json");n.default.join(c,"port"),n.default.join(c,"status-hook.sh");var f=t.i(160874);let h=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,p=t=>"string"==typeof t&&h.test(t),w=async t=>{let e=await (0,a.getDangerouslySkipPermissions)(),n=[`--settings ${d}`];return t&&n.push(`--append-system-prompt-file ${(0,f.getClaudePromptPath)(t)}`),e&&n.push("--dangerously-skip-permissions"),n.join(" ")},y=async(t,e)=>{if(!p(t))throw Error(`Invalid session ID format: ${t}`);let a=await w(e);return`claude --resume ${t} ${a}`},m=globalThis;m.__ptAgentProviders||(m.__ptAgentProviders=new Map);let g=m.__ptAgentProviders,S=t=>{g.set(t.id,t)},P=()=>Array.from(g.values());t.s(["getProviderByPanelType",0,t=>{if(!t)return null;for(let e of g.values())if(e.panelType===t)return e;return null},"getProviderByProcessName",0,t=>{for(let e of g.values())if(e.matchesProcess(t))return e;return null},"listProviders",0,P,"registerProvider",0,S],282992),S({id:"claude",displayName:"Claude Code",panelType:"claude-code",matchesProcess:t=>"claude"===t||"node"===t,isValidSessionId:p,detectActiveSession:(t,a)=>(0,e.detectActiveSession)(t,a),isAgentRunning:(t,a)=>(0,e.isClaudeRunning)(t,a),watchSessions:(t,a,n)=>(0,e.watchSessionsDir)(t,a,n),buildResumeCommand:(t,{workspaceId:e})=>y(t,e),buildLaunchCommand:async({workspaceId:t})=>{let e=await w(t);return`claude ${e}`},readSessionId:t=>t.claudeSessionId??null,writeSessionId:(t,e)=>{t.claudeSessionId=e??null},readJsonlPath:t=>t.claudeJsonlPath??null,writeJsonlPath:(t,e)=>{t.claudeJsonlPath=e??null},readSummary:t=>t.claudeSummary??null,writeSummary:(t,e)=>{t.claudeSummary=e??null}});let v={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},I={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},A=async(t,e)=>{let a=P(),n=a.length>0;for(let l of a){let a=await l.detectActiveSession(t,e);if("running"===a.status)return{provider:l,info:a};"not-installed"!==a.status&&(n=!1)}return{provider:null,info:n?I:v}},T=async(t,e)=>{for(let a of P())if(await a.isAgentRunning(t,e))return!0;return!1};t.s(["detectAnyActiveSession",0,A,"isAnyAgentRunning",0,T],462180)}];
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=src_lib_0dvlmi4._.js.map
|