purplemux 0.3.2 → 0.4.2
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 +116 -116
- 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 +7 -7
- package/.next/standalone/.next/server/chunks/[externals]__0s~lw5_._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-vpxlt._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.wdm~p._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.xasox._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0075vnc._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02.ow52._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__023w5uy._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03rse4i._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__048funf._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05le.ev._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05~jgqd._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06kid0d._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07ajdqq._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07fh~7w._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0mky_tj._.js → [root-of-the-server]__08nq4la._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ageh3g._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0atje0b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cejele._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cy47p4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d9yo3_._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e5am-o._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e6z0u6._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0erq9rf._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f-1scw._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f0-oim._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fdh07q._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__00o93bf._.js → [root-of-the-server]__0fe0pqx._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fjtk0d._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g-v44c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gm~y1a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h-9m0e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0i0mb1-._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j3kgjw._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jqcz6h._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lp1y.v._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0m9hms3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mpstz.._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oqbs5g._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pta11j._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q0laz1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qpwsk~._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sgq23a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sisigk._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t27n38._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ts_s1k._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vno7dh._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vroi1-._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wae66j._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0x01z7b._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xgh-_t._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xs6_~.._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y774bl._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y_v9~l._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10v85i5._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__110w2ya._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__11b3nvp._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12_dfe-._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12lg8hi._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12v9yor._.js +3 -0
- package/.next/standalone/.next/server/chunks/_07f-e5d._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0abd-ef._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0naftfn._.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_019~zpv.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_054vaqw.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_05soyh7.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0dag3xq.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0drg5k..js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0qpjud8.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0to2msc.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0uk385d.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0v8pump.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_06lqtoi._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_0bj652.._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05vtngr._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07jm3ld._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__00fyckt._.js → [root-of-the-server]__0fdpmgm._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__02~n2ds._.js → [root-of-the-server]__0hixhy3._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lnsb8q._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ytsvx3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0-0n2jc._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0-w3tj9._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0.asmh_._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0.~7e5x._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0025oot._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0148tmw._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_03.p176._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0y_feze._.js → _03u5alz._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_05enhz-._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_05oyq08._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0-gv~al._.js → _05qk2n5._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_06mfd2z._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_00zzfsm._.js → _072p152._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0.stp0n._.js → _08~3wi.._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_09n7sza._.js +18 -0
- package/.next/standalone/.next/server/chunks/ssr/_0b3mmpo._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_09l7tmm._.js → _0e8bhy5._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_0g4dxt7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0h7bs4u._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_12l2tic._.js → _0injlej._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0k_04fj._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0l_4npy._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_02eucpw._.js → _0mrdl.g._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0ob2rr-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0qzs~4y._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0olu-g8._.js → _0r.fjs0._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{_10dec5o._.js → _0sju65h._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_00cx0p2._.js → _0tk3_d1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0vebac6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0w7x_09._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_053tm~z._.js → _0wrhe~n._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0xnk7ht._.js +18 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0bhsmmv._.js → _0xxqycz._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0kzht5v._.js → _10eoz_a._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0k0r2i-._.js → _10hul60._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_10uebjl._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_11m23bw._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_13s7t5u._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{messages_0k204ao._.js → messages_02_r1om._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{messages_0f3u1ly._.js → messages_0u_y48r._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_de_settings_json_[json]_cjs_0ksu4_w._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_de_timeline_json_[json]_cjs_0_i8-gb._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_en_settings_json_[json]_cjs_0qwl-zt._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_en_timeline_json_[json]_cjs_0a50w3r._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_es_settings_json_[json]_cjs_0ce_kv6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_es_timeline_json_[json]_cjs_07-b7ka._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_fr_settings_json_[json]_cjs_0h_6lba._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_fr_timeline_json_[json]_cjs_045zga0._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ja_settings_json_[json]_cjs_0pg~fls._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ja_timeline_json_[json]_cjs_0iwksd.._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ko_settings_json_[json]_cjs_07xpfc8._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ko_timeline_json_[json]_cjs_03gxaph._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_settings_json_[json]_cjs_0frspzp._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_timeline_json_[json]_cjs_0mhm8bo._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ru_settings_json_[json]_cjs_08ex00.._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ru_timeline_json_[json]_cjs_104t_vy._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_tr_settings_json_[json]_cjs_0piu0da._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_tr_timeline_json_[json]_cjs_11fne8p._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_settings_json_[json]_cjs_0uazwgy._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_timeline_json_[json]_cjs_0g0-bd6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_settings_json_[json]_cjs_09u0c5l._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_timeline_json_[json]_cjs_0b3tm.x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0.l39rf._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_07i.2e~._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_0bbmd88._.js → node_modules_0az5xxz._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0cx6hl6._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_02oar3h._.js → node_modules_0g6n2o4._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0v0j4dl._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0wwbj_z._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0d_1ie5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0ik66ii._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0k730f5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_pages_0edfh6g.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_0n3s0.7._.js → src_components_054lzv8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_components_07a_zfh._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_0gkfyrc._.js → src_components_0_j7p.~._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{src_components_05-kki3._.js → src_components_0dzgkvt._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{src_components_0fb83uz._.js → src_components_0l6f_-1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_components_11nysou._.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_shortcuts_cheat-sheet-dialog_tsx_0i2pbva._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_components_features_stats_session-section_tsx_0imh21c._.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_components_ui_tooltip_tsx_0nba54u._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_use-browser-title_ts_0bw6.cb._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_use-workspace-store_ts_0h40e5c._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +116 -116
- package/.next/standalone/.next/server/middleware.js +1 -1
- package/.next/standalone/.next/server/pages/_app/build-manifest.json +7 -7
- package/.next/standalone/.next/server/pages/_app/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/_app.js +5 -5
- package/.next/standalone/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/_document.js +3 -2
- package/.next/standalone/.next/server/pages/_document.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/_error/build-manifest.json +3 -3
- package/.next/standalone/.next/server/pages/_error/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/_error.js +7 -6
- package/.next/standalone/.next/server/pages/_error.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/auth/login.js +1 -1
- 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-agent.js +2 -2
- package/.next/standalone/.next/server/pages/api/check-agent.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/check-claude.js +2 -2
- package/.next/standalone/.next/server/pages/api/check-claude.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/api-guide.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/api-guide.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/console.js +2 -2
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/console.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/eval.js +2 -2
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/eval.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/network.js +2 -2
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/network.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/screenshot.js +2 -2
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/screenshot.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/url.js +2 -2
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/url.js.nft.json +1 -1
- 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 +2 -2
- 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/codex/launch-args.js +4 -4
- package/.next/standalone/.next/server/pages/api/codex/launch-args.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/codex/launch-command.js +2 -2
- package/.next/standalone/.next/server/pages/api/codex/launch-command.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/codex/sessions.js +2 -2
- package/.next/standalone/.next/server/pages/api/codex/sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/config.js +1 -1
- package/.next/standalone/.next/server/pages/api/config.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/git/branch.js +2 -1
- package/.next/standalone/.next/server/pages/api/git/branch.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/git/status.js +2 -1
- package/.next/standalone/.next/server/pages/api/git/status.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/git/sync.js +2 -1
- package/.next/standalone/.next/server/pages/api/git/sync.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/commit-diff.js +2 -1
- package/.next/standalone/.next/server/pages/api/layout/commit-diff.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/cwd.js +2 -1
- package/.next/standalone/.next/server/pages/api/layout/cwd.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/diff.js +2 -1
- package/.next/standalone/.next/server/pages/api/layout/diff.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/file-content.js +2 -1
- package/.next/standalone/.next/server/pages/api/layout/file-content.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/git-log.js +2 -1
- package/.next/standalone/.next/server/pages/api/layout/git-log.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 +4 -4
- 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 +6 -6
- 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 +2 -2
- package/.next/standalone/.next/server/pages/api/preflight/runtime.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/push/vapid-key.js +1 -1
- package/.next/standalone/.next/server/pages/api/push/vapid-key.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/aggregated.js +3 -3
- package/.next/standalone/.next/server/pages/api/stats/aggregated.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/cache-status.js +2 -2
- package/.next/standalone/.next/server/pages/api/stats/cache-status.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js +2 -2
- package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js +2 -2
- package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js +4 -4
- package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/history.js +4 -4
- package/.next/standalone/.next/server/pages/api/stats/history.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/overview.js +4 -4
- package/.next/standalone/.next/server/pages/api/stats/overview.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/projects.js +3 -3
- package/.next/standalone/.next/server/pages/api/stats/projects.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/sessions.js +3 -3
- package/.next/standalone/.next/server/pages/api/stats/sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/uptime.js +4 -4
- package/.next/standalone/.next/server/pages/api/stats/uptime.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/status/agent-launch.js +4 -4
- package/.next/standalone/.next/server/pages/api/status/agent-launch.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/status/hook.js +5 -5
- package/.next/standalone/.next/server/pages/api/status/hook.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/status/statusline.js +9 -9
- package/.next/standalone/.next/server/pages/api/status/statusline.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js +2 -1
- package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/timeline/sessions.js +2 -2
- package/.next/standalone/.next/server/pages/api/timeline/sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/capture.js +2 -1
- package/.next/standalone/.next/server/pages/api/tmux/capture.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/info.js +2 -1
- package/.next/standalone/.next/server/pages/api/tmux/info.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/permission-options.js +2 -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 +2 -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 +4 -4
- 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 +3 -3
- package/.next/standalone/.next/server/pages/api/tmux/reset.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/send-input.js +2 -1
- package/.next/standalone/.next/server/pages/api/tmux/send-input.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 +3 -3
- 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 +20 -20
- package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/index/react-loadable-manifest.json +12 -12
- package/.next/standalone/.next/server/pages/index.js +19 -18
- 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 +12 -12
- package/.next/standalone/.next/server/pages/login/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/login.js +16 -15
- 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 +20 -20
- package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/reports/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/pages/reports.js +21 -20
- package/.next/standalone/.next/server/pages/reports.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/reset/build-manifest.json +3 -3
- package/.next/standalone/.next/server/pages/reset/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/reset.js +8 -7
- 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 +21 -21
- package/.next/standalone/.next/server/pages/stats/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/stats/react-loadable-manifest.json +15 -15
- package/.next/standalone/.next/server/pages/stats.js +21 -20
- package/.next/standalone/.next/server/pages/stats.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/tools-required/build-manifest.json +7 -7
- package/.next/standalone/.next/server/pages/tools-required/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/tools-required.js +12 -11
- 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 +20 -20
- package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/webview/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/pages/webview.js +21 -20
- 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/static/{pZhcwQ83aP87HDTIzzyJ6 → Fvh2ZScb-GvlCulutSHF4}/_buildManifest.js +8 -8
- package/.next/standalone/.next/static/chunks/0-_m9g0bmuw6r.js +1 -0
- package/.next/standalone/.next/static/chunks/0.sri97ob4xz_.js +1 -0
- package/.next/standalone/.next/static/chunks/0.vz-0q9sjiuw.js +1 -0
- package/.next/standalone/.next/static/chunks/0.wij9w6vcwhg.js +1 -0
- package/.next/standalone/.next/static/chunks/0.~3qhg2-u3ky.js +1 -0
- package/.next/standalone/.next/static/chunks/00oa6ti8pq8c5.js +1 -0
- package/.next/standalone/.next/static/chunks/00ubv7ksa49tb.js +1 -0
- package/.next/standalone/.next/static/chunks/00wzy83e7d7gj.js +24 -0
- package/.next/standalone/.next/static/chunks/{0p-l.y2j.t_~p.js → 034mn8n--pyn6.js} +1 -1
- package/.next/standalone/.next/static/chunks/03eq8u6303wiy.js +1 -0
- package/.next/standalone/.next/static/chunks/{0dp8cx7g1vggf.js → 03jt6vqn-xilm.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0vr33-opwem7e.js → 04wf7.-7.-mpm.js} +1 -1
- package/.next/standalone/.next/static/chunks/05gba103lqp8r.js +1 -0
- package/.next/standalone/.next/static/chunks/07fcrp1t~2ivl.js +1 -0
- package/.next/standalone/.next/static/chunks/{02o84r01jsc.z.js → 07hp_eaak.fq-.js} +1 -1
- package/.next/standalone/.next/static/chunks/07lv2vmm9ayna.js +1 -0
- package/.next/standalone/.next/static/chunks/{07yop4v9xcwb9.js → 07qi73ciivwg_.js} +1 -1
- package/.next/standalone/.next/static/chunks/07vu4hx3.8d.3.js +1 -0
- package/.next/standalone/.next/static/chunks/09-h3tvhahhc~.js +24 -0
- package/.next/standalone/.next/static/chunks/09tnrtb~sgtjh.js +1 -0
- package/.next/standalone/.next/static/chunks/0_0bwcp~9lea8.js +1 -0
- package/.next/standalone/.next/static/chunks/0_ac9op.u-oja.js +5 -0
- package/.next/standalone/.next/static/chunks/{09psmnx8qch_s.js → 0_eqdbfwxb.~r.js} +1 -1
- package/.next/standalone/.next/static/chunks/0_ybvkygns8mh.js +1 -0
- package/.next/standalone/.next/static/chunks/{0ddh4qmi2awdq.js → 0byb_iu6a-~vd.js} +1 -1
- package/.next/standalone/.next/static/chunks/0c79f5oit0rws.js +1 -0
- package/.next/standalone/.next/static/chunks/{0f73mm-~6n8dq.js → 0ci366svlb59q.js} +14 -14
- package/.next/standalone/.next/static/chunks/0cy3p~8fa8p~8.js +1 -0
- package/.next/standalone/.next/static/chunks/0d8s09d-izdbq.js +6 -0
- package/.next/standalone/.next/static/chunks/0dqqxbo0n.jgl.js +1 -0
- package/.next/standalone/.next/static/chunks/0eledkadcprk3.js +1 -0
- package/.next/standalone/.next/static/chunks/0f04ma94_t32g.js +16 -0
- package/.next/standalone/.next/static/chunks/{0zgde2~kd4r.x.js → 0fe99e3vjh08f.js} +1 -1
- package/.next/standalone/.next/static/chunks/0fjl0qhyaiq8_.js +1 -0
- package/.next/standalone/.next/static/chunks/0fq~w9fqllgym.js +25 -0
- package/.next/standalone/.next/static/chunks/0h4_jo8dw7z07.js +1 -0
- package/.next/standalone/.next/static/chunks/0ho64go6.dk2j.js +1 -0
- package/.next/standalone/.next/static/chunks/0i.mswv9.fh.y.js +1 -0
- package/.next/standalone/.next/static/chunks/0jckr4.c_ydck.js +1 -0
- package/.next/standalone/.next/static/chunks/0jfnx~s5fhzop.js +1 -0
- package/.next/standalone/.next/static/chunks/0jlwnzphd~x2n.js +1 -0
- package/.next/standalone/.next/static/chunks/{09vwjd8b2iu9z.js → 0jrvo~4zrssmr.js} +1 -1
- package/.next/standalone/.next/static/chunks/0jux26vr_9f3j.js +16 -0
- package/.next/standalone/.next/static/chunks/{0szl_dovu0hgw.js → 0kbvx8fek6-wx.js} +1 -1
- package/.next/standalone/.next/static/chunks/0kgbmub.~n57_.js +1 -0
- package/.next/standalone/.next/static/chunks/{0-wv6sqgkc5wn.js → 0kmmaeod1s.vw.js} +1 -1
- package/.next/standalone/.next/static/chunks/0ky_fbnkmgw7q.js +1 -0
- package/.next/standalone/.next/static/chunks/0n.6yhpaevnz8.js +5 -0
- package/.next/standalone/.next/static/chunks/0nfea.nmg9qb1.js +1 -0
- package/.next/standalone/.next/static/chunks/{0kduo1cn7.pw0.js → 0nrajy77zpml1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{038s7u_er9zkt.js → 0odkktrw2jut5.js} +1 -1
- package/.next/standalone/.next/static/chunks/0ot3qpr3oci.i.js +1 -0
- package/.next/standalone/.next/static/chunks/0oy0bdczs6jt8.js +1 -0
- package/.next/standalone/.next/static/chunks/0pag.t~kqlyp3.js +1 -0
- package/.next/standalone/.next/static/chunks/0pt89sjdo2ipr.js +1 -0
- package/.next/standalone/.next/static/chunks/{119llmw30g8ci.js → 0qwx.1h21gux4.js} +1 -1
- package/.next/standalone/.next/static/chunks/0rxc9kp0e79gt.js +1 -0
- package/.next/standalone/.next/static/chunks/{0suuptk6vxdav.js → 0s3as241o1mvo.js} +1 -1
- package/.next/standalone/.next/static/chunks/0sk1~xt8d6eoe.js +1 -0
- package/.next/standalone/.next/static/chunks/{04q2v0ev2_m6..js → 0sp1248q.hqf1.js} +14 -14
- package/.next/standalone/.next/static/chunks/0ssj2l353r77p.js +1 -0
- package/.next/standalone/.next/static/chunks/0swujoqiaycd1.js +16 -0
- package/.next/standalone/.next/static/chunks/0sz2qp_r_~kqm.js +1 -0
- package/.next/standalone/.next/static/chunks/0tcl5-wzvdvh5.js +1 -0
- package/.next/standalone/.next/static/chunks/{0laeq9nzminux.js → 0tg_xz8-y12iw.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0nr0sc2w3n.t5.js → 0u0j5g_n8yfug.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0n7jmg60eqx1a.js → 0u0tuq5t1k65o.js} +1 -1
- package/.next/standalone/.next/static/chunks/{09vzrni555ktn.js → 0u27983xn~~l-.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0cir.n19rqu--.js → 0vb_8vnjxy5d5.js} +3 -3
- package/.next/standalone/.next/static/chunks/0vgi6hb2nblyr.js +1 -0
- package/.next/standalone/.next/static/chunks/0vp09ip~b_3vk.js +1 -0
- package/.next/standalone/.next/static/chunks/{0s.jetayn5dov.js → 0w4iuufjlhqgh.js} +1 -1
- package/.next/standalone/.next/static/chunks/0xkgug8yajfut.css +1 -0
- package/.next/standalone/.next/static/chunks/0y-6.52zsn5h_.js +1 -0
- package/.next/standalone/.next/static/chunks/0zjazky.ffn.5.js +1 -0
- package/.next/standalone/.next/static/chunks/{0g3stahwz~vh..js → 0zqs7o6kl6cen.js} +2 -2
- package/.next/standalone/.next/static/chunks/0z~czj2_621fq.js +1 -0
- package/.next/standalone/.next/static/chunks/0~j4u9753jf1d.js +1 -0
- package/.next/standalone/.next/static/chunks/0~ln-rekt-0tf.js +1 -0
- package/.next/standalone/.next/static/chunks/0~nc~.u7n58cn.js +1 -0
- package/.next/standalone/.next/static/chunks/0~np-8bf4t.r-.js +13 -0
- package/.next/standalone/.next/static/chunks/0~nt8sh~v.8xl.js +1 -0
- package/.next/standalone/.next/static/chunks/{0cf9hfx9kzqzb.js → 11qkofozxwb7-.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0-0~b1fbfsoe~.js → 123.1tju3vua2.js} +1 -1
- package/.next/standalone/.next/static/chunks/12euqjbocagwt.js +12 -0
- package/.next/standalone/.next/static/chunks/12jwdr.-.hy1i.js +1 -0
- package/.next/standalone/.next/static/chunks/13o8~8tv2fn~3.js +1 -0
- package/.next/standalone/.next/static/chunks/14l28wdk~4pdq.js +24 -0
- package/.next/standalone/.next/static/chunks/15fxeeh5uenh3.js +1 -0
- package/.next/standalone/.next/static/chunks/15lb7b31.h8mg.js +1 -0
- package/.next/standalone/.next/static/chunks/15t.i9ua4pzb8.js +1 -0
- package/.next/standalone/.next/static/chunks/{10a.wwlnw50l5.js → 16ec1gvsgte06.js} +1 -1
- package/.next/standalone/.next/static/chunks/16eok15c7...d.js +1 -0
- package/.next/standalone/.next/static/chunks/17_b-3tuiu.b3.js +1 -0
- package/.next/standalone/.next/static/chunks/{0~o730huopa91.js → 17_gs~3jl212-.js} +1 -1
- package/.next/standalone/.next/static/chunks/17o5i93-p9y8p.js +1 -0
- package/.next/standalone/.next/static/chunks/180mwv20.t.r5.js +1 -0
- package/.next/standalone/.next/static/chunks/{0nqofghl.17w_.js → 18bw2zz5ejwop.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0heaqdupr4xj6.js → turbopack-02undbvb.95yf.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-14fnzd5yh28gy.js → turbopack-0hhd0k47o3zqx.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0g2bivvnd2gyd.js → turbopack-0npdg9_tz9kge.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0w89gj59tho~b.js → turbopack-0vo-yp2tf_zye.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0rntg0~hh7h.0.js → turbopack-0x9g~5tbkb3z6.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0.6hkxuraykc4.js → turbopack-0ykf3nc1yfrio.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0~gn911-6yqk2.js → turbopack-0yuo~n90_i6mk.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0sk1uk-fkcqdx.js → turbopack-14age6cyn.1v1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0jcfxeuy1ge85.js → turbopack-17_zn5.-e_pwc.js} +1 -1
- package/.next/standalone/messages/de/settings.json +21 -2
- package/.next/standalone/messages/de/timeline.json +2 -2
- package/.next/standalone/messages/en/settings.json +21 -2
- package/.next/standalone/messages/en/timeline.json +2 -2
- package/.next/standalone/messages/es/settings.json +21 -2
- package/.next/standalone/messages/es/timeline.json +2 -2
- package/.next/standalone/messages/fr/settings.json +21 -2
- package/.next/standalone/messages/fr/timeline.json +2 -2
- package/.next/standalone/messages/ja/settings.json +21 -2
- package/.next/standalone/messages/ja/timeline.json +2 -2
- package/.next/standalone/messages/ko/settings.json +21 -2
- package/.next/standalone/messages/ko/timeline.json +2 -2
- package/.next/standalone/messages/pt-BR/settings.json +21 -2
- package/.next/standalone/messages/pt-BR/timeline.json +2 -2
- package/.next/standalone/messages/ru/settings.json +21 -2
- package/.next/standalone/messages/ru/timeline.json +2 -2
- package/.next/standalone/messages/tr/settings.json +21 -2
- package/.next/standalone/messages/tr/timeline.json +2 -2
- package/.next/standalone/messages/zh-CN/settings.json +21 -2
- package/.next/standalone/messages/zh-CN/timeline.json +2 -2
- package/.next/standalone/messages/zh-TW/settings.json +21 -2
- package/.next/standalone/messages/zh-TW/timeline.json +2 -2
- package/.next/standalone/package.json +3 -18
- package/.next/standalone/server.js +1 -1
- package/dist/server.js +72 -37
- package/package.json +3 -18
- package/.next/standalone/.next/server/chunks/[externals]__07eo6bi._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00blz4b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00erel2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00keyoc._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00rusjd._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07d3bxo._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07o3h27._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0a7jyyu._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0an3.o.._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ftuoz8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f~d9ug._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ge78._._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0il~az0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0imsr4v._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j.h25r._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j.iwzl._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jnxiiv._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jzp9~o._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0k-me_v._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l5~4k1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mq5lip._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nh5fcb._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nwq7wo._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nzphpn._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qslqkf._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u_xzjy._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uf.iy5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0v9vm~c._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vdn0s8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vr68v2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xg~7a2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xoflea._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__108dnsu._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12t3f_q._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13e34kx._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0-mzwe.._.js +0 -3
- package/.next/standalone/.next/server/chunks/_00w4xwx._.js +0 -3
- package/.next/standalone/.next/server/chunks/_00xyelm._.js +0 -3
- package/.next/standalone/.next/server/chunks/_019w2er._.js +0 -3
- package/.next/standalone/.next/server/chunks/_01shkub._.js +0 -3
- package/.next/standalone/.next/server/chunks/_048rfcr._.js +0 -3
- package/.next/standalone/.next/server/chunks/_04tsf.p._.js +0 -3
- package/.next/standalone/.next/server/chunks/_04wz5fx._.js +0 -3
- package/.next/standalone/.next/server/chunks/_05xvbu4._.js +0 -3
- package/.next/standalone/.next/server/chunks/_06ntp-s._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0763djt._.js +0 -3
- package/.next/standalone/.next/server/chunks/_07dkduh._.js +0 -3
- package/.next/standalone/.next/server/chunks/_07g1_zx._.js +0 -3
- package/.next/standalone/.next/server/chunks/_08hfr9b._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0_7my__._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0_wofwd._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0f2px04._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0j.srxq._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0py_7vt._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0r3d5qz._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0rh64c3._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0swnrzn._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0w-k~4g._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0y9vgfm._.js +0 -3
- package/.next/standalone/.next/server/chunks/_0zym6f2._.js +0 -3
- package/.next/standalone/.next/server/chunks/_10i3z4~._.js +0 -3
- package/.next/standalone/.next/server/chunks/_13_e4ue._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__023cjc5._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08dxtof._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0glt298._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0-9ezhb._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_00zsk6a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_018tm~n._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_01l~by9._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_02rms4q._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_05bq96_._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_06_8vkn._.js +0 -18
- package/.next/standalone/.next/server/chunks/ssr/_078y4dk._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0_b1pqf._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0fota2a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0hmni4d._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0j87~j9._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0m6flec._.js +0 -18
- package/.next/standalone/.next/server/chunks/ssr/_0nbe6mv._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0o0~1bt._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0pg-q18._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0qov9e_._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0w.1ts8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0w6jc9p._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0xdbgmz._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0z4bg3i._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1289s74._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0_2gaq0._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0ydhwnx._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0~y8-_1._.js +0 -7
- package/.next/standalone/.next/server/chunks/ssr/node_modules_105or.6._.js +0 -7
- package/.next/standalone/.next/server/chunks/ssr/node_modules_1294wzs._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_030gj7p._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_04tdvwp._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0bdox2f._.js +0 -3
- package/.next/standalone/.next/static/chunks/0.4j~sc70rsrv.js +0 -1
- package/.next/standalone/.next/static/chunks/0.p~i94j58w8~.js +0 -1
- package/.next/standalone/.next/static/chunks/0.znxwgo-re2m.js +0 -1
- package/.next/standalone/.next/static/chunks/01.oujz.z9cq..js +0 -1
- package/.next/standalone/.next/static/chunks/0176ysv-agwwx.js +0 -1
- package/.next/standalone/.next/static/chunks/01fkwofcdqa6f.js +0 -1
- package/.next/standalone/.next/static/chunks/031unywm42_xs.js +0 -1
- package/.next/standalone/.next/static/chunks/034iwnjckh0il.js +0 -5
- package/.next/standalone/.next/static/chunks/03s5e91.zrsi_.js +0 -16
- package/.next/standalone/.next/static/chunks/04h2nxywvycry.js +0 -1
- package/.next/standalone/.next/static/chunks/051z~faikiw.t.js +0 -1
- package/.next/standalone/.next/static/chunks/059bbrow.p4tj.js +0 -1
- package/.next/standalone/.next/static/chunks/05tuw5nb50jqc.js +0 -1
- package/.next/standalone/.next/static/chunks/05zk.ks4roh-4.js +0 -24
- package/.next/standalone/.next/static/chunks/075ypo7pvlqvz.js +0 -1
- package/.next/standalone/.next/static/chunks/094_-.5.ue3p4.js +0 -1
- package/.next/standalone/.next/static/chunks/09ntfl7b8vh1y.js +0 -1
- package/.next/standalone/.next/static/chunks/0_7~rgbkmfo_p.js +0 -1
- package/.next/standalone/.next/static/chunks/0_psc1~qmka.m.js +0 -12
- package/.next/standalone/.next/static/chunks/0amz67ga8kcr7.js +0 -1
- package/.next/standalone/.next/static/chunks/0ap~c~__qw2_0.js +0 -25
- package/.next/standalone/.next/static/chunks/0b__~uq5xxl7i.js +0 -1
- package/.next/standalone/.next/static/chunks/0celh22a.~-u6.js +0 -1
- package/.next/standalone/.next/static/chunks/0do_uad33n8hv.js +0 -1
- package/.next/standalone/.next/static/chunks/0dwxj97xm70gv.js +0 -1
- package/.next/standalone/.next/static/chunks/0euxle0n3zjm3.js +0 -1
- package/.next/standalone/.next/static/chunks/0fax5v7rwhm7g.js +0 -6
- package/.next/standalone/.next/static/chunks/0fj1a4qnwy9s3.js +0 -1
- package/.next/standalone/.next/static/chunks/0g6r03ctl6d0y.js +0 -1
- package/.next/standalone/.next/static/chunks/0gfoib7v3q4k_.js +0 -1
- package/.next/standalone/.next/static/chunks/0hrsfwzxhrdg9.js +0 -1
- package/.next/standalone/.next/static/chunks/0jml98og5gb-~.js +0 -1
- package/.next/standalone/.next/static/chunks/0k-8shbo0tie5.js +0 -1
- package/.next/standalone/.next/static/chunks/0kep81gqgj5f5.js +0 -24
- package/.next/standalone/.next/static/chunks/0kriln8d9.mdo.js +0 -1
- package/.next/standalone/.next/static/chunks/0l.88yoxq6tq8.js +0 -24
- package/.next/standalone/.next/static/chunks/0lrjdru2bjp.x.js +0 -1
- package/.next/standalone/.next/static/chunks/0m4185ccd6adw.js +0 -1
- package/.next/standalone/.next/static/chunks/0nm1wy7i1z64_.js +0 -1
- package/.next/standalone/.next/static/chunks/0o1duxjxx_ar8.css +0 -1
- package/.next/standalone/.next/static/chunks/0o24wzcc3lhqj.js +0 -1
- package/.next/standalone/.next/static/chunks/0oh5xnzizgxt1.js +0 -1
- package/.next/standalone/.next/static/chunks/0oj36.r5qgu_7.js +0 -1
- package/.next/standalone/.next/static/chunks/0p2m6i37_wprv.js +0 -1
- package/.next/standalone/.next/static/chunks/0pojknlc_-2a2.js +0 -1
- package/.next/standalone/.next/static/chunks/0pyrh4zs52aog.js +0 -1
- package/.next/standalone/.next/static/chunks/0qz-agdkp9v1q.js +0 -16
- package/.next/standalone/.next/static/chunks/0t5w4x7owhfbe.js +0 -1
- package/.next/standalone/.next/static/chunks/0tmyyb67fvkg1.js +0 -1
- package/.next/standalone/.next/static/chunks/0un7lj6-.1ad3.js +0 -5
- package/.next/standalone/.next/static/chunks/0v1teptb865rv.js +0 -1
- package/.next/standalone/.next/static/chunks/0vdw2~trmzg71.js +0 -1
- package/.next/standalone/.next/static/chunks/0x2nrv0y7ik9o.js +0 -1
- package/.next/standalone/.next/static/chunks/0x9prsaq~w.t-.js +0 -1
- package/.next/standalone/.next/static/chunks/0xa1.t1vj1mw0.js +0 -1
- package/.next/standalone/.next/static/chunks/0xfp8sfehtui9.js +0 -1
- package/.next/standalone/.next/static/chunks/0y.tsl2t9e.n..js +0 -1
- package/.next/standalone/.next/static/chunks/0zj5rfbadmr-8.js +0 -1
- package/.next/standalone/.next/static/chunks/0zkmymf6bhpsj.js +0 -1
- package/.next/standalone/.next/static/chunks/0~-0t4i~p3pcf.js +0 -1
- package/.next/standalone/.next/static/chunks/0~2x5.s5syxpx.js +0 -1
- package/.next/standalone/.next/static/chunks/12f3vk2rnkb8u.js +0 -13
- package/.next/standalone/.next/static/chunks/14kx686__yikg.js +0 -1
- package/.next/standalone/.next/static/chunks/14vposxx99rq4.js +0 -1
- package/.next/standalone/.next/static/chunks/1617_g18pxhs7.js +0 -1
- package/.next/standalone/.next/static/chunks/166~a4sl8v944.js +0 -1
- package/.next/standalone/.next/static/chunks/168.xhj-0lt8a.js +0 -16
- package/.next/standalone/.next/static/chunks/179vwj~zm1gya.js +0 -1
- package/.next/standalone/.next/static/chunks/17d9mnk-k8oqi.js +0 -1
- package/.next/standalone/.next/static/chunks/17z_vu-9k57ay.js +0 -1
- /package/.next/standalone/.next/static/{pZhcwQ83aP87HDTIzzyJ6 → Fvh2ZScb-GvlCulutSHF4}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{pZhcwQ83aP87HDTIzzyJ6 → Fvh2ZScb-GvlCulutSHF4}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[n,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??n,t}])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},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,965898,597789,333184,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),i=e.i(814747),n=e.i(44014);let s=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(s?JSON.parse(s):{...process.env});s||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),e.s(["PRISTINE_ENV",0,l],965898);let o=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"]),u=["LC_"],c=e=>o.has(e)||u.some(t=>e.startsWith(t)),p={TERM:"xterm-256color",COLORTERM:"truecolor"},d=()=>{let e={};for(let[t,r]of Object.entries(l))void 0!==r&&c(t)&&(e[t]=r);return{...e,...p}},m=e=>`'${e.replace(/'/g,"'\\''")}'`,f=()=>l.SHELL||"/bin/bash",y=()=>{let e=Object.entries(d()).map(([e,t])=>`${e}=${m(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${m(f())} -l`};e.s(["buildShellEnv",0,()=>d(),"buildShellLaunchCommand",0,y,"defaultShell",0,f],597789);var w=e.i(25146);process.platform;let h="linux"===process.platform,g=(0,a.promisify)(t.execFile),S=async e=>{try{let{stdout:t}=await g("pgrep",["-P",String(e)]);return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},x=async e=>{if(h)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await g("lsof",["-a","-p",String(e),"-d","cwd","-Fn"]),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},_=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","args="],t?.timeoutMs?{timeout:t.timeoutMs}:{});return r.trim()}catch{return null}},L=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","lstart="],t?.timeoutMs?{timeout:t.timeoutMs}:{}),a=Date.parse(r.trim().replace(/\s+/g," "));return Number.isFinite(a)?a:null}catch{return null}};e.s(["getChildPids",0,S,"getProcessArgs",0,_,"getProcessCwd",0,x,"getProcessStartTimeMs",0,L,"isProcessRunning",0,e=>new Promise(r=>{(0,t.execFile)("ps",["-p",String(e)],e=>{r(!e)})}),"parseSemanticVersion",0,e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null],333184);let v=(0,w.createLogger)("terminal"),P=(0,a.promisify)(t.execFile),E="purple",N=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),I=async()=>{try{let{stdout:e}=await P("tmux",["-L",E,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},b=async(e,t,r,a)=>{let i=y();await P("tmux",["-u","-L",E,"-f",N,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),i],{timeout:5e3,cwd:a||l.HOME||"/"}),await j(),v.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},M=e=>new Promise(t=>setTimeout(t,e)),$=async e=>{if(!await T(e))return;v.debug(`killSession start: ${e}`);let t=await O(e);if(t)try{v.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await T(e))return void v.debug(`killSession done (SIGTERM): ${e}`);await M(200)}if(v.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{v.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await T(e))return void v.debug(`killSession done (SIGKILL): ${e}`);await M(200)}v.warn(`tmux session still alive after kill: ${e}`)},R=async e=>{let t=l.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}},T=async e=>{try{return await P("tmux",["-L",E,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},k=async()=>{},C=async()=>{await k();let e=await I();e.length>0&&e.forEach(e=>{v.debug(`existing tmux session found: ${e}`)})},A=async e=>{if(h)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}},q=async e=>{let t=await O(e);if(t){let e=await A(t);if(e)return e}try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},O=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},j=async()=>{try{await P("tmux",["-L",E,"source-file",N],{timeout:5e3})}catch{}},D=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},H=async()=>{try{let{stdout:e}=await P("tmux",["-L",E,"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}},U=new Set(["bash","zsh","fish","sh","dash"]),G=async e=>{let t=await D(e);return t?{isSafe:U.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},F=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},K=async e=>{await P("tmux",["-L",E,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},W=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},V=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t],{timeout:5e3}),await M(50),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3})},X=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t],{timeout:5e3})},B=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3})},Y=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"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}}},z=new Set(["node","python","python3","ruby","perl","deno","bun"]),J=async()=>{try{await P("tmux",["-L",E,"kill-server"],{timeout:5e3}),v.debug("tmux server killed")}catch{}},Z=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},Q=async(e,t)=>{try{let{stdout:r}=await P("tmux",["-L",E,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},ee=async e=>{if(h){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[]}},et=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await ee(r);if(0===e.length)break;t.push(...e),r=e}return t},er=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[]}},ea=async e=>{let t=await et(e);if(0===t.length)return[];if(h)return er(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[]}},ei=async e=>{let t=await O(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 a=await _(r,{timeoutMs:5e3});if(!a)return null;let n=a.split(/\s+/);if(0===n.length)return a;if(n[0]=i.default.basename(n[0]),z.has(n[0])&&n.length>1){let e=i.default.basename(n[1]).replace(/\.(c|m)?js$/,"");n.splice(0,2,e)}return n.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,U,"applyConfig",0,j,"capturePaneContent",0,Z,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,G,"createSession",0,b,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,K,"getAllPanesInfo",0,H,"getLastCommand",0,ei,"getListeningPorts",0,ea,"getPaneCurrentCommand",0,D,"getPaneDetailInfo",0,Y,"getPaneTitle",0,F,"getSessionCwd",0,q,"getSessionPanePid",0,O,"hasSession",0,T,"killServer",0,J,"killSession",0,$,"listSessions",0,I,"resolveExistingDir",0,R,"scanSessions",0,C,"sendBracketedPaste",0,B,"sendKeys",0,W,"sendKeysSeparated",0,V,"sendRawKeys",0,X,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},891870,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),n=e.i(459015);let s=(0,e.i(25146).createLogger)("layout"),l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.session;if(!r)return t.status(400).json({error:"session parameter required"});if(!await (0,n.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let[e,a]=await Promise.all([(0,n.getSessionCwd)(r),(0,n.getLastCommand)(r)]);if(!e)return t.status(500).json({error:"Failed to get CWD"});return t.status(200).json({cwd:e,lastCommand:a})}catch(e){return s.error(`cwd query failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to get CWD"})}};e.s(["default",0,l],18541);var o=e.i(18541),u=e.i(7031),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/layout/cwd",pathname:"/api/layout/cwd",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function y(e,r,a){a.requestMeta&&(0,p.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/cwd";i=i.replace(/\/index$/,"")||"/";let n=await f.prepare(e,r,{srcPage:i});if(!n){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:d}=n;try{let t,a=e.method||"GET",n=(0,u.getTracer)(),p=n.getActiveScopeSpan(),m=!!(null==d?void 0:d.isWrappedByNextServer),y=f.instrumentationOnRequestError.bind(f),w=async u=>f.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:f.isDev,page:"/api/layout/cwd",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>y(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 w(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}},w),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,y],891870)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__07o3h27._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let a=t.__ptAgentProviders;e.s(["getProvider",0,e=>a.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of a.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let r of a.values())if(r.matchesProcess(e,t))return r;return null},"listProviders",0,()=>Array.from(a.values()),"registerProvider",0,e=>{a.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),a=e.i(814747),r=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),l=e.i(666126),n=e.i(825265),d=e.i(804767),u=e.i(282992);let c=(0,o.createLogger)("workspace"),p="Workspace ",w=async e=>{let t=[];for(let a of(0,u.listProviders)()){let r=a.writeWorkspacePrompt?.(e);r&&t.push(r)}await Promise.all(t)},f=a.default.join(r.default.homedir(),".purplemux"),y=a.default.join(f,"workspaces.json"),g=a.default.join(f,"layout.json"),h=a.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,a=new Promise(e=>{t=e}),r=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=a,await r;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),I=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let a=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!a.has(e.groupId)&&(e.groupId=null);return t}catch{c.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},W=async e=>{let a;a=b(e),e.workspaces=((e,t)=>{let a=new Set(t.map(e=>e.id)),r=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&a.has(e)){let a=r.get(e)??[];a.push(t),r.set(e,a)}else i.push(t)}let s=[];for(let e of t){let t=r.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,a);let{workspaces:r,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n}=e,d=JSON.stringify({workspaces:r,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(m.__purplemuxWorkspacesContentCache===d)return;e.updatedAt=new Date().toISOString();let u=y+".tmp";try{await t.default.writeFile(u,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(u,y)}catch(e){throw await t.default.unlink(u).catch(()=>{}),e}m.__purplemuxWorkspacesContentCache=d,(0,l.broadcastSync)({type:"workspace"})},S=async()=>{let e=await (0,n.readLayoutFile)(g);if(!e)return null;let a="ws-default";await t.default.mkdir((0,n.resolveLayoutDir)(a),{recursive:!0}),await (0,n.writeLayoutFile)(e,(0,n.resolveLayoutFile)(a));let i={workspaces:[{id:a,name:"default",directories:[r.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await W(i),c.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},x=async()=>{try{let e=await t.default.readFile(h,"utf-8"),a=JSON.parse(e);if(!Array.isArray(a.tabs)||0===a.tabs.length)return null;let r=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:r,tabs:a.tabs,activeTabId:a.activeTabId??null},activePaneId:r,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return c.info("tabs.json → layout.json migration complete"),await S()}catch{return null}},P=async()=>{await t.default.mkdir(a.default.join(f,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await S():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await x())),!e){let t=k();await W(t),e=t,c.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let r=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,n.resolveLayoutFile)(t.id),a=await (0,n.readLayoutFile)(e);if(!a){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),a=await (0,n.createDefaultLayout)(t.id,t.directories[0]),await (0,n.writeLayoutFile)(a,e);continue}let i=(0,d.collectAllTabs)(a.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=r.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,n.crossCheckLayout)(a,o,t.id,t.directories[0])&&await (0,n.writeLayoutFile)(a,e)}catch(e){c.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},$=async()=>{let e=await I();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},A=async()=>{let e=await I();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},_=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},j=async(e,a,r)=>v(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await I()??k(),l=`ws-${(0,i.nanoid)(6)}`,d=a?.trim()||(e=>{let t=0;for(let a of e)if(a.name.startsWith(p)){let e=parseInt(a.name.slice(p.length),10);e>t&&(t=e)}return`${p}${t+1}`})(o.workspaces),u=await (0,n.createDefaultLayout)(l,e,r);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(u,(0,n.resolveLayoutFile)(l));let f={id:l,name:d,directories:[e]};return o.workspaces.push(f),await W(o),await w(f),c.debug(`Created: ${l} (${d}, ${e})`),f}),L=async e=>v(async()=>{let t=await I()??k(),a=t.workspaces.findIndex(t=>t.id===e);if(-1===a)return!1;let r=t.workspaces[a],i=await (0,n.readLayoutFile)((0,n.resolveLayoutFile)(e));if(i)for(let e of(0,d.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,n.removeLayoutFile)(e)}catch{}return t.workspaces.splice(a,1),await W(t),c.info(`Deleted: ${e} (${r.name})`),!0}),D=async(e,t)=>v(async()=>{let a=await I();if(!a)return null;let r=a.workspaces.find(t=>t.id===e);return r?(r.name=t,await W(a),await w(r),c.debug(`Renamed: ${e} → "${t}"`),{...r}):null}),C=async e=>v(async()=>{let t=await I()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await W(t)}),F=async(e,t)=>v(async()=>{let a=await I();if(!a)return;let r=a.workspaces.find(t=>t.id===e);r&&JSON.stringify(r.directories)!==JSON.stringify(t)&&(r.directories=t,await W(a),await w(r))}),N=async e=>v(async()=>{let t=await I()??k(),a=new Map(t.workspaces.map(e=>[e.id,e])),r=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=a.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&r.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await W(t),!0)}),R=async e=>v(async()=>{let t=await I()??k(),a=b(t),r=e.trim()||`Group ${a.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:r,collapsed:!1};return a.push(s),await W(t),c.debug(`Group created: ${s.id} (${s.name})`),s}),E=async(e,t)=>v(async()=>{let a=await I();if(!a)return null;let r=(a.groups??[]).find(t=>t.id===e);if(!r)return null;let i=t.trim();return i?(r.name=i,await W(a),{...r}):r}),O=async(e,t)=>v(async()=>{let a=await I();if(!a)return!1;let r=(a.groups??[]).find(t=>t.id===e);return!!r&&(r.collapsed===t||(r.collapsed=t,await W(a),!0))}),T=async e=>v(async()=>{let t=await I();if(!t)return!1;let a=b(t),r=a.findIndex(t=>t.id===e);if(-1===r)return!1;for(let a of t.workspaces)a.groupId===e&&(a.groupId=null);return a.splice(r,1),await W(t),c.info(`Group ungrouped: ${e}`),!0}),q=async e=>v(async()=>{let t=await I();if(!t)return!1;let a=b(t),r=new Map(a.map(e=>[e.id,e])),i=[];for(let t of e){let e=r.get(t);if(!e)return!1;i.push(e)}return i.length===a.length&&(t.groups=i,await W(t),!0)}),G=async(e,t)=>v(async()=>{let a=await I();if(!a)return!1;let r=a.workspaces.find(t=>t.id===e);if(!r)return!1;let i=new Set((a.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(r.groupId??null)===s||(r.groupId=s,await W(a),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:a.default.basename(e)}};e.s(["createGroup",0,R,"createWorkspace",0,j,"deleteWorkspace",0,L,"getActiveWorkspaceId",0,A,"getWorkspaceById",0,_,"getWorkspaces",0,$,"initWorkspaceStore",0,P,"renameGroup",0,E,"renameWorkspace",0,D,"reorderGroups",0,q,"reorderWorkspaces",0,N,"setGroupCollapsed",0,O,"setWorkspaceGroup",0,G,"ungroupGroup",0,T,"updateActive",0,C,"updateWorkspaceDirectories",0,F,"validateDirectory",0,M],322429)},319668,(e,t,a)=>{t.exports=e.x("readline",()=>require("readline"))},824046,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(751905),o=e.i(322429);let l=(0,e.i(25146).createLogger)("codex-launch-args"),n=e=>"string"==typeof e&&e.trim()?e.trim():null,d=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let a=e.body,r=n(a?.workspaceId)??await (0,o.getActiveWorkspaceId)(),i=n(a?.resumeSessionId)??void 0;try{let e=await (0,s.buildCodexRuntimeArgs)(r??void 0,i);return t.status(200).json({args:e})}catch(e){return l.error(`codex launch args build failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to build Codex launch args"})}};e.s(["default",0,d],239779);var u=e.i(239779),c=e.i(7031),p=e.i(181927),w=e.i(846432);let f=(0,i.hoist)(u,"default"),y=(0,i.hoist)(u,"config"),g=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/codex/launch-args",pathname:"/api/codex/launch-args",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function h(e,a,r){r.requestMeta&&(0,w.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,w.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/codex/launch-args";i=i.replace(/\/index$/,"")||"/";let s=await g.prepare(e,a,{srcPage:i});if(!s){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:o,params:l,prerenderManifest:n,routerServerContext:d}=s;try{let t,r=e.method||"GET",s=(0,c.getTracer)(),u=s.getActiveScopeSpan(),w=!!(null==d?void 0:d.isWrappedByNextServer),f=g.instrumentationOnRequestError.bind(g),y=async u=>g.render(e,a,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:g.isDev,page:"/api/codex/launch-args",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.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=`${r} ${o}`;u.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",o),t.updateName(e))}else u.updateName(`${r} ${i}`)});w&&u?await y(u):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:c.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},y),void 0,!w))}catch(e){if(g.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,y,"default",0,f,"handler",0,h],824046)},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__0a7jyyu._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),l=e.i(666126),n=e.i(825265),u=e.i(804767),d=e.i(282992);let c=(0,o.createLogger)("workspace"),p="Workspace ",f=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},w=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(w,"workspaces.json"),g=r.default.join(w,"layout.json"),v=r.default.join(w,"tabs.json"),h=globalThis;h.__purplemuxWorkspaceLock||(h.__purplemuxWorkspaceLock=Promise.resolve());let m=async e=>{let t,r=new Promise(e=>{t=e}),a=h.__purplemuxWorkspaceLock;h.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),I=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{c.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},S=async e=>{let r;r=b(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else i.push(t)}let s=[];for(let e of t){let t=a.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,r);let{workspaces:a,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(h.__purplemuxWorkspacesContentCache===u)return;e.updatedAt=new Date().toISOString();let d=y+".tmp";try{await t.default.writeFile(d,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(d,y)}catch(e){throw await t.default.unlink(d).catch(()=>{}),e}h.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},P=async()=>{let e=await (0,n.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,n.resolveLayoutDir)(r),{recursive:!0}),await (0,n.writeLayoutFile)(e,(0,n.resolveLayoutFile)(r));let i={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await S(i),c.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},W=async()=>{try{let e=await t.default.readFile(v,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return c.info("tabs.json → layout.json migration complete"),await P()}catch{return null}},_=async()=>{await t.default.mkdir(r.default.join(w,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await P():await t.default.access(v).then(()=>!0).catch(()=>!1)&&(e=await W())),!e){let t=k();await S(t),e=t,c.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,n.resolveLayoutFile)(t.id),r=await (0,n.readLayoutFile)(e);if(!r){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,n.createDefaultLayout)(t.id,t.directories[0]),await (0,n.writeLayoutFile)(r,e);continue}let i=(0,u.collectAllTabs)(r.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=a.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,n.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,n.writeLayoutFile)(r,e)}catch(e){c.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},j=async()=>{let e=await I();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},x=async()=>{let e=await I();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},A=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},T=async(e,r,a)=>m(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await I()??k(),l=`ws-${(0,i.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(p)){let e=parseInt(r.name.slice(p.length),10);e>t&&(t=e)}return`${p}${t+1}`})(o.workspaces),d=await (0,n.createDefaultLayout)(l,e,a);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(d,(0,n.resolveLayoutFile)(l));let w={id:l,name:u,directories:[e]};return o.workspaces.push(w),await S(o),await f(w),c.debug(`Created: ${l} (${u}, ${e})`),w}),$=async e=>m(async()=>{let t=await I()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,n.readLayoutFile)((0,n.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,n.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await S(t),c.info(`Deleted: ${e} (${a.name})`),!0}),C=async(e,t)=>m(async()=>{let r=await I();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await S(r),await f(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),F=async e=>m(async()=>{let t=await I()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await S(t)}),L=async(e,t)=>m(async()=>{let r=await I();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await S(r),await f(a))}),D=async e=>m(async()=>{let t=await I()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await S(t),!0)}),q=async e=>m(async()=>{let t=await I()??k(),r=b(t),a=e.trim()||`Group ${r.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:a,collapsed:!1};return r.push(s),await S(t),c.debug(`Group created: ${s.id} (${s.name})`),s}),N=async(e,t)=>m(async()=>{let r=await I();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let i=t.trim();return i?(a.name=i,await S(r),{...a}):a}),E=async(e,t)=>m(async()=>{let r=await I();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await S(r),!0))}),B=async e=>m(async()=>{let t=await I();if(!t)return!1;let r=b(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await S(t),c.info(`Group ungrouped: ${e}`),!0}),R=async e=>m(async()=>{let t=await I();if(!t)return!1;let r=b(t),a=new Map(r.map(e=>[e.id,e])),i=[];for(let t of e){let e=a.get(t);if(!e)return!1;i.push(e)}return i.length===r.length&&(t.groups=i,await S(t),!0)}),G=async(e,t)=>m(async()=>{let r=await I();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let i=new Set((r.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(a.groupId??null)===s||(a.groupId=s,await S(r),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,q,"createWorkspace",0,T,"deleteWorkspace",0,$,"getActiveWorkspaceId",0,x,"getWorkspaceById",0,A,"getWorkspaces",0,j,"initWorkspaceStore",0,_,"renameGroup",0,N,"renameWorkspace",0,C,"reorderGroups",0,R,"reorderWorkspaces",0,D,"setGroupCollapsed",0,E,"setWorkspaceGroup",0,G,"ungroupGroup",0,B,"updateActive",0,F,"updateWorkspaceDirectories",0,L,"validateDirectory",0,M],322429)},319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},853932,e=>{"use strict";var t=e.i(282992);let r={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},a={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},i=async(e,i)=>{let s=(0,t.listProviders)(),o=s.length>0;for(let t of s){let r=await t.detectActiveSession(e,i);if("running"===r.status)return{provider:t,info:r};"not-installed"!==r.status&&(o=!1)}return{provider:null,info:o?a:r}};e.s(["detectAnyActiveSession",0,i])},462180,e=>{"use strict";var t=e.i(798415),r=e.i(751905),a=e.i(282992);e.i(853932),(0,a.registerProvider)(t.claudeProvider),(0,a.registerProvider)(r.codexProvider),e.s([])},871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),a=e.i(814747),i=e.i(446786);let s=a.default.join(i.default.homedir(),".purplemux","cli-token"),o=globalThis;e.s(["verifyCliToken",0,e=>{let i=e.headers["x-pmux-token"];var l="string"==typeof i?i:void 0;if(!l)return!1;let n=(()=>{if(o.__ptCliToken)return o.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(s,"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(a.default.dirname(s),{recursive:!0}),r.default.writeFileSync(s,i,{mode:384})}catch{}return i})();return l.length===n.length&&(0,t.timingSafeEqual)(Buffer.from(l),Buffer.from(n))}])},200523,e=>{"use strict";var t=e.i(825265),r=e.i(804767),a=e.i(322429),i=e.i(871911);let s=async(e,i)=>{if(!await (0,a.getWorkspaceById)(e))return null;let s=await (0,t.getLayout)(e);for(let t of(0,r.collectPanes)(s.root)){let r=t.tabs.find(e=>e.id===i);if(r)return{workspaceId:e,paneId:t.id,tab:r}}return null},o=async e=>{let a=await (0,t.getLayout)(e);return(0,r.getFirstPaneId)(a.root)||null},l=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 o=e.query.tabId,l="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!l)return void t.status(400).json({error:"workspaceId is required"});let n=await s(l,o);if(!n)return void t.status(404).json({error:"Tab not found"});if("web-browser"!==n.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:o,bridge:u}):t.status(503).json({error:"Browser bridge unavailable (Electron-only feature)"})};e.s(["findTab",0,s,"resolveFirstPaneId",0,o,"withBrowserTab",0,l],200523)},928818,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(871911),o=e.i(200523),l=e.i(459015);e.i(462180);var n=e.i(282992);let u=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});if(!(0,s.verifyCliToken)(e))return t.status(403).json({error:"Forbidden"});let r=e.query.tabId,a="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!a)return t.status(400).json({error:"workspaceId is required"});let i=await (0,o.findTab)(a,r);if(!i)return t.status(404).json({error:"Tab not found"});let u=(0,n.getProviderByPanelType)(i.tab.panelType),d=u?.readSessionId(i.tab)??null;if(!await (0,l.hasSession)(i.tab.sessionName))return t.status(200).json({tabId:r,workspaceId:a,alive:!1,agentProviderId:u?.id??null,agentSessionId:d,claudeSessionId:d});let c=await (0,l.getPaneCurrentCommand)(i.tab.sessionName);return t.status(200).json({tabId:r,workspaceId:a,alive:!0,command:c,cliState:i.tab.cliState??null,agentProviderId:u?.id??null,agentSessionId:d,claudeSessionId:d})};e.s(["default",0,u],968326);var d=e.i(968326),c=e.i(7031),p=e.i(181927),f=e.i(846432);let w=(0,i.hoist)(d,"default"),y=(0,i.hoist)(d,"config"),g=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/status",pathname:"/api/cli/tabs/[tabId]/status",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function v(e,r,a){a.requestMeta&&(0,f.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/status";i=i.replace(/\/index$/,"")||"/";let s=await g.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:o,params:l,prerenderManifest:n,routerServerContext:u}=s;try{let t,a=e.method||"GET",s=(0,c.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==u?void 0:u.isWrappedByNextServer),w=g.instrumentationOnRequestError.bind(g),y=async d=>g.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:g.isDev,page:"/api/cli/tabs/[tabId]/status",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>w(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.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=`${a} ${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(`${a} ${i}`)});f&&d?await y(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:c.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!f))}catch(e){if(g.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,w,"handler",0,v],928818)},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__0an3.o.._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let n=r.default.join(a.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[i,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(n,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??i,t}])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},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,965898,597789,333184,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),n=e.i(814747),i=e.i(44014);let s=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(s?JSON.parse(s):{...process.env});s||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),e.s(["PRISTINE_ENV",0,l],965898);let o=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"]),u=["LC_"],c=e=>o.has(e)||u.some(t=>e.startsWith(t)),p={TERM:"xterm-256color",COLORTERM:"truecolor"},d=()=>{let e={};for(let[t,r]of Object.entries(l))void 0!==r&&c(t)&&(e[t]=r);return{...e,...p}},m=e=>`'${e.replace(/'/g,"'\\''")}'`,f=()=>l.SHELL||"/bin/bash",h=()=>{let e=Object.entries(d()).map(([e,t])=>`${e}=${m(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${m(f())} -l`};e.s(["buildShellEnv",0,()=>d(),"buildShellLaunchCommand",0,h,"defaultShell",0,f],597789);var y=e.i(25146);process.platform;let w="linux"===process.platform,g=(0,a.promisify)(t.execFile),S=async e=>{try{let{stdout:t}=await g("pgrep",["-P",String(e)]);return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},x=async e=>{if(w)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await g("lsof",["-a","-p",String(e),"-d","cwd","-Fn"]),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},_=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","args="],t?.timeoutMs?{timeout:t.timeoutMs}:{});return r.trim()}catch{return null}},L=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","lstart="],t?.timeoutMs?{timeout:t.timeoutMs}:{}),a=Date.parse(r.trim().replace(/\s+/g," "));return Number.isFinite(a)?a:null}catch{return null}};e.s(["getChildPids",0,S,"getProcessArgs",0,_,"getProcessCwd",0,x,"getProcessStartTimeMs",0,L,"isProcessRunning",0,e=>new Promise(r=>{(0,t.execFile)("ps",["-p",String(e)],e=>{r(!e)})}),"parseSemanticVersion",0,e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null],333184);let v=(0,y.createLogger)("terminal"),P=(0,a.promisify)(t.execFile),E="purple",N=n.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),I=async()=>{try{let{stdout:e}=await P("tmux",["-L",E,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},b=async(e,t,r,a)=>{let n=h();await P("tmux",["-u","-L",E,"-f",N,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),n],{timeout:5e3,cwd:a||l.HOME||"/"}),await j(),v.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},M=e=>new Promise(t=>setTimeout(t,e)),$=async e=>{if(!await T(e))return;v.debug(`killSession start: ${e}`);let t=await O(e);if(t)try{v.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await T(e))return void v.debug(`killSession done (SIGTERM): ${e}`);await M(200)}if(v.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{v.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await T(e))return void v.debug(`killSession done (SIGKILL): ${e}`);await M(200)}v.warn(`tmux session still alive after kill: ${e}`)},R=async e=>{let t=l.HOME||"/";if(!e)return t;let a=e;for(;;){try{if((await r.default.stat(a)).isDirectory())return a}catch{}let e=n.default.dirname(a);if(e===a)return t;a=e}},T=async e=>{try{return await P("tmux",["-L",E,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},k=async()=>{},A=async()=>{await k();let e=await I();e.length>0&&e.forEach(e=>{v.debug(`existing tmux session found: ${e}`)})},C=async e=>{if(w)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}},q=async e=>{let t=await O(e);if(t){let e=await C(t);if(e)return e}try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},O=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},j=async()=>{try{await P("tmux",["-L",E,"source-file",N],{timeout:5e3})}catch{}},D=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},H=async()=>{try{let{stdout:e}=await P("tmux",["-L",E,"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}},U=new Set(["bash","zsh","fish","sh","dash"]),G=async e=>{let t=await D(e);return t?{isSafe:U.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},F=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},K=async e=>{await P("tmux",["-L",E,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},V=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},X=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t],{timeout:5e3}),await M(50),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3})},W=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t],{timeout:5e3})},B=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3})},Y=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"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}}},z=new Set(["node","python","python3","ruby","perl","deno","bun"]),J=async()=>{try{await P("tmux",["-L",E,"kill-server"],{timeout:5e3}),v.debug("tmux server killed")}catch{}},Z=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},Q=async(e,t)=>{try{let{stdout:r}=await P("tmux",["-L",E,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},ee=async e=>{if(w){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[]}},et=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await ee(r);if(0===e.length)break;t.push(...e),r=e}return t},er=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[]}},ea=async e=>{let t=await et(e);if(0===t.length)return[];if(w)return er(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[]}},en=async e=>{let t=await O(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 a=await _(r,{timeoutMs:5e3});if(!a)return null;let i=a.split(/\s+/);if(0===i.length)return a;if(i[0]=n.default.basename(i[0]),z.has(i[0])&&i.length>1){let e=n.default.basename(i[1]).replace(/\.(c|m)?js$/,"");i.splice(0,2,e)}return i.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,U,"applyConfig",0,j,"capturePaneContent",0,Z,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,G,"createSession",0,b,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,K,"getAllPanesInfo",0,H,"getLastCommand",0,en,"getListeningPorts",0,ea,"getPaneCurrentCommand",0,D,"getPaneDetailInfo",0,Y,"getPaneTitle",0,F,"getSessionCwd",0,q,"getSessionPanePid",0,O,"hasSession",0,T,"killServer",0,J,"killSession",0,$,"listSessions",0,I,"resolveExistingDir",0,R,"scanSessions",0,A,"sendBracketedPaste",0,B,"sendKeys",0,V,"sendKeysSeparated",0,X,"sendRawKeys",0,W,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},295055,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),n=e.i(262950),i=e.i(459015);let s=(0,e.i(25146).createLogger)("tmux"),l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.session;if(!r)return t.status(400).json({error:"session parameter required"});if(!await (0,i.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let e=await (0,i.capturePaneContent)(r);return t.status(200).json({content:e??""})}catch(e){return s.error(`capture failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to capture pane"})}};e.s(["default",0,l],798167);var o=e.i(798167),u=e.i(7031),c=e.i(181927),p=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/capture",pathname:"/api/tmux/capture",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 n="/api/tmux/capture";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)(),p=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/capture",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")!==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} ${n}`)});m&&p?await y(p):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(c.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],295055)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0ftuoz8._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
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 a=r.default.join(s.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",n=(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),l=["trace","debug","info","warn","error","fatal"],u=globalThis;if(!u.__ptRootLogger){let e=[i,...Object.values(n)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");u.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(a,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let o=u.__ptRootLogger;e.s(["createLogger",0,e=>{let t=o.child({module:e});return t.level=n[e]??i,t}])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},44014,e=>{"use strict";let t,r;var s=e.i(666680);e.s(["nanoid",0,function(e=21){var a;a=e|=0,!t||t.length<a?(t=Buffer.allocUnsafe(128*a),s.webcrypto.getRandomValues(t),r=0):r+a>t.length&&(s.webcrypto.getRandomValues(t),r=0),r+=a;let i="";for(let s=r-e;s<r;s++)i+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[s]];return i}],44014)},459015,965898,597789,333184,e=>{"use strict";var t=e.i(233405),r=e.i(924868),s=e.i(224361),a=e.i(814747),i=e.i(44014);let n=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(n?JSON.parse(n):{...process.env});n||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),e.s(["PRISTINE_ENV",0,l],965898);let u=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"]),o=["LC_"],d=e=>u.has(e)||o.some(t=>e.startsWith(t)),p={TERM:"xterm-256color",COLORTERM:"truecolor"},c=()=>{let e={};for(let[t,r]of Object.entries(l))void 0!==r&&d(t)&&(e[t]=r);return{...e,...p}},m=e=>`'${e.replace(/'/g,"'\\''")}'`,f=()=>l.SHELL||"/bin/bash",h=()=>{let e=Object.entries(c()).map(([e,t])=>`${e}=${m(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${m(f())} -l`};e.s(["buildShellEnv",0,()=>c(),"buildShellLaunchCommand",0,h,"defaultShell",0,f],597789);var w=e.i(25146);process.platform;let y="linux"===process.platform,g=(0,s.promisify)(t.execFile),S=async e=>{try{let{stdout:t}=await g("pgrep",["-P",String(e)]);return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},x=async e=>{if(y)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await g("lsof",["-a","-p",String(e),"-d","cwd","-Fn"]),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},v=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","args="],t?.timeoutMs?{timeout:t.timeoutMs}:{});return r.trim()}catch{return null}},_=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","lstart="],t?.timeoutMs?{timeout:t.timeoutMs}:{}),s=Date.parse(r.trim().replace(/\s+/g," "));return Number.isFinite(s)?s:null}catch{return null}};e.s(["getChildPids",0,S,"getProcessArgs",0,v,"getProcessCwd",0,x,"getProcessStartTimeMs",0,_,"isProcessRunning",0,e=>new Promise(r=>{(0,t.execFile)("ps",["-p",String(e)],e=>{r(!e)})}),"parseSemanticVersion",0,e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null],333184);let k=(0,w.createLogger)("terminal"),L=(0,s.promisify)(t.execFile),b="purple",P=a.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),E=async()=>{try{let{stdout:e}=await L("tmux",["-L",b,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},N=async(e,t,r,s)=>{let a=h();await L("tmux",["-u","-L",b,"-f",P,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),a],{timeout:5e3,cwd:s||l.HOME||"/"}),await D(),k.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},I=e=>new Promise(t=>setTimeout(t,e)),$=async e=>{if(!await R(e))return;k.debug(`killSession start: ${e}`);let t=await O(e);if(t)try{k.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await L("tmux",["-L",b,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await R(e))return void k.debug(`killSession done (SIGTERM): ${e}`);await I(200)}if(k.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{k.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await L("tmux",["-L",b,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await R(e))return void k.debug(`killSession done (SIGKILL): ${e}`);await I(200)}k.warn(`tmux session still alive after kill: ${e}`)},M=async e=>{let t=l.HOME||"/";if(!e)return t;let s=e;for(;;){try{if((await r.default.stat(s)).isDirectory())return s}catch{}let e=a.default.dirname(s);if(e===s)return t;s=e}},R=async e=>{try{return await L("tmux",["-L",b,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},T=async()=>{},A=async()=>{await T();let e=await E();e.length>0&&e.forEach(e=>{k.debug(`existing tmux session found: ${e}`)})},j=async e=>{if(y)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await L("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}},C=async e=>{let t=await O(e);if(t){let e=await j(t);if(e)return e}try{let{stdout:t}=await L("tmux",["-L",b,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},O=async e=>{try{let{stdout:t}=await L("tmux",["-L",b,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},D=async()=>{try{await L("tmux",["-L",b,"source-file",P],{timeout:5e3})}catch{}},q=async e=>{try{let{stdout:t}=await L("tmux",["-L",b,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},H=async()=>{try{let{stdout:e}=await L("tmux",["-L",b,"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,s,a,i,n]=r.split(" ");if(e&&s){let r=parseInt(i,10),l=parseInt(n,10);t.set(e,{command:s,path:a||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},U=new Set(["bash","zsh","fish","sh","dash"]),F=async e=>{let t=await q(e);return t?{isSafe:U.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},K=async e=>{try{let{stdout:t}=await L("tmux",["-L",b,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},G=async e=>{await L("tmux",["-L",b,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},V=async(e,t)=>{await G(e),await L("tmux",["-L",b,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},W=async(e,t)=>{await G(e),await L("tmux",["-L",b,"send-keys","-t",e,t],{timeout:5e3}),await I(50),await L("tmux",["-L",b,"send-keys","-t",e,"Enter"],{timeout:5e3})},X=async(e,t)=>{await G(e),await L("tmux",["-L",b,"send-keys","-t",e,t],{timeout:5e3})},B=async(e,t)=>{await G(e),await L("tmux",["-L",b,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await L("tmux",["-L",b,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await L("tmux",["-L",b,"send-keys","-t",e,"Enter"],{timeout:5e3})},Y=async e=>{try{let{stdout:t}=await L("tmux",["-L",b,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,s,a,i,n,l]=t.trim().split(" ");return{cwd:r||null,command:s||null,pid:a&&parseInt(a,10)||null,width:i&&parseInt(i,10)||null,height:n&&parseInt(n,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},z=new Set(["node","python","python3","ruby","perl","deno","bun"]),J=async()=>{try{await L("tmux",["-L",b,"kill-server"],{timeout:5e3}),k.debug("tmux server killed")}catch{}},Z=async e=>{try{let{stdout:t}=await L("tmux",["-L",b,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},Q=async(e,t)=>{try{let{stdout:r}=await L("tmux",["-L",b,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},ee=async e=>{if(y){let t=[];return await Promise.all(e.map(async e=>{try{for(let s of(await r.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(s,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await L("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},et=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await ee(r);if(0===e.length)break;t.push(...e),r=e}return t},er=async e=>{try{let t=new Set(e),{stdout:r}=await L("ss",["-tlnp"],{timeout:5e3}),s=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 a=e.match(/:(\d+)\s/);a&&s.add(parseInt(a[1],10))}return[...s].sort((e,t)=>e-t)}catch{return[]}},es=async e=>{let t=await et(e);if(0===t.length)return[];if(y)return er(t);try{let{stdout:e}=await L("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[]}},ea=async e=>{let t=await O(e);if(!t)return null;try{let{stdout:e}=await L("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let s=await v(r,{timeoutMs:5e3});if(!s)return null;let i=s.split(/\s+/);if(0===i.length)return s;if(i[0]=a.default.basename(i[0]),z.has(i[0])&&i.length>1){let e=a.default.basename(i[1]).replace(/\.(c|m)?js$/,"");i.splice(0,2,e)}return i.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,U,"applyConfig",0,D,"capturePaneContent",0,Z,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,F,"createSession",0,N,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,G,"getAllPanesInfo",0,H,"getLastCommand",0,ea,"getListeningPorts",0,es,"getPaneCurrentCommand",0,q,"getPaneDetailInfo",0,Y,"getPaneTitle",0,K,"getSessionCwd",0,C,"getSessionPanePid",0,O,"hasSession",0,R,"killServer",0,J,"killSession",0,$,"listSessions",0,E,"resolveExistingDir",0,M,"scanSessions",0,A,"sendBracketedPaste",0,B,"sendKeys",0,V,"sendKeysSeparated",0,W,"sendRawKeys",0,X,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},426427,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),a=e.i(262950),i=e.i(233405),n=e.i(224361),l=e.i(459015),u=e.i(25146);let o=(0,n.promisify)(i.execFile),d=(0,u.createLogger)("git-sync"),p=async(e,t)=>{try{let{stdout:r,stderr:s}=await o("git",["-C",e,...t],{timeout:3e4,maxBuffer:2097152});return{ok:!0,stdout:r,stderr:s,killed:!1}}catch(e){return{ok:!1,stdout:e.stdout??"",stderr:e.stderr??e.message??"",killed:!!e.killed}}},c=e=>{if(e.killed)return"timeout";let t=(e.stderr+"\n"+e.stdout).toLowerCase();return t.includes("no upstream")||t.includes("no tracking information")?"no-upstream":t.includes("authentication failed")||t.includes("permission denied")||t.includes("could not read from remote")||t.includes("invalid credentials")?"auth":t.includes("would be overwritten by merge")||t.includes("would be overwritten by checkout")||t.includes("commit your changes or stash them")?"local-changes":t.includes("divergent")||t.includes("not possible to fast-forward")||t.includes("non-fast-forward")?e.stderr.toLowerCase().includes("push")?"rejected":"diverged":t.includes("rejected")||t.includes("updates were rejected")?"rejected":"unknown"},m=async e=>{let t=await p(e,["rev-list","--left-right","--count","HEAD...@{upstream}"]);if(!t.ok)return{ahead:0,behind:0};let r=t.stdout.trim().split(/\s+/);return{ahead:parseInt(r[0],10)||0,behind:parseInt(r[1],10)||0}},f=e=>({name:e,ok:!1,skipped:!0,stdout:"",stderr:""}),h=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),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,l.hasSession)(r))return t.status(404).json({error:"Session not found"});let s=await (0,l.getSessionCwd)(r);if(!s)return t.status(500).json({error:"Failed to get CWD"});if(!(await p(s,["rev-parse","--is-inside-work-tree"])).ok)return t.status(400).json({error:"Not a git repository"});let a=await p(s,["rev-parse","--abbrev-ref","--symbolic-full-name","@{upstream}"]),i=a.ok?a.stdout.trim():null;if(!i){let e=await p(s,["rev-parse","--abbrev-ref","HEAD"]),r=e.ok?e.stdout.trim():"HEAD";return t.status(200).json({ok:!1,steps:[],summary:{pulled:0,pushed:0},upstream:null,branch:r,errorKind:"no-upstream"})}let n=[],u=await p(s,["fetch","--prune"]);if(n.push({name:"fetch",ok:u.ok,skipped:!1,stdout:u.stdout,stderr:u.stderr}),!u.ok)return d.warn(`fetch failed: ${u.stderr}`),n.push(f("pull")),n.push(f("push")),t.status(200).json({ok:!1,steps:n,summary:{pulled:0,pushed:0},upstream:i,errorKind:c(u)});let{behind:o}=await m(s),h=0;if(o>0){let e=await p(s,["pull","--ff-only"]);if(n.push({name:"pull",ok:e.ok,skipped:!1,stdout:e.stdout,stderr:e.stderr}),!e.ok)return d.warn(`pull failed: ${e.stderr}`),n.push(f("push")),t.status(200).json({ok:!1,steps:n,summary:{pulled:0,pushed:0},upstream:i,errorKind:c(e)});h=o}else n.push(f("pull"));let{ahead:w}=await m(s),y=0;if(w>0){let e=await p(s,["push"]);if(n.push({name:"push",ok:e.ok,skipped:!1,stdout:e.stdout,stderr:e.stderr}),!e.ok)return d.warn(`push failed: ${e.stderr}`),t.status(200).json({ok:!1,steps:n,summary:{pulled:h,pushed:0},upstream:i,errorKind:c(e)});y=w}else n.push(f("push"));return t.status(200).json({ok:!0,steps:n,summary:{pulled:h,pushed:y},upstream:i})};e.s(["default",0,h],362781);var w=e.i(362781),y=e.i(7031),g=e.i(181927),S=e.i(846432);let x=(0,a.hoist)(w,"default"),v=(0,a.hoist)(w,"config"),_=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/git/sync",pathname:"/api/git/sync",bundlePath:"",filename:""},userland:w,distDir:".next",relativeProjectDir:""});async function k(e,r,s){s.requestMeta&&(0,S.setRequestMeta)(e,s.requestMeta),_.isDev&&(0,S.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/git/sync";a=a.replace(/\/index$/,"")||"/";let i=await _.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:l,prerenderManifest:u,routerServerContext:o}=i;try{let t,s=e.method||"GET",i=(0,y.getTracer)(),d=i.getActiveScopeSpan(),p=!!(null==o?void 0:o.isWrappedByNextServer),c=_.instrumentationOnRequestError.bind(_),m=async d=>_.render(e,r,{query:{...n,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:u.preview,propagateError:!1,dev:_.isDev,page:"/api/git/sync",internalRevalidate:null==o?void 0:o.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")!==g.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 m(d):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(g.BaseServerSpan.handleRequest,{spanName:`${s} ${a}`,kind:y.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},m),void 0,!p))}catch(e){if(_.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,v,"default",0,x,"handler",0,k],426427)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0f~d9ug._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[n,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??n,t}])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},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,965898,597789,333184,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),i=e.i(814747),n=e.i(44014);let s=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(s?JSON.parse(s):{...process.env});s||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),e.s(["PRISTINE_ENV",0,l],965898);let o=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"]),u=["LC_"],c=e=>o.has(e)||u.some(t=>e.startsWith(t)),p={TERM:"xterm-256color",COLORTERM:"truecolor"},d=()=>{let e={};for(let[t,r]of Object.entries(l))void 0!==r&&c(t)&&(e[t]=r);return{...e,...p}},m=e=>`'${e.replace(/'/g,"'\\''")}'`,f=()=>l.SHELL||"/bin/bash",h=()=>{let e=Object.entries(d()).map(([e,t])=>`${e}=${m(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${m(f())} -l`};e.s(["buildShellEnv",0,()=>d(),"buildShellLaunchCommand",0,h,"defaultShell",0,f],597789);var y=e.i(25146);process.platform;let w="linux"===process.platform,g=(0,a.promisify)(t.execFile),S=async e=>{try{let{stdout:t}=await g("pgrep",["-P",String(e)]);return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},x=async e=>{if(w)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await g("lsof",["-a","-p",String(e),"-d","cwd","-Fn"]),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},_=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","args="],t?.timeoutMs?{timeout:t.timeoutMs}:{});return r.trim()}catch{return null}},L=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","lstart="],t?.timeoutMs?{timeout:t.timeoutMs}:{}),a=Date.parse(r.trim().replace(/\s+/g," "));return Number.isFinite(a)?a:null}catch{return null}};e.s(["getChildPids",0,S,"getProcessArgs",0,_,"getProcessCwd",0,x,"getProcessStartTimeMs",0,L,"isProcessRunning",0,e=>new Promise(r=>{(0,t.execFile)("ps",["-p",String(e)],e=>{r(!e)})}),"parseSemanticVersion",0,e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null],333184);let v=(0,y.createLogger)("terminal"),E=(0,a.promisify)(t.execFile),P="purple",b=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),N=async()=>{try{let{stdout:e}=await E("tmux",["-L",P,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},I=async(e,t,r,a)=>{let i=h();await E("tmux",["-u","-L",P,"-f",b,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),i],{timeout:5e3,cwd:a||l.HOME||"/"}),await O(),v.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},M=e=>new Promise(t=>setTimeout(t,e)),$=async e=>{if(!await T(e))return;v.debug(`killSession start: ${e}`);let t=await D(e);if(t)try{v.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await E("tmux",["-L",P,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await T(e))return void v.debug(`killSession done (SIGTERM): ${e}`);await M(200)}if(v.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{v.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await E("tmux",["-L",P,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await T(e))return void v.debug(`killSession done (SIGKILL): ${e}`);await M(200)}v.warn(`tmux session still alive after kill: ${e}`)},R=async e=>{let t=l.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}},T=async e=>{try{return await E("tmux",["-L",P,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},C=async()=>{},k=async()=>{await C();let e=await N();e.length>0&&e.forEach(e=>{v.debug(`existing tmux session found: ${e}`)})},A=async e=>{if(w)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await E("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}},q=async e=>{let t=await D(e);if(t){let e=await A(t);if(e)return e}try{let{stdout:t}=await E("tmux",["-L",P,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},D=async e=>{try{let{stdout:t}=await E("tmux",["-L",P,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},O=async()=>{try{await E("tmux",["-L",P,"source-file",b],{timeout:5e3})}catch{}},j=async e=>{try{let{stdout:t}=await E("tmux",["-L",P,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},H=async()=>{try{let{stdout:e}=await E("tmux",["-L",P,"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}},U=new Set(["bash","zsh","fish","sh","dash"]),G=async e=>{let t=await j(e);return t?{isSafe:U.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},F=async e=>{try{let{stdout:t}=await E("tmux",["-L",P,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},K=async e=>{await E("tmux",["-L",P,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},V=async(e,t)=>{await K(e),await E("tmux",["-L",P,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},X=async(e,t)=>{await K(e),await E("tmux",["-L",P,"send-keys","-t",e,t],{timeout:5e3}),await M(50),await E("tmux",["-L",P,"send-keys","-t",e,"Enter"],{timeout:5e3})},W=async(e,t)=>{await K(e),await E("tmux",["-L",P,"send-keys","-t",e,t],{timeout:5e3})},B=async(e,t)=>{await K(e),await E("tmux",["-L",P,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await E("tmux",["-L",P,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await E("tmux",["-L",P,"send-keys","-t",e,"Enter"],{timeout:5e3})},Y=async e=>{try{let{stdout:t}=await E("tmux",["-L",P,"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}}},z=new Set(["node","python","python3","ruby","perl","deno","bun"]),J=async()=>{try{await E("tmux",["-L",P,"kill-server"],{timeout:5e3}),v.debug("tmux server killed")}catch{}},Z=async e=>{try{let{stdout:t}=await E("tmux",["-L",P,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},Q=async(e,t)=>{try{let{stdout:r}=await E("tmux",["-L",P,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},ee=async e=>{if(w){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 E("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},et=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await ee(r);if(0===e.length)break;t.push(...e),r=e}return t},er=async e=>{try{let t=new Set(e),{stdout:r}=await E("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[]}},ea=async e=>{let t=await et(e);if(0===t.length)return[];if(w)return er(t);try{let{stdout:e}=await E("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[]}},ei=async e=>{let t=await D(e);if(!t)return null;try{let{stdout:e}=await E("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let a=await _(r,{timeoutMs:5e3});if(!a)return null;let n=a.split(/\s+/);if(0===n.length)return a;if(n[0]=i.default.basename(n[0]),z.has(n[0])&&n.length>1){let e=i.default.basename(n[1]).replace(/\.(c|m)?js$/,"");n.splice(0,2,e)}return n.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,U,"applyConfig",0,O,"capturePaneContent",0,Z,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,G,"createSession",0,I,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,K,"getAllPanesInfo",0,H,"getLastCommand",0,ei,"getListeningPorts",0,ea,"getPaneCurrentCommand",0,j,"getPaneDetailInfo",0,Y,"getPaneTitle",0,F,"getSessionCwd",0,q,"getSessionPanePid",0,D,"hasSession",0,T,"killServer",0,J,"killSession",0,$,"listSessions",0,N,"resolveExistingDir",0,R,"scanSessions",0,k,"sendBracketedPaste",0,B,"sendKeys",0,V,"sendKeysSeparated",0,X,"sendRawKeys",0,W,"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,t={})=>{let r=await (0,l.getSessionCwd)(e);if(!r)throw Error("tmux-session-not-found");let a=`git-branch:${r}`;if(!t.force){let e=(0,o.getCached)(a);if(null!==e)return e}try{let{stdout:e}=await u("git",["-C",r,"rev-parse","--abbrev-ref","HEAD"],{timeout:5e3}),t=e.trim()||null;return(0,o.setCached)(a,t,15e3),t}catch(e){if(128===e.code)return(0,o.setCached)(a,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"});let a="true"===e.query.force||"1"===e.query.force;try{let e=await c(r,{force:a});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),f=e.i(7031),h=e.i(181927),y=e.i(846432);let w=(0,i.hoist)(m,"default"),g=(0,i.hoist)(m,"config"),S=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 x(e,r,a){a.requestMeta&&(0,y.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,y.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/git/branch";i=i.replace(/\/index$/,"")||"/";let n=await S.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,f.getTracer)(),c=n.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),d=S.instrumentationOnRequestError.bind(S),m=async c=>S.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:S.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")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${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(h.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:f.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},m),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,g,"default",0,w,"handler",0,x],740670)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0ge78._._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
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"),s=process.env.LOG_LEVEL||"info",n=(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"],u=globalThis;if(!u.__ptRootLogger){let e=[s,...Object.values(n)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");u.__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 o=u.__ptRootLogger;e.s(["createLogger",0,e=>{let t=o.child({module:e});return t.level=n[e]??s,t}])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},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 s="";for(let a=r-e;a<r;a++)s+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[a]];return s}],44014)},459015,965898,597789,333184,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),i=e.i(814747),s=e.i(44014);let n=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(n?JSON.parse(n):{...process.env});n||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),e.s(["PRISTINE_ENV",0,l],965898);let u=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"]),o=["LC_"],c=e=>u.has(e)||o.some(t=>e.startsWith(t)),p={TERM:"xterm-256color",COLORTERM:"truecolor"},d=()=>{let e={};for(let[t,r]of Object.entries(l))void 0!==r&&c(t)&&(e[t]=r);return{...e,...p}},m=e=>`'${e.replace(/'/g,"'\\''")}'`,y=()=>l.SHELL||"/bin/bash",f=()=>{let e=Object.entries(d()).map(([e,t])=>`${e}=${m(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${m(y())} -l`};e.s(["buildShellEnv",0,()=>d(),"buildShellLaunchCommand",0,f,"defaultShell",0,y],597789);var h=e.i(25146);process.platform;let w="linux"===process.platform,g=(0,a.promisify)(t.execFile),S=async e=>{try{let{stdout:t}=await g("pgrep",["-P",String(e)]);return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},x=async e=>{if(w)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await g("lsof",["-a","-p",String(e),"-d","cwd","-Fn"]),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},_=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","args="],t?.timeoutMs?{timeout:t.timeoutMs}:{});return r.trim()}catch{return null}},L=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","lstart="],t?.timeoutMs?{timeout:t.timeoutMs}:{}),a=Date.parse(r.trim().replace(/\s+/g," "));return Number.isFinite(a)?a:null}catch{return null}};e.s(["getChildPids",0,S,"getProcessArgs",0,_,"getProcessCwd",0,x,"getProcessStartTimeMs",0,L,"isProcessRunning",0,e=>new Promise(r=>{(0,t.execFile)("ps",["-p",String(e)],e=>{r(!e)})}),"parseSemanticVersion",0,e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null],333184);let v=(0,h.createLogger)("terminal"),P=(0,a.promisify)(t.execFile),E="purple",N=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),I=async()=>{try{let{stdout:e}=await P("tmux",["-L",E,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},b=async(e,t,r,a)=>{let i=f();await P("tmux",["-u","-L",E,"-f",N,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),i],{timeout:5e3,cwd:a||l.HOME||"/"}),await D(),v.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},M=e=>new Promise(t=>setTimeout(t,e)),$=async e=>{if(!await T(e))return;v.debug(`killSession start: ${e}`);let t=await q(e);if(t)try{v.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await T(e))return void v.debug(`killSession done (SIGTERM): ${e}`);await M(200)}if(v.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{v.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await T(e))return void v.debug(`killSession done (SIGKILL): ${e}`);await M(200)}v.warn(`tmux session still alive after kill: ${e}`)},R=async e=>{let t=l.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}},T=async e=>{try{return await P("tmux",["-L",E,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},k=async()=>{},A=async()=>{await k();let e=await I();e.length>0&&e.forEach(e=>{v.debug(`existing tmux session found: ${e}`)})},C=async e=>{if(w)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}},O=async e=>{let t=await q(e);if(t){let e=await C(t);if(e)return e}try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},q=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},D=async()=>{try{await P("tmux",["-L",E,"source-file",N],{timeout:5e3})}catch{}},U=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},H=async()=>{try{let{stdout:e}=await P("tmux",["-L",E,"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,s,n]=r.split(" ");if(e&&a){let r=parseInt(s,10),l=parseInt(n,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}},j=new Set(["bash","zsh","fish","sh","dash"]),G=async e=>{let t=await U(e);return t?{isSafe:j.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},F=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},K=async e=>{await P("tmux",["-L",E,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},V=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},X=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t],{timeout:5e3}),await M(50),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3})},W=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t],{timeout:5e3})},B=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3})},Y=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,i,s,n,l]=t.trim().split(" ");return{cwd:r||null,command:a||null,pid:i&&parseInt(i,10)||null,width:s&&parseInt(s,10)||null,height:n&&parseInt(n,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},z=new Set(["node","python","python3","ruby","perl","deno","bun"]),J=async()=>{try{await P("tmux",["-L",E,"kill-server"],{timeout:5e3}),v.debug("tmux server killed")}catch{}},Z=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},Q=async(e,t)=>{try{let{stdout:r}=await P("tmux",["-L",E,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},ee=async e=>{if(w){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[]}},et=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await ee(r);if(0===e.length)break;t.push(...e),r=e}return t},er=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[]}},ea=async e=>{let t=await et(e);if(0===t.length)return[];if(w)return er(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[]}},ei=async e=>{let t=await q(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 a=await _(r,{timeoutMs:5e3});if(!a)return null;let s=a.split(/\s+/);if(0===s.length)return a;if(s[0]=i.default.basename(s[0]),z.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,j,"applyConfig",0,D,"capturePaneContent",0,Z,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,G,"createSession",0,b,"defaultSessionName",0,()=>`pt-${(0,s.nanoid)(6)}-${(0,s.nanoid)(6)}-${(0,s.nanoid)(6)}`,"exitCopyMode",0,K,"getAllPanesInfo",0,H,"getLastCommand",0,ei,"getListeningPorts",0,ea,"getPaneCurrentCommand",0,U,"getPaneDetailInfo",0,Y,"getPaneTitle",0,F,"getSessionCwd",0,O,"getSessionPanePid",0,q,"hasSession",0,T,"killServer",0,J,"killSession",0,$,"listSessions",0,I,"resolveExistingDir",0,R,"scanSessions",0,A,"sendBracketedPaste",0,B,"sendKeys",0,V,"sendKeysSeparated",0,X,"sendRawKeys",0,W,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},668144,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(459015);let n=async(e,t)=>{let r=await (0,s.listSessions)();t.status(200).json({count:r.length})};e.s(["default",0,n],877394);var l=e.i(877394),u=e.i(7031),o=e.i(181927),c=e.i(846432);let p=(0,i.hoist)(l,"default"),d=(0,i.hoist)(l,"config"),m=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/system/tmux-sessions",pathname:"/api/system/tmux-sessions",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function y(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),m.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/system/tmux-sessions";i=i.replace(/\/index$/,"")||"/";let s=await m.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:n,params:l,prerenderManifest:p,routerServerContext:d}=s;try{let t,a=e.method||"GET",s=(0,u.getTracer)(),c=s.getActiveScopeSpan(),y=!!(null==d?void 0:d.isWrappedByNextServer),f=m.instrumentationOnRequestError.bind(m),h=async u=>m.render(e,r,{query:{...n,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:p.preview,propagateError:!1,dev:m.isDev,page:"/api/system/tmux-sessions",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==o.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} ${i}`)});y&&c?await h(c):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(o.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},h),void 0,!y))}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,d,"default",0,p,"handler",0,y],668144)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0il~az0._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
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 l=r.default.join(s.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",n=(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),a=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[i,...Object.values(n)].reduce((e,t)=>a.indexOf(t)<a.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(l,"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=n[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"))},716018,e=>{"use strict";e.i(446786);let t=["127.0.0.0/8","::1/128"],r=["100.64.0.0/10","fd7a:115c:a1e0::/48"],s=["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","169.254.0.0/16","fc00::/7","fe80::/10"],l=e=>{let t=e.startsWith("::ffff:")?e.slice(7):e;if(t.includes(".")&&!t.includes(":")){let e=t.split(".").map(e=>Number(e));return 4!==e.length||e.some(e=>!Number.isInteger(e)||e<0||e>255)?null:Buffer.from(e)}return i(t)},i=e=>{let t,r=e.indexOf("%"),s=r>=0?e.slice(0,r):e,l=null,i=s,n=s.lastIndexOf(":"),a=n>=0?s.slice(n+1):"";if(a.includes(".")){let e=a.split(".").map(e=>Number(e));if(4!==e.length||e.some(e=>!Number.isInteger(e)||e<0||e>255))return null;l=Buffer.from(e),i=s.slice(0,n)}let o=i.indexOf("::");if(o>=0){let e=i.slice(0,o)?i.slice(0,o).split(":"):[],r=i.slice(o+2)?i.slice(o+2).split(":"):[],s=(l?6:8)-e.length-r.length;if(s<0)return null;t=[...e,...Array(s).fill("0"),...r]}else t=i?i.split(":"):[];let u=l?6:8;if(t.length!==u)return null;let p=Buffer.alloc(16);for(let e=0;e<t.length;e++){let r=parseInt(t[e],16);if(!Number.isFinite(r)||r<0||r>65535)return null;p.writeUInt16BE(r,2*e)}return l&&l.copy(p,12),p},n=e=>{let[t,r]=e.split("/"),s=l(t);if(!s)return null;let i=8*s.length,n=void 0===r?i:Number(r);return!Number.isInteger(n)||n<0||n>i?null:{addr:s,prefix:n}},a=e=>{let l=e.trim().toLowerCase();return l?"all"===l||"*"===l||"0.0.0.0"===l?"all":"localhost"===l?t:"tailscale"===l?r:"lan"===l?s:null:[]},o=e=>{switch(e){case"localhost":return"localhost";case"tailscale":return"localhost,tailscale";case"all":return"all"}},u=["localhost","tailscale","all"],p=null,d="";e.s(["isBoundToLocalhostOnly",0,()=>"127.0.0.1"===(process.env.__PMUX_BOUND_HOST??"0.0.0.0"),"isRequestAllowed",0,e=>{let t;var r=((t=(()=>{let e=process.env.HOST?.trim();if(e)return e;let t=process.env.__PMUX_NETWORK_ACCESS;return t&&u.includes(t)?o(t):o("all")})())===d&&p||(d=t,p=(e=>{let t=[],r=!1;for(let s of e.split(",")){let e=s.trim();if(!e)continue;let l=a(e);if("all"===l){r=!0;continue}if(null===l){let r=n(e);r&&t.push(r);continue}for(let e of l){let r=n(e);r&&t.push(r)}}return{raw:e,cidrs:t,allowAll:r}})(t)),p),s=e;if(r.allowAll)return!0;if(!s)return!1;let i=l(s);return!!i&&r.cidrs.some(e=>((e,t)=>{if(e.addr.length!==t.length)return!1;let r=Math.floor(e.prefix/8),s=e.prefix%8;for(let s=0;s<r;s++)if(e.addr[s]!==t[s])return!1;if(0===s)return!0;let l=255<<8-s&255;return(e.addr[r]&l)==(t[r]&l)})(e,i))},"updateAccessFromConfig",0,e=>{process.env.HOST?.trim()||(process.env.__PMUX_NETWORK_ACCESS=e,p=null,d="")}],716018)},127579,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),l=e.i(262950),i=e.i(845994),n=e.i(716018),a=e.i(772601);let o=Promise.resolve(),u=async(e,t)=>{if("GET"===e.method){let r=await (0,i.needsSetup)(),s=r&&!!process.env.INIT_PASSWORD&&!await (0,a.verifyRequestSession)(e.headers.cookie),l="string"==typeof process.env.HOST&&process.env.HOST.trim().length>0;return t.status(200).json({needsSetup:r,requiresAuth:s,hostEnvLocked:l})}if("POST"===e.method){let r,{authPassword:s,locale:l,appTheme:u,terminalTheme:p,dangerouslySkipPermissions:d,networkAccess:c}=e.body??{};if(!s||"string"!=typeof s)return t.status(400).json({error:"Password is required."});let f=["localhost","tailscale","all"].includes(c)?c:void 0,h=new Promise(e=>{r=e}),m=o;o=h,await m;try{if(!await (0,i.needsSetup)())return t.status(400).json({error:"Setup already completed."});if(process.env.INIT_PASSWORD&&!await (0,a.verifyRequestSession)(e.headers.cookie))return t.status(401).json({error:"Authentication required."});let r=await (0,i.hashPassword)(s),o=(0,i.generateSecret)();return await (0,i.updateConfig)({authPassword:r,authSecret:o,locale:l||"en",appTheme:u||"dark",terminalTheme:p,dangerouslySkipPermissions:d??!1,...f?{networkAccess:f}:{}}),f&&(0,n.updateAccessFromConfig)(f),process.env.AUTH_PASSWORD=r,process.env.NEXTAUTH_SECRET=o,delete process.env.INIT_PASSWORD,t.status(200).json({ok:!0})}finally{r()}}return t.setHeader("Allow","GET, POST"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,u],750388);var p=e.i(750388),d=e.i(7031),c=e.i(181927),f=e.i(846432);let h=(0,l.hoist)(p,"default"),m=(0,l.hoist)(p,"config"),g=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/auth/setup",pathname:"/api/auth/setup",bundlePath:"",filename:""},userland:p,distDir:".next",relativeProjectDir:""});async function x(e,r,s){s.requestMeta&&(0,f.setRequestMeta)(e,s.requestMeta),g.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let l="/api/auth/setup";l=l.replace(/\/index$/,"")||"/";let i=await g.prepare(e,r,{srcPage:l});if(!i){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:n,params:a,prerenderManifest:o,routerServerContext:u}=i;try{let t,s=e.method||"GET",i=(0,d.getTracer)(),p=i.getActiveScopeSpan(),f=!!(null==u?void 0:u.isWrappedByNextServer),h=g.instrumentationOnRequestError.bind(g),m=async p=>g.render(e,r,{query:{...n,...a},params:a,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:g.isDev,page:"/api/auth/setup",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!p)return;p.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.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 n=e.get("next.route");if(n){let e=`${s} ${n}`;p.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),p.updateName(e),t&&t!==p&&(t.setAttribute("http.route",n),t.updateName(e))}else p.updateName(`${s} ${l}`)});f&&p?await m(p):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(c.BaseServerSpan.handleRequest,{spanName:`${s} ${l}`,kind:d.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},m),void 0,!f))}catch(e){if(g.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,m,"default",0,h,"handler",0,x],127579)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0imsr4v._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let a=t.__ptAgentProviders;e.s(["getProvider",0,e=>a.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of a.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let r of a.values())if(r.matchesProcess(e,t))return r;return null},"listProviders",0,()=>Array.from(a.values()),"registerProvider",0,e=>{a.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),a=e.i(814747),r=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),l=e.i(666126),n=e.i(825265),d=e.i(804767),u=e.i(282992);let c=(0,o.createLogger)("workspace"),p="Workspace ",w=async e=>{let t=[];for(let a of(0,u.listProviders)()){let r=a.writeWorkspacePrompt?.(e);r&&t.push(r)}await Promise.all(t)},f=a.default.join(r.default.homedir(),".purplemux"),y=a.default.join(f,"workspaces.json"),g=a.default.join(f,"layout.json"),m=a.default.join(f,"tabs.json"),h=globalThis;h.__purplemuxWorkspaceLock||(h.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,a=new Promise(e=>{t=e}),r=h.__purplemuxWorkspaceLock;h.__purplemuxWorkspaceLock=a,await r;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),I=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let a=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!a.has(e.groupId)&&(e.groupId=null);return t}catch{c.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},P=async e=>{let a;a=b(e),e.workspaces=((e,t)=>{let a=new Set(t.map(e=>e.id)),r=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&a.has(e)){let a=r.get(e)??[];a.push(t),r.set(e,a)}else i.push(t)}let s=[];for(let e of t){let t=r.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,a);let{workspaces:r,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n}=e,d=JSON.stringify({workspaces:r,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(h.__purplemuxWorkspacesContentCache===d)return;e.updatedAt=new Date().toISOString();let u=y+".tmp";try{await t.default.writeFile(u,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(u,y)}catch(e){throw await t.default.unlink(u).catch(()=>{}),e}h.__purplemuxWorkspacesContentCache=d,(0,l.broadcastSync)({type:"workspace"})},S=async()=>{let e=await (0,n.readLayoutFile)(g);if(!e)return null;let a="ws-default";await t.default.mkdir((0,n.resolveLayoutDir)(a),{recursive:!0}),await (0,n.writeLayoutFile)(e,(0,n.resolveLayoutFile)(a));let i={workspaces:[{id:a,name:"default",directories:[r.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await P(i),c.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},A=async()=>{try{let e=await t.default.readFile(m,"utf-8"),a=JSON.parse(e);if(!Array.isArray(a.tabs)||0===a.tabs.length)return null;let r=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:r,tabs:a.tabs,activeTabId:a.activeTabId??null},activePaneId:r,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return c.info("tabs.json → layout.json migration complete"),await S()}catch{return null}},W=async()=>{await t.default.mkdir(a.default.join(f,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await S():await t.default.access(m).then(()=>!0).catch(()=>!1)&&(e=await A())),!e){let t=k();await P(t),e=t,c.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let r=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,n.resolveLayoutFile)(t.id),a=await (0,n.readLayoutFile)(e);if(!a){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),a=await (0,n.createDefaultLayout)(t.id,t.directories[0]),await (0,n.writeLayoutFile)(a,e);continue}let i=(0,d.collectAllTabs)(a.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=r.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,n.crossCheckLayout)(a,o,t.id,t.directories[0])&&await (0,n.writeLayoutFile)(a,e)}catch(e){c.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},x=async()=>{let e=await I();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},$=async()=>{let e=await I();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},_=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},j=async(e,a,r)=>v(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await I()??k(),l=`ws-${(0,i.nanoid)(6)}`,d=a?.trim()||(e=>{let t=0;for(let a of e)if(a.name.startsWith(p)){let e=parseInt(a.name.slice(p.length),10);e>t&&(t=e)}return`${p}${t+1}`})(o.workspaces),u=await (0,n.createDefaultLayout)(l,e,r);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(u,(0,n.resolveLayoutFile)(l));let f={id:l,name:d,directories:[e]};return o.workspaces.push(f),await P(o),await w(f),c.debug(`Created: ${l} (${d}, ${e})`),f}),C=async e=>v(async()=>{let t=await I()??k(),a=t.workspaces.findIndex(t=>t.id===e);if(-1===a)return!1;let r=t.workspaces[a],i=await (0,n.readLayoutFile)((0,n.resolveLayoutFile)(e));if(i)for(let e of(0,d.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,n.removeLayoutFile)(e)}catch{}return t.workspaces.splice(a,1),await P(t),c.info(`Deleted: ${e} (${r.name})`),!0}),D=async(e,t)=>v(async()=>{let a=await I();if(!a)return null;let r=a.workspaces.find(t=>t.id===e);return r?(r.name=t,await P(a),await w(r),c.debug(`Renamed: ${e} → "${t}"`),{...r}):null}),L=async e=>v(async()=>{let t=await I()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await P(t)}),F=async(e,t)=>v(async()=>{let a=await I();if(!a)return;let r=a.workspaces.find(t=>t.id===e);r&&JSON.stringify(r.directories)!==JSON.stringify(t)&&(r.directories=t,await P(a),await w(r))}),N=async e=>v(async()=>{let t=await I()??k(),a=new Map(t.workspaces.map(e=>[e.id,e])),r=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=a.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&r.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await P(t),!0)}),T=async e=>v(async()=>{let t=await I()??k(),a=b(t),r=e.trim()||`Group ${a.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:r,collapsed:!1};return a.push(s),await P(t),c.debug(`Group created: ${s.id} (${s.name})`),s}),E=async(e,t)=>v(async()=>{let a=await I();if(!a)return null;let r=(a.groups??[]).find(t=>t.id===e);if(!r)return null;let i=t.trim();return i?(r.name=i,await P(a),{...r}):r}),R=async(e,t)=>v(async()=>{let a=await I();if(!a)return!1;let r=(a.groups??[]).find(t=>t.id===e);return!!r&&(r.collapsed===t||(r.collapsed=t,await P(a),!0))}),O=async e=>v(async()=>{let t=await I();if(!t)return!1;let a=b(t),r=a.findIndex(t=>t.id===e);if(-1===r)return!1;for(let a of t.workspaces)a.groupId===e&&(a.groupId=null);return a.splice(r,1),await P(t),c.info(`Group ungrouped: ${e}`),!0}),q=async e=>v(async()=>{let t=await I();if(!t)return!1;let a=b(t),r=new Map(a.map(e=>[e.id,e])),i=[];for(let t of e){let e=r.get(t);if(!e)return!1;i.push(e)}return i.length===a.length&&(t.groups=i,await P(t),!0)}),G=async(e,t)=>v(async()=>{let a=await I();if(!a)return!1;let r=a.workspaces.find(t=>t.id===e);if(!r)return!1;let i=new Set((a.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(r.groupId??null)===s||(r.groupId=s,await P(a),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:a.default.basename(e)}};e.s(["createGroup",0,T,"createWorkspace",0,j,"deleteWorkspace",0,C,"getActiveWorkspaceId",0,$,"getWorkspaceById",0,_,"getWorkspaces",0,x,"initWorkspaceStore",0,W,"renameGroup",0,E,"renameWorkspace",0,D,"reorderGroups",0,q,"reorderWorkspaces",0,N,"setGroupCollapsed",0,R,"setWorkspaceGroup",0,G,"ungroupGroup",0,O,"updateActive",0,L,"updateWorkspaceDirectories",0,F,"validateDirectory",0,M],322429)},319668,(e,t,a)=>{t.exports=e.x("readline",()=>require("readline"))},853932,e=>{"use strict";var t=e.i(282992);let a={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},r={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},i=async(e,i)=>{let s=(0,t.listProviders)(),o=s.length>0;for(let t of s){let a=await t.detectActiveSession(e,i);if("running"===a.status)return{provider:t,info:a};"not-installed"!==a.status&&(o=!1)}return{provider:null,info:o?r:a}};e.s(["detectAnyActiveSession",0,i])},462180,e=>{"use strict";var t=e.i(798415),a=e.i(751905),r=e.i(282992);e.i(853932),(0,r.registerProvider)(t.claudeProvider),(0,r.registerProvider)(a.codexProvider),e.s([])},338823,e=>{"use strict";e.i(462180);var t=e.i(282992);let a=async e=>{let a=(0,t.getProviderByPanelType)(e);if(!a)return{ok:!0,provider:null};let r=await a.preflight();if(r.installed)return{ok:!0,provider:a};let i="claude"===a.id&&!!r.binaryPath;return{ok:!1,status:409,code:i?"agent-path-missing":"agent-not-installed",providerId:a.id,providerDisplayName:a.displayName,panelType:a.panelType,suggestedCommand:i?"claude-path":"claude"===a.id?"claude":null}};e.s(["checkAgentAvailabilityForPanelType",0,a,"toAgentAvailabilityError",0,e=>({error:e.code,providerId:e.providerId,providerDisplayName:e.providerDisplayName,panelType:e.panelType,suggestedCommand:e.suggestedCommand})])},324488,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(751905),o=e.i(338823),l=e.i(322429);let n=(0,e.i(25146).createLogger)("codex-launch-command"),d=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let a=e.body,r="string"==typeof a?.workspaceId&&a.workspaceId.trim()?a.workspaceId.trim():null,i="string"==typeof a?.resumeSessionId&&a.resumeSessionId.trim()?a.resumeSessionId.trim():null,d=r??await (0,l.getActiveWorkspaceId)();try{let e=await (0,o.checkAgentAvailabilityForPanelType)(s.codexProvider.panelType);if(!e.ok)return t.status(e.status).json((0,o.toAgentAvailabilityError)(e));let a=i?await s.codexProvider.buildResumeCommand(i,{workspaceId:d??void 0}):await s.codexProvider.buildLaunchCommand({workspaceId:d??void 0});return t.status(200).json({command:a})}catch(e){return n.error(`codex launch command build failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to build Codex launch command"})}};e.s(["default",0,d],841681);var u=e.i(841681),c=e.i(7031),p=e.i(181927),w=e.i(846432);let f=(0,i.hoist)(u,"default"),y=(0,i.hoist)(u,"config"),g=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/codex/launch-command",pathname:"/api/codex/launch-command",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function m(e,a,r){r.requestMeta&&(0,w.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,w.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/codex/launch-command";i=i.replace(/\/index$/,"")||"/";let s=await g.prepare(e,a,{srcPage:i});if(!s){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:o,params:l,prerenderManifest:n,routerServerContext:d}=s;try{let t,r=e.method||"GET",s=(0,c.getTracer)(),u=s.getActiveScopeSpan(),w=!!(null==d?void 0:d.isWrappedByNextServer),f=g.instrumentationOnRequestError.bind(g),y=async u=>g.render(e,a,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:g.isDev,page:"/api/codex/launch-command",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.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=`${r} ${o}`;u.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",o),t.updateName(e))}else u.updateName(`${r} ${i}`)});w&&u?await y(u):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:c.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},y),void 0,!w))}catch(e){if(g.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,y,"default",0,f,"handler",0,m],324488)},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__0j.h25r._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(t,e,r)=>{e.exports=t.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(t,e,r)=>{e.exports=t.x("os",()=>require("os"))},814747,(t,e,r)=>{e.exports=t.x("path",()=>require("path"))},924868,(t,e,r)=>{e.exports=t.x("fs/promises",()=>require("fs/promises"))},130146,(t,e,r)=>{e.exports=t.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,t=>{"use strict";var e=t.i(130146),r=t.i(814747),a=t.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(t=>{if(!t)return{};let e={};for(let r of t.split(",")){let[t,a]=r.split("=").map(t=>t.trim());t&&a&&(e[t]=a)}return e})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let t=[n,...Object.values(s)].reduce((t,e)=>l.indexOf(e)<l.indexOf(t)?e:t,"fatal");o.__ptRootLogger=(0,e.default)({level:t,transport:{targets:[{target:"pino-roll",level:t,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:t,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;t.s(["createLogger",0,t=>{let e=u.child({module:t});return e.level=s[t]??n,e}])},666680,(t,e,r)=>{e.exports=t.x("node:crypto",()=>require("node:crypto"))},224361,(t,e,r)=>{e.exports=t.x("util",()=>require("util"))},233405,(t,e,r)=>{e.exports=t.x("child_process",()=>require("child_process"))},44014,t=>{"use strict";let e,r;var a=t.i(666680);t.s(["nanoid",0,function(t=21){var i;i=t|=0,!e||e.length<i?(e=Buffer.allocUnsafe(128*i),a.webcrypto.getRandomValues(e),r=0):r+i>e.length&&(a.webcrypto.getRandomValues(e),r=0),r+=i;let n="";for(let a=r-t;a<r;a++)n+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&e[a]];return n}],44014)},459015,965898,597789,333184,t=>{"use strict";var e=t.i(233405),r=t.i(924868),a=t.i(224361),i=t.i(814747),n=t.i(44014);let s=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(s?JSON.parse(s):{...process.env});s||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),t.s(["PRISTINE_ENV",0,l],965898);let o=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"]),u=["LC_"],c=t=>o.has(t)||u.some(e=>t.startsWith(e)),p={TERM:"xterm-256color",COLORTERM:"truecolor"},d=()=>{let t={};for(let[e,r]of Object.entries(l))void 0!==r&&c(e)&&(t[e]=r);return{...t,...p}},m=t=>`'${t.replace(/'/g,"'\\''")}'`,f=()=>l.SHELL||"/bin/bash",h=()=>{let t=Object.entries(d()).map(([t,e])=>`${t}=${m(e)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${t} ${m(f())} -l`};t.s(["buildShellEnv",0,()=>d(),"buildShellLaunchCommand",0,h,"defaultShell",0,f],597789);var y=t.i(25146);process.platform;let g="linux"===process.platform,w=(0,a.promisify)(e.execFile),S=async t=>{try{let{stdout:e}=await w("pgrep",["-P",String(t)]);return e.trim().split("\n").map(t=>parseInt(t,10)).filter(t=>!Number.isNaN(t))}catch{return[]}},x=async t=>{if(g)try{return await r.default.readlink(`/proc/${t}/cwd`)}catch{return null}try{let{stdout:e}=await w("lsof",["-a","-p",String(t),"-d","cwd","-Fn"]),r=e.split("\n").find(t=>t.startsWith("n/"));return r?r.slice(1):null}catch{return null}},_=async(t,e)=>{try{let{stdout:r}=await w("ps",["-p",String(t),"-o","args="],e?.timeoutMs?{timeout:e.timeoutMs}:{});return r.trim()}catch{return null}},L=async(t,e)=>{try{let{stdout:r}=await w("ps",["-p",String(t),"-o","lstart="],e?.timeoutMs?{timeout:e.timeoutMs}:{}),a=Date.parse(r.trim().replace(/\s+/g," "));return Number.isFinite(a)?a:null}catch{return null}};t.s(["getChildPids",0,S,"getProcessArgs",0,_,"getProcessCwd",0,x,"getProcessStartTimeMs",0,L,"isProcessRunning",0,t=>new Promise(r=>{(0,e.execFile)("ps",["-p",String(t)],t=>{r(!t)})}),"parseSemanticVersion",0,t=>t.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null],333184);let v=(0,y.createLogger)("terminal"),P=(0,a.promisify)(e.execFile),E="purple",I=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),N=async()=>{try{let{stdout:t}=await P("tmux",["-L",E,"ls","-F","#{session_name}"],{timeout:5e3});return t.trim().split("\n").map(t=>t.trim()).filter(t=>t.startsWith("pt-"))}catch{return[]}},b=async(t,e,r,a)=>{let i=h();await P("tmux",["-u","-L",E,"-f",I,"new-session","-d","-s",t,"-x",String(e),"-y",String(r),i],{timeout:5e3,cwd:a||l.HOME||"/"}),await D(),v.debug(`tmux session created: ${t} (cols: ${e}, rows: ${r})`)},M=t=>new Promise(e=>setTimeout(e,t)),$=async t=>{if(!await T(t))return;v.debug(`killSession start: ${t}`);let e=await O(t);if(e)try{v.debug(`SIGTERM → process group ${e}: ${t}`),process.kill(-e,"SIGTERM")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",t],{timeout:5e3})}catch{}for(let e=0;e<5;e++){if(!await T(t))return void v.debug(`killSession done (SIGTERM): ${t}`);await M(200)}if(v.warn(`session survived SIGTERM, escalating to SIGKILL: ${t}`),e)try{v.debug(`SIGKILL → process group ${e}: ${t}`),process.kill(-e,"SIGKILL")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",t],{timeout:5e3})}catch{}for(let e=0;e<3;e++){if(!await T(t))return void v.debug(`killSession done (SIGKILL): ${t}`);await M(200)}v.warn(`tmux session still alive after kill: ${t}`)},R=async t=>{let e=l.HOME||"/";if(!t)return e;let a=t;for(;;){try{if((await r.default.stat(a)).isDirectory())return a}catch{}let t=i.default.dirname(a);if(t===a)return e;a=t}},T=async t=>{try{return await P("tmux",["-L",E,"has-session","-t",t],{timeout:5e3}),!0}catch{return!1}},C=async()=>{},k=async()=>{await C();let t=await N();t.length>0&&t.forEach(t=>{v.debug(`existing tmux session found: ${t}`)})},A=async t=>{if(g)try{return await r.default.readlink(`/proc/${t}/cwd`)}catch{return null}try{let{stdout:e}=await P("lsof",["-a","-p",String(t),"-d","cwd","-Fn"],{timeout:5e3}),r=e.split("\n").find(t=>t.startsWith("n/"));return r?r.slice(1):null}catch{return null}},q=async t=>{let e=await O(t);if(e){let t=await A(e);if(t)return t}try{let{stdout:e}=await P("tmux",["-L",E,"display-message","-p","-t",t,"#{pane_current_path}"],{timeout:5e3});return e.trim()||null}catch{return null}},O=async t=>{try{let{stdout:e}=await P("tmux",["-L",E,"display-message","-p","-t",t,"#{pane_pid}"],{timeout:5e3}),r=parseInt(e.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},D=async()=>{try{await P("tmux",["-L",E,"source-file",I],{timeout:5e3})}catch{}},j=async t=>{try{let{stdout:e}=await P("tmux",["-L",E,"list-panes","-t",t,"-F","#{pane_current_command}"],{timeout:5e3});return e.trim()||null}catch{return null}},H=async()=>{try{let{stdout:t}=await P("tmux",["-L",E,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),e=new Map;for(let r of t.trim().split("\n")){if(!r)continue;let[t,a,i,n,s]=r.split(" ");if(t&&a){let r=parseInt(n,10),l=parseInt(s,10);e.set(t,{command:a,path:i||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return e}catch{return new Map}},U=new Set(["bash","zsh","fish","sh","dash"]),G=async t=>{let e=await j(t);return e?{isSafe:U.has(e),processName:e}:{isSafe:!1,processName:"unknown"}},F=async t=>{try{let{stdout:e}=await P("tmux",["-L",E,"display-message","-p","-t",t,"#{pane_title}"],{timeout:5e3});return e.trim()||null}catch{return null}},K=async t=>{await P("tmux",["-L",E,"copy-mode","-q","-t",t],{timeout:5e3}).catch(()=>{})},V=async(t,e)=>{await K(t),await P("tmux",["-L",E,"send-keys","-t",t,e,"Enter"],{timeout:5e3})},X=async(t,e)=>{await K(t),await P("tmux",["-L",E,"send-keys","-t",t,e],{timeout:5e3}),await M(50),await P("tmux",["-L",E,"send-keys","-t",t,"Enter"],{timeout:5e3})},W=async(t,e)=>{await K(t),await P("tmux",["-L",E,"send-keys","-t",t,e],{timeout:5e3})},B=async(t,e)=>{await K(t),await P("tmux",["-L",E,"send-keys","-t",t,"-l",`\x1b[200~${e}\x1b[201~`],{timeout:5e3}),await P("tmux",["-L",E,"send-keys","-t",t,"Enter"],{timeout:5e3}),await new Promise(t=>setTimeout(t,600)),await P("tmux",["-L",E,"send-keys","-t",t,"Enter"],{timeout:5e3})},Y=async t=>{try{let{stdout:e}=await P("tmux",["-L",E,"display-message","-p","-t",t,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,i,n,s,l]=e.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}}},z=new Set(["node","python","python3","ruby","perl","deno","bun"]),J=async()=>{try{await P("tmux",["-L",E,"kill-server"],{timeout:5e3}),v.debug("tmux server killed")}catch{}},Z=async t=>{try{let{stdout:e}=await P("tmux",["-L",E,"capture-pane","-p","-t",t],{timeout:5e3});return e}catch{return null}},Q=async(t,e)=>{try{let{stdout:r}=await P("tmux",["-L",E,"capture-pane","-p","-S",`-${e}`,"-t",t],{timeout:5e3});return r}catch{return null}},tt=async t=>{if(g){let e=[];return await Promise.all(t.map(async t=>{try{for(let a of(await r.default.readFile(`/proc/${t}/task/${t}/children`,"utf-8")).trim().split(/\s+/)){let t=parseInt(a,10);Number.isNaN(t)||e.push(t)}}catch{}})),e}try{let{stdout:e}=await P("pgrep",["-P",t.join(",")],{timeout:5e3});return e.trim().split("\n").map(t=>parseInt(t,10)).filter(t=>!Number.isNaN(t))}catch{return[]}},te=async t=>{let e=[],r=[t];for(;r.length>0;){let t=await tt(r);if(0===t.length)break;e.push(...t),r=t}return e},tr=async t=>{try{let e=new Set(t),{stdout:r}=await P("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let t of r.split("\n")){let r=t.match(/pid=(\d+)/g);if(!r||!r.some(t=>e.has(parseInt(t.replace("pid=",""),10))))continue;let i=t.match(/:(\d+)\s/);i&&a.add(parseInt(i[1],10))}return[...a].sort((t,e)=>t-e)}catch{return[]}},ta=async t=>{let e=await te(t);if(0===e.length)return[];if(g)return tr(e);try{let{stdout:t}=await P("lsof",["-a","-p",e.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let e of t.split("\n"))if(e.startsWith("n")){let t=e.match(/:(\d+)$/);t&&r.add(parseInt(t[1],10))}return[...r].sort((t,e)=>t-e)}catch{return[]}},ti=async t=>{let e=await O(t);if(!e)return null;try{let{stdout:t}=await P("pgrep",["-n","-P",String(e)],{timeout:5e3}),r=t.trim();if(!r)return null;let a=await _(r,{timeoutMs:5e3});if(!a)return null;let n=a.split(/\s+/);if(0===n.length)return a;if(n[0]=i.default.basename(n[0]),z.has(n[0])&&n.length>1){let t=i.default.basename(n[1]).replace(/\.(c|m)?js$/,"");n.splice(0,2,t)}return n.join(" ")}catch{return null}};t.s(["SAFE_SHELLS",0,U,"applyConfig",0,D,"capturePaneContent",0,Z,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,G,"createSession",0,b,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,K,"getAllPanesInfo",0,H,"getLastCommand",0,ti,"getListeningPorts",0,ta,"getPaneCurrentCommand",0,j,"getPaneDetailInfo",0,Y,"getPaneTitle",0,F,"getSessionCwd",0,q,"getSessionPanePid",0,O,"hasSession",0,T,"killServer",0,J,"killSession",0,$,"listSessions",0,N,"resolveExistingDir",0,R,"scanSessions",0,k,"sendBracketedPaste",0,B,"sendKeys",0,V,"sendKeysSeparated",0,X,"sendRawKeys",0,W,"workspaceSessionName",0,(t,e,r)=>`pt-${t}-${e}-${r}`],459015)},422392,t=>{"use strict";let e=new Map,r=6e4;t.s(["getCached",0,t=>{let r=e.get(t);return r?Date.now()>r.expiresAt?(e.delete(t),null):r.data:null},"setCached",0,(t,a,i=r)=>{e.set(t,{data:a,expiresAt:Date.now()+i})}])},231650,t=>{"use strict";var e=t.i(926747),r=t.i(190406),a=t.i(244898),i=t.i(262950),n=t.i(233405),s=t.i(224361),l=t.i(459015),o=t.i(422392);let u=(0,s.promisify)(n.execFile),c=async t=>{try{let{stdout:e}=await u("git",["-C",t,"rev-list","--left-right","--count","HEAD...@{upstream}"],{timeout:5e3}),r=e.trim().split(/\s+/);return{ahead:parseInt(r[0],10)||0,behind:parseInt(r[1],10)||0}}catch{return{ahead:0,behind:0}}},p=async t=>{try{let{stdout:e}=await u("git",["-C",t,"stash","list"],{timeout:5e3});return e.trim()?e.trim().split("\n").length:0}catch{return 0}},d=async t=>{try{let{stdout:e}=await u("git",["-C",t,"diff","--numstat"],{timeout:5e3}),r=0,a=0;for(let t of e.split("\n")){if(!t)continue;let[e,i]=t.split(" ");"-"!==e&&"-"!==i&&(r+=parseInt(e,10)||0,a+=parseInt(i,10)||0)}return{insertions:r,deletions:a}}catch{return{insertions:0,deletions:0}}},m="__COMMIT__",f=/(\d+) files? changed(?:, (\d+) insertions?\(\+\))?(?:, (\d+) deletions?\(-\))?/,h=async(t,e=3)=>{try{let{stdout:r}=await u("git",["-C",t,"log",`-${e}`,`--format=${m}%H|%an|%at|%P|%s`,"--shortstat"],{timeout:5e3});return r.split(m).map(t=>t.trim()).filter(Boolean).map(t=>{let[e,r]=t.split("\n").map(t=>t.trim()),[a,i,n,s,...l]=e.split("|"),o=l.join("|"),u=s.trim().split(/\s+/).length>1,c=0,p=0,d=0;if(r){let t=r.match(f);t&&(c=parseInt(t[1],10)||0,p=parseInt(t[2],10)||0,d=parseInt(t[3],10)||0)}return{hash:a,shortHash:a.slice(0,7),author:i,timestamp:1e3*parseInt(n,10),subject:o,isMerge:u,filesChanged:c,insertions:p,deletions:d}})}catch{return[]}},y=async(t,e={})=>{let r=await (0,l.getSessionCwd)(t);if(!r)throw Error("tmux-session-not-found");let a=`git-status:${r}`;if(!e.force){let t=(0,o.getCached)(a);if(null!==t)return t}try{let{stdout:t}=await u("git",["-C",r,"status","--porcelain"],{timeout:5e3}),e=(t=>{let e=0,r=0,a=0;for(let i of t.split("\n")){if(!i)continue;let t=i[0],n=i[1];"?"===t?a++:(t&&" "!==t&&"?"!==t&&e++,n&&" "!==n&&"?"!==n&&r++)}return{staged:e,modified:r,untracked:a}})(t),[i,n,s,l]=await Promise.all([c(r),p(r),d(r),h(r)]),m={...e,...i,stash:n,...s,recentCommits:l};return(0,o.setCached)(a,m,15e3),m}catch(t){if(128===t.code)return(0,o.setCached)(a,null,15e3),null;throw t}},g=(0,t.i(25146).createLogger)("git"),w=async(t,e)=>{if("GET"!==t.method)return e.setHeader("Allow","GET"),e.status(405).json({error:"Method not allowed"});let r=t.query.tmuxSession;if(!r)return e.status(400).json({error:"missing-param",message:"tmuxSession parameter required"});let a="true"===t.query.force||"1"===t.query.force;try{let t=await y(r,{force:a});return e.status(200).json({status:t})}catch(r){let t=r instanceof Error?r.message:String(r);if("tmux-session-not-found"===t)return e.status(404).json({error:"tmux-session-not-found"});return g.error(`status query failed: ${t}`),e.status(500).json({error:"git-error"})}};t.s(["default",0,w],70287);var S=t.i(70287),x=t.i(7031),_=t.i(181927),L=t.i(846432);let v=(0,i.hoist)(S,"default"),P=(0,i.hoist)(S,"config"),E=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/git/status",pathname:"/api/git/status",bundlePath:"",filename:""},userland:S,distDir:".next",relativeProjectDir:""});async function I(t,r,a){a.requestMeta&&(0,L.setRequestMeta)(t,a.requestMeta),E.isDev&&(0,L.addRequestMeta)(t,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/git/status";i=i.replace(/\/index$/,"")||"/";let n=await E.prepare(t,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 e,a=t.method||"GET",n=(0,x.getTracer)(),c=n.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),d=E.instrumentationOnRequestError.bind(E),m=async c=>E.render(t,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:E.isDev,page:"/api/git/status",internalRevalidate:null==u?void 0:u.revalidate,onError:(...e)=>d(t,...e)}).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let t=n.getRootSpanAttributes();if(!t)return;if(t.get("next.span_type")!==_.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${t.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=t.get("next.route");if(s){let t=`${a} ${s}`;c.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),c.updateName(t),e&&e!==c&&(e.setAttribute("http.route",s),e.updateName(t))}else c.updateName(`${a} ${i}`)});p&&c?await m(c):(e=n.getActiveScopeSpan(),await n.withPropagatedContext(t.headers,()=>n.trace(_.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:x.SpanKind.SERVER,attributes:{"http.method":a,"http.target":t.url}},m),void 0,!p))}catch(t){if(E.isDev)throw t;(0,e.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}t.s(["config",0,P,"default",0,v,"handler",0,I],231650)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0j.iwzl._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let s of r.values())if(s.matchesProcess(e,t))return s;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},853932,e=>{"use strict";var t=e.i(282992);let r={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},s={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},i=async(e,i)=>{let n=(0,t.listProviders)(),a=n.length>0;for(let t of n){let r=await t.detectActiveSession(e,i);if("running"===r.status)return{provider:t,info:r};"not-installed"!==r.status&&(a=!1)}return{provider:null,info:a?s:r}};e.s(["detectAnyActiveSession",0,i])},462180,e=>{"use strict";var t=e.i(798415),r=e.i(751905),s=e.i(282992);e.i(853932),(0,s.registerProvider)(t.claudeProvider),(0,s.registerProvider)(r.codexProvider),e.s([])},377896,e=>{"use strict";var t=e.i(459015),r=e.i(333184);e.i(462180);var s=e.i(282992);let i=async(e,i)=>{if("GET"!==e.method)return i.setHeader("Allow","GET"),i.status(405).json({error:"Method not allowed"});let n=e.query.session;if(!n)return i.status(400).json({error:"session parameter required"});let a=Date.now();if(!await (0,t.hasSession)(n))return i.status(200).json({running:!1,checkedAt:a,sessionId:null});let l=await (0,t.getSessionPanePid)(n);if(!l)return i.status(200).json({running:!1,checkedAt:a,sessionId:null});let o=await (0,r.getChildPids)(l);for(let e of(0,s.listProviders)()){if(!await e.isAgentRunning(l,o))continue;let t=await e.detectActiveSession(l,o);return i.status(200).json({running:!0,checkedAt:a,sessionId:t.sessionId,resumable:!!t.jsonlPath,providerId:e.id,providerDisplayName:e.displayName,providerPanelType:e.panelType})}return i.status(200).json({running:!1,checkedAt:a,sessionId:null})};e.s(["default",0,i])},727130,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),i=e.i(262950),n=e.i(377896);e.s([],333977),e.i(333977),e.s(["default",()=>n.default],102649);var a=e.i(102649),l=e.i(7031),o=e.i(181927),u=e.i(846432);let d=(0,i.hoist)(a,"default"),p=(0,i.hoist)(a,"config"),c=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/check-claude",pathname:"/api/check-claude",bundlePath:"",filename:""},userland:a,distDir:".next",relativeProjectDir:""});async function v(e,r,s){s.requestMeta&&(0,u.setRequestMeta)(e,s.requestMeta),c.isDev&&(0,u.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/check-claude";i=i.replace(/\/index$/,"")||"/";let n=await c.prepare(e,r,{srcPage:i});if(!n){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:a,params:d,prerenderManifest:p,routerServerContext:v}=n;try{let t,s=e.method||"GET",n=(0,l.getTracer)(),u=n.getActiveScopeSpan(),h=!!(null==v?void 0:v.isWrappedByNextServer),g=c.instrumentationOnRequestError.bind(c),f=async l=>c.render(e,r,{query:{...a,...d},params:d,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:p.preview,propagateError:!1,dev:c.isDev,page:"/api/check-claude",internalRevalidate:null==v?void 0:v.revalidate,onError:(...t)=>g(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")!==o.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}`;l.setAttributes({"next.route":a,"http.route":a,"next.span_name":e}),l.updateName(e),t&&t!==l&&(t.setAttribute("http.route",a),t.updateName(e))}else l.updateName(`${s} ${i}`)});h&&u?await f(u):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(o.BaseServerSpan.handleRequest,{spanName:`${s} ${i}`,kind:l.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},f),void 0,!h))}catch(e){if(c.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,p,"default",0,d,"handler",0,v],727130)},981532,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_workspace-store_ts_0vqt073._.js"].map(t=>e.l(t))).then(()=>t(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__0jnxiiv._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let s of r.values())if(s.matchesProcess(e,t))return s;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},853932,e=>{"use strict";var t=e.i(282992);let r={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},s={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},n=async(e,n)=>{let i=(0,t.listProviders)(),a=i.length>0;for(let t of i){let r=await t.detectActiveSession(e,n);if("running"===r.status)return{provider:t,info:r};"not-installed"!==r.status&&(a=!1)}return{provider:null,info:a?s:r}};e.s(["detectAnyActiveSession",0,n])},462180,e=>{"use strict";var t=e.i(798415),r=e.i(751905),s=e.i(282992);e.i(853932),(0,s.registerProvider)(t.claudeProvider),(0,s.registerProvider)(r.codexProvider),e.s([])},377896,e=>{"use strict";var t=e.i(459015),r=e.i(333184);e.i(462180);var s=e.i(282992);let n=async(e,n)=>{if("GET"!==e.method)return n.setHeader("Allow","GET"),n.status(405).json({error:"Method not allowed"});let i=e.query.session;if(!i)return n.status(400).json({error:"session parameter required"});let a=Date.now();if(!await (0,t.hasSession)(i))return n.status(200).json({running:!1,checkedAt:a,sessionId:null});let l=await (0,t.getSessionPanePid)(i);if(!l)return n.status(200).json({running:!1,checkedAt:a,sessionId:null});let o=await (0,r.getChildPids)(l);for(let e of(0,s.listProviders)()){if(!await e.isAgentRunning(l,o))continue;let t=await e.detectActiveSession(l,o);return n.status(200).json({running:!0,checkedAt:a,sessionId:t.sessionId,resumable:!!t.jsonlPath,providerId:e.id,providerDisplayName:e.displayName,providerPanelType:e.panelType})}return n.status(200).json({running:!1,checkedAt:a,sessionId:null})};e.s(["default",0,n])},867843,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),n=e.i(262950),i=e.i(377896),a=e.i(7031),l=e.i(181927),o=e.i(846432);let u=(0,n.hoist)(i,"default"),d=(0,n.hoist)(i,"config"),p=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/check-agent",pathname:"/api/check-agent",bundlePath:"",filename:""},userland:i,distDir:".next",relativeProjectDir:""});async function v(e,r,s){s.requestMeta&&(0,o.setRequestMeta)(e,s.requestMeta),p.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/check-agent";n=n.replace(/\/index$/,"")||"/";let i=await p.prepare(e,r,{srcPage:n});if(!i){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:u,params:d,prerenderManifest:v,routerServerContext:c}=i;try{let t,s=e.method||"GET",i=(0,a.getTracer)(),o=i.getActiveScopeSpan(),g=!!(null==c?void 0:c.isWrappedByNextServer),h=p.instrumentationOnRequestError.bind(p),P=async a=>p.render(e,r,{query:{...u,...d},params:d,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:v.preview,propagateError:!1,dev:p.isDev,page:"/api/check-agent",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==l.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=`${s} ${o}`;a.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),a.updateName(e),t&&t!==a&&(t.setAttribute("http.route",o),t.updateName(e))}else a.updateName(`${s} ${n}`)});g&&o?await P(o):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(l.BaseServerSpan.handleRequest,{spanName:`${s} ${n}`,kind:a.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},P),void 0,!g))}catch(e){if(p.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,d,"default",0,u,"handler",0,v])},981532,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_workspace-store_ts_0vqt073._.js"].map(t=>e.l(t))).then(()=>t(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__0jzp9~o._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[319668,(t,e,n)=>{e.exports=t.x("readline",()=>require("readline"))},990294,(t,e,n)=>{t.e,e.exports=function(){"use strict";var t="millisecond",e="second",n="minute",a="hour",s="week",r="month",i="quarter",u="year",o="date",c="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,p=function(t,e,n){var a=String(t);return!a||a.length>=e?t:""+Array(e+1-a.length).join(n)+t},f="en",h={};h[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}};var m="$isDayjsObject",y=function(t){return t instanceof M||!(!t||!t[m])},g=function t(e,n,a){var s;if(!e)return f;if("string"==typeof e){var r=e.toLowerCase();h[r]&&(s=r),n&&(h[r]=n,s=r);var i=e.split("-");if(!s&&i.length>1)return t(i[0])}else{var u=e.name;h[u]=e,s=u}return!a&&s&&(f=s),s||!a&&f},w=function(t,e){if(y(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new M(n)},$={s:p,z:function(t){var e=-t.utcOffset(),n=Math.abs(e);return(e<=0?"+":"-")+p(Math.floor(n/60),2,"0")+":"+p(n%60,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var a=12*(n.year()-e.year())+(n.month()-e.month()),s=e.clone().add(a,r),i=n-s<0,u=e.clone().add(a+(i?-1:1),r);return+(-(a+(n-s)/(i?s-u:u-s))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(c){return({M:r,y:u,w:s,d:"day",D:o,h:a,m:n,s:e,ms:t,Q:i})[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}};$.l=g,$.i=y,$.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var M=function(){function p(t){this.$L=g(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[m]=!0}var f=p.prototype;return f.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if($.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var a=e.match(l);if(a){var s=a[2]-1||0,r=(a[7]||"0").substring(0,3);return n?new Date(Date.UTC(a[1],s,a[3]||1,a[4]||0,a[5]||0,a[6]||0,r)):new Date(a[1],s,a[3]||1,a[4]||0,a[5]||0,a[6]||0,r)}}return new Date(e)}(t),this.init()},f.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},f.$utils=function(){return $},f.isValid=function(){return this.$d.toString()!==c},f.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},f.isAfter=function(t,e){return w(t)<this.startOf(e)},f.isBefore=function(t,e){return this.endOf(e)<w(t)},f.$g=function(t,e,n){return $.u(t)?this[e]:this.set(n,t)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(t,i){var c=this,l=!!$.u(i)||i,d=$.p(t),p=function(t,e){var n=$.w(c.$u?Date.UTC(c.$y,e,t):new Date(c.$y,e,t),c);return l?n:n.endOf("day")},f=function(t,e){return $.w(c.toDate()[t].apply(c.toDate("s"),(l?[0,0,0,0]:[23,59,59,999]).slice(e)),c)},h=this.$W,m=this.$M,y=this.$D,g="set"+(this.$u?"UTC":"");switch(d){case u:return l?p(1,0):p(31,11);case r:return l?p(1,m):p(0,m+1);case s:var w=this.$locale().weekStart||0,M=(h<w?h+7:h)-w;return p(l?y-M:y+(6-M),m);case"day":case o:return f(g+"Hours",0);case a:return f(g+"Minutes",1);case n:return f(g+"Seconds",2);case e:return f(g+"Milliseconds",3);default:return this.clone()}},f.endOf=function(t){return this.startOf(t,!1)},f.$set=function(s,i){var c,l=$.p(s),d="set"+(this.$u?"UTC":""),p=((c={}).day=d+"Date",c[o]=d+"Date",c[r]=d+"Month",c[u]=d+"FullYear",c[a]=d+"Hours",c[n]=d+"Minutes",c[e]=d+"Seconds",c[t]=d+"Milliseconds",c)[l],f="day"===l?this.$D+(i-this.$W):i;if(l===r||l===u){var h=this.clone().set(o,1);h.$d[p](f),h.init(),this.$d=h.set(o,Math.min(this.$D,h.daysInMonth())).$d}else p&&this.$d[p](f);return this.init(),this},f.set=function(t,e){return this.clone().$set(t,e)},f.get=function(t){return this[$.p(t)]()},f.add=function(t,i){var o,c=this;t=Number(t);var l=$.p(i),d=function(e){var n=w(c);return $.w(n.date(n.date()+Math.round(e*t)),c)};if(l===r)return this.set(r,this.$M+t);if(l===u)return this.set(u,this.$y+t);if("day"===l)return d(1);if(l===s)return d(7);var p=((o={})[n]=6e4,o[a]=36e5,o[e]=1e3,o)[l]||1,f=this.$d.getTime()+t*p;return $.w(f,this)},f.subtract=function(t,e){return this.add(-1*t,e)},f.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||c;var a=t||"YYYY-MM-DDTHH:mm:ssZ",s=$.z(this),r=this.$H,i=this.$m,u=this.$M,o=n.weekdays,l=n.months,p=n.meridiem,f=function(t,n,s,r){return t&&(t[n]||t(e,a))||s[n].slice(0,r)},h=function(t){return $.s(r%12||12,t,"0")},m=p||function(t,e,n){var a=t<12?"AM":"PM";return n?a.toLowerCase():a};return a.replace(d,function(t,a){return a||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return $.s(e.$y,4,"0");case"M":return u+1;case"MM":return $.s(u+1,2,"0");case"MMM":return f(n.monthsShort,u,l,3);case"MMMM":return f(l,u);case"D":return e.$D;case"DD":return $.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return f(n.weekdaysMin,e.$W,o,2);case"ddd":return f(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(r);case"HH":return $.s(r,2,"0");case"h":return h(1);case"hh":return h(2);case"a":return m(r,i,!0);case"A":return m(r,i,!1);case"m":return String(i);case"mm":return $.s(i,2,"0");case"s":return String(e.$s);case"ss":return $.s(e.$s,2,"0");case"SSS":return $.s(e.$ms,3,"0");case"Z":return s}return null}(t)||s.replace(":","")})},f.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},f.diff=function(t,o,c){var l,d=this,p=$.p(o),f=w(t),h=(f.utcOffset()-this.utcOffset())*6e4,m=this-f,y=function(){return $.m(d,f)};switch(p){case u:l=y()/12;break;case r:l=y();break;case i:l=y()/3;break;case s:l=(m-h)/6048e5;break;case"day":l=(m-h)/864e5;break;case a:l=m/36e5;break;case n:l=m/6e4;break;case e:l=m/1e3;break;default:l=m}return c?l:$.a(l)},f.daysInMonth=function(){return this.endOf(r).$D},f.$locale=function(){return h[this.$L]},f.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),a=g(t,e,!0);return a&&(n.$L=a),n},f.clone=function(){return $.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},p}(),_=M.prototype;return w.prototype=_,[["$ms",t],["$s",e],["$m",n],["$H",a],["$W","day"],["$M",r],["$y",u],["$D",o]].forEach(function(t){_[t[1]]=function(e){return this.$g(e,t[0],t[1])}}),w.extend=function(t,e){return t.$i||(t(e,M,w),t.$i=!0),w},w.locale=g,w.isDayjs=y,w.unix=function(t){return w(1e3*t)},w.en=h[f],w.Ls=h,w.p={},w}()},975925,t=>{"use strict";var e=t.i(990294);let n=t=>{let n=new Date;switch(t){case"today":return{start:(0,e.default)().startOf("day").toDate(),end:n};case"7d":return{start:(0,e.default)().subtract(7,"day").startOf("day").toDate(),end:n};case"30d":return{start:(0,e.default)().subtract(30,"day").startOf("day").toDate(),end:n};case"all":return{start:new Date(0),end:n}}};t.s(["isDateStringWithinPeriod",0,(t,a)=>{if("all"===a)return!0;let{start:s,end:r}=n(a),i=(0,e.default)(t).toDate();return i>=s&&i<=r},"isWithinPeriod",0,(t,e)=>{if("all"===e)return!0;let{start:a,end:s}=n(e),r=new Date(t);return r>=a&&r<=s},"parsePeriod",0,t=>"today"===t||"7d"===t||"30d"===t||"all"===t?t:"all"])},125639,t=>{"use strict";var e=t.i(924868),n=t.i(522734),a=t.i(814747),s=t.i(446786),r=t.i(319668),i=t.i(25146),u=t.i(975925);let o={"gpt-5.5":{input:5,cachedInput:.5,output:30,longContext:{input:10,cachedInput:1,output:45}},"gpt-5.4":{input:2.5,cachedInput:.25,output:15,longContext:{input:5,cachedInput:.5,output:22.5}},"gpt-5.4-mini":{input:.75,cachedInput:.075,output:4.5},"gpt-5.4-nano":{input:.2,cachedInput:.02,output:1.25},"gpt-5.2-codex":{input:1.75,cachedInput:.175,output:14},"gpt-5.2-chat-latest":{input:1.75,cachedInput:.175,output:14},"gpt-5.2":{input:1.75,cachedInput:.175,output:14},"gpt-5.1-codex-max":{input:1.25,cachedInput:.125,output:10},"gpt-5.1-codex":{input:1.25,cachedInput:.125,output:10},"gpt-5.1-chat-latest":{input:1.25,cachedInput:.125,output:10},"gpt-5.1":{input:1.25,cachedInput:.125,output:10},"gpt-5-codex":{input:1.25,cachedInput:.125,output:10},"gpt-5-chat-latest":{input:1.25,cachedInput:.125,output:10},"gpt-5-mini":{input:.25,cachedInput:.025,output:2},"gpt-5-nano":{input:.05,cachedInput:.005,output:.4},"gpt-5":{input:1.25,cachedInput:.125,output:10},"gpt-4.1-mini":{input:.4,cachedInput:.1,output:1.6},"gpt-4.1-nano":{input:.1,cachedInput:.025,output:.4},"gpt-4.1":{input:2,cachedInput:.5,output:8},"gpt-4o-mini":{input:.15,cachedInput:.075,output:.6},"gpt-4o":{input:2.5,cachedInput:1.25,output:10}};var c=t.i(7991);let l=(0,i.createLogger)("codex-stats-parser"),d=a.default.join(s.default.homedir(),".codex","sessions"),p=globalThis;p.__ptCodexStatsCache||(p.__ptCodexStatsCache=new Map);let f=p.__ptCodexStatsCache,h=t=>a.default.join(d,String(t.getFullYear()),String(t.getMonth()+1).padStart(2,"0"),String(t.getDate()).padStart(2,"0")),m=t=>{let e=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!e)return null;let n=Number(e[1]),a=Number(e[2]),s=Number(e[3]);return n&&a&&s?new Date(n,a-1,s):null},y=async(t,e)=>{let n=[],a=0,s=async()=>{for(;a<t.length;){let e=a++;n[e]=await t[e]()}};return await Promise.all(Array.from({length:Math.min(e,t.length)},()=>s())),n},g=async(t=d)=>{let n;try{n=await e.default.readdir(t)}catch{return[]}let s=[];for(let r of n){let n=a.default.join(t,r),i=await e.default.stat(n).catch(()=>null);i?.isDirectory()?s.push(...await g(n)):i?.isFile()&&r.endsWith(".jsonl")&&s.push(n)}return s},w=async t=>{let n=[];for(let s of t){let t,r=m(s);if(r){try{t=await e.default.readdir(h(r))}catch{continue}for(let e of t)e.endsWith(".jsonl")&&n.push(a.default.join(h(r),e))}}return n},$=async t=>{if("all"===t)return g();let e=[],n=new Date,a="today"===t?1:"7d"===t?7:30;for(let t=0;t<a;t++){let a=new Date(n);a.setDate(n.getDate()-t),e.push(`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,"0")}-${String(a.getDate()).padStart(2,"0")}`)}return w(e)},M=t=>"number"==typeof t&&Number.isFinite(t)?t:null,_=async t=>{let e=(0,n.createReadStream)(t,{encoding:"utf-8",start:0}),a=r.default.createInterface({input:e,crlfDelay:1/0}),s={sessionId:null,startedAt:0,cwd:null};try{for await(let t of a){let e=t.trim();if(e){try{let t=JSON.parse(e);if("session_meta"!==t.type||!t.payload)break;s={sessionId:t.payload.id??null,startedAt:t.payload.timestamp?Date.parse(t.payload.timestamp):t.timestamp?Date.parse(t.timestamp):0,cwd:t.payload.cwd??null}}catch{}break}}}finally{a.close(),e.destroy()}return s},k=async(t,e,a)=>{let s=Math.max(0,a-e),i=(0,n.createReadStream)(t,{encoding:"utf-8",start:s}),u=r.default.createInterface({input:i,crlfDelay:1/0}),o=[];try{for await(let t of u)o.push(t)}finally{u.close(),i.destroy()}return s>0&&o.length>0&&o.shift(),o},D=async t=>{let e=(0,n.createReadStream)(t,{encoding:"utf-8"}),a=r.default.createInterface({input:e,crlfDelay:1/0}),s={sessionId:null,cwd:null,startedAt:0,lastActivityAt:0,messageCount:0,userMessages:[]};try{for await(let t of a){let e=t.trim();if(e)try{let t=JSON.parse(e),n=t.timestamp?Date.parse(t.timestamp):0;if(n&&n>s.lastActivityAt&&(s.lastActivityAt=n),"session_meta"===t.type&&t.payload){s.sessionId=t.payload.id??s.sessionId,s.cwd=t.payload.cwd??s.cwd;let e=t.payload.timestamp?Date.parse(t.payload.timestamp):n;e&&(s.startedAt=e);continue}if("event_msg"===t.type&&t.payload?.type==="user_message"){let e="string"==typeof t.payload.message?t.payload.message:"",a=n||s.startedAt;e&&a&&(s.messageCount++,s.userMessages.push({timestamp:a,text:e}))}}catch{}}}catch{}finally{a.close(),e.destroy()}return!s.startedAt&&s.userMessages.length>0&&(s.startedAt=s.userMessages[0].timestamp),s.lastActivityAt||(s.lastActivityAt=s.userMessages.at(-1)?.timestamp??s.startedAt),s},S=(t,e)=>{if(t){if("number"==typeof t.resets_in_seconds)return t.resets_in_seconds;if("number"==typeof t.resets_at)return Math.max(0,Math.round(t.resets_at-e/1e3))}},x=async(t,e)=>{let n=await _(t);if(!n.sessionId||!n.startedAt)return null;let{tokenCount:a,model:s}=(t=>{let e=null,n=null;for(let a=t.length-1;a>=0;a--){let s=t[a];if(s)try{let t=JSON.parse(s),a=t.payload;if(!a)continue;if(n||"turn_context"!==t.type||"string"!=typeof a.model||(n=a.model),!e&&"event_msg"===t.type&&"token_count"===a.type&&a.info&&(e={info:a.info,rateLimits:a.rate_limits??null}),e&&n)break}catch{}}return{tokenCount:e,model:n}})(await k(t,1048576,e.size)),r=a?.info,i=r?.total_token_usage??r?.last_token_usage,u=i?.input_tokens??0,c=i?.cached_input_tokens??0,l=i?.output_tokens??0,d=i?.reasoning_output_tokens??0,p=r?.total_token_usage?.total_tokens??r?.last_token_usage?.total_tokens??0,f=Math.max(0,u-c)+l,h=r?.last_token_usage?.total_tokens??p,m=r?.model_context_window??0,y=m>0?Math.round(h/m*100):null,g=a?((t,e)=>{let{info:n,rateLimits:a}=t;return{rateLimits:a?{primary:a.primary&&"number"==typeof a.primary.used_percent?{usedPercent:a.primary.used_percent,windowMinutes:a.primary.window_minutes,resetsInSeconds:S(a.primary,e)}:void 0,secondary:a.secondary&&"number"==typeof a.secondary.used_percent?{usedPercent:a.secondary.used_percent,windowMinutes:a.secondary.window_minutes,resetsInSeconds:S(a.secondary,e)}:void 0}:null,modelContextWindow:M(n.model_context_window),cachedInputTokens:M(n.total_token_usage?.cached_input_tokens),reasoningOutputTokens:M(n.total_token_usage?.reasoning_output_tokens),capturedAt:e}})(a,e.mtimeMs):null,w=((t,e,n,a,s)=>{if(!t)return null;let r=(t=>{let e=t.toLowerCase().trim().replace(/^(openai\/|models\/)/,"").replace(/-\d{4}-\d{2}-\d{2}$/,"").replace(/-\d{8}$/,"");if(o[e])return o[e];let n=Object.keys(o).sort((t,e)=>e.length-t.length).find(t=>e===t||e.startsWith(`${t}-`));return n?o[n]:null})(t);if(!r)return null;let i=r.longContext&&s&&s>2e5?r.longContext:r,u=Math.max(0,n),c=Math.max(0,e-u),l=i.cachedInput??i.input;return c/1e6*i.input+u/1e6*l+Math.max(0,a)/1e6*i.output})(s,u,c,l,m);return{sessionId:n.sessionId,jsonlPath:t,startedAt:n.startedAt,cwd:n.cwd,model:s,inputTokens:u,cachedInputTokens:c,outputTokens:l,reasoningOutputTokens:d,totalTokens:f,currentContextTokens:h,contextWindowSize:m,usedPercentage:y,cost:w,extras:g}},I=async t=>{let n;try{n=await e.default.stat(t)}catch{return null}let a=f.get(t);if(a&&a.mtimeMs===n.mtimeMs&&Date.now()-a.cachedAt<3e4)return a.stats;try{let e=await x(t,n);return f.set(t,{stats:e,mtimeMs:n.mtimeMs,cachedAt:Date.now()}),e}catch(e){return l.warn({err:e instanceof Error?e.message:e,jsonlPath:t},"codex jsonl parse failed"),f.set(t,{stats:null,mtimeMs:n.mtimeMs,cachedAt:Date.now()}),null}},v=async t=>{let e=await I(t);return e?{sessionId:e.sessionId,transcriptPath:e.jsonlPath,inputTokens:e.inputTokens,cachedInputTokens:e.cachedInputTokens,outputTokens:e.outputTokens,reasoningOutputTokens:e.reasoningOutputTokens,cost:e.cost,currentContextTokens:e.currentContextTokens,contextWindowSize:e.contextWindowSize,usedPercentage:e.usedPercentage,model:e.model,exceeds200k:e.currentContextTokens>2e5,receivedAt:Date.now()}:null},A=t=>{let e=new Date(t);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`},C=async t=>{let e=await $(t);if(0===e.length)return{daily:[],totals:{tokens:0,tokensWithCached:0,sessions:0,cachedInputTokens:0},extras:null,sessions:[]};let n=await Promise.all(e.map(I)),a=[];for(let e of n)e&&(0,u.isWithinPeriod)(e.startedAt,t)&&a.push(e);let s=new Map,r=0,i=0,o=0;for(let t of a){let e=A(t.startedAt),n=s.get(e)??{tokens:0,sessions:0};n.tokens+=t.totalTokens,n.sessions+=1,s.set(e,n),r+=t.totalTokens,i+=t.cachedInputTokens,o+=t.totalTokens+t.cachedInputTokens}let c=Array.from(s.entries()).map(([t,e])=>({date:t,tokens:e.tokens,sessions:e.sessions})).sort((t,e)=>t.date.localeCompare(e.date)),l=a.filter(t=>null!==t.extras).sort((t,e)=>e.extras.capturedAt-t.extras.capturedAt)[0];return{daily:c,totals:{tokens:r,tokensWithCached:o,sessions:a.length,cachedInputTokens:i},extras:l?.extras??null,sessions:a}},T=async()=>(await g()).length,b=async t=>{let e=await $(t);if(0===e.length)return[];let n=e.map(e=>async()=>{let[n,a]=await Promise.all([I(e),D(e)]);if(!n||!(0,u.isWithinPeriod)(n.startedAt,t))return null;let s=n.startedAt||a.startedAt,r=Math.max(a.lastActivityAt,s);return{sessionId:n.sessionId,project:n.cwd?(0,c.shortenCwd)(n.cwd):a.cwd?(0,c.shortenCwd)(a.cwd):"",startedAt:new Date(s).toISOString(),lastActivityAt:new Date(r).toISOString(),messageCount:a.messageCount,totalTokens:n.totalTokens,totalTokensWithCached:n.totalTokens+n.cachedInputTokens,model:n.model??""}});return(await y(n,10)).filter(t=>null!==t).sort((t,e)=>e.startedAt.localeCompare(t.startedAt))},O=async t=>{let e=await b(t),n=new Map;for(let t of e){let e=t.project||"(unknown)",a=n.get(e);a?(a.sessionCount++,a.messageCount+=t.messageCount,a.totalTokens+=t.totalTokens):n.set(e,{project:e,sessionCount:1,messageCount:t.messageCount,totalTokens:t.totalTokens})}return Array.from(n.values()).sort((t,e)=>e.totalTokens-t.totalTokens)},W=async t=>{let e=await w(t);if(0===e.length)return new Map;let n=e.map(t=>async()=>D(t)),a=await y(n,10),s=new Map;for(let e of a){let n=e.sessionId?`codex:${e.sessionId}`:`codex:${e.startedAt}`;for(let a of e.userMessages){let e=A(a.timestamp);if(!t.has(e))continue;let r=s.get(e);r||(r=new Map,s.set(e,r));let i=r.get(n);i?i.push(a.timestamp):r.set(n,[a.timestamp])}}return s},j=async t=>{let e=await $(t);if(0===e.length)return[];let n=e.map(t=>async()=>D(t));return(await y(n,10)).flatMap(t=>t.userMessages).filter(e=>(0,u.isWithinPeriod)(e.timestamp,t)).sort((t,e)=>e.timestamp-t.timestamp)};t.s(["countCodexJsonlFiles",0,T,"parseCodexHistory",0,j,"parseCodexJsonl",0,C,"parseCodexProjects",0,O,"parseCodexSessions",0,b,"parseCodexTimestampsByDay",0,W,"readCodexSessionStats",0,t=>I(t),"readCodexTimelineSessionStats",0,v],125639)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0k-me_v._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
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),i=e.i(446786);let o=r.default.join(i.default.homedir(),".purplemux","logs"),s=process.env.LOG_LEVEL||"info",a=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,i]=r.split("=").map(e=>e.trim());e&&i&&(t[e]=i)}return t})(process.env.LOG_LEVELS),n=["trace","debug","info","warn","error","fatal"],l=globalThis;if(!l.__ptRootLogger){let e=[s,...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]??s,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"))},818794,e=>{"use strict";var t=e.i(926747),r=e.i(190406),i=e.i(244898),o=e.i(262950),s=e.i(845994),a=e.i(772601);let n={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!==n.count&&(Date.now()-n.firstAt>9e5?(n={count:0,firstAt:0},!1):n.count>=16))return t.status(429).json({error:"Too many login attempts. Please try again later."});let{password:r}=e.body??{},i=process.env.AUTH_PASSWORD;if(!r||!i||!await (0,s.verifyPassword)(r,i))return 0===n.count||Date.now()-n.firstAt>9e5?n={count:1,firstAt:Date.now()}:n.count++,t.status(401).json({error:"Invalid password."});n={count:0,firstAt:0};let o=await (0,a.signSessionToken)(),l=(0,a.isSecureRequest)(e);return t.setHeader("Set-Cookie",(0,a.buildCookieHeader)(o,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),c=e.i(846432);let x=(0,o.hoist)(u,"default"),f=(0,o.hoist)(u,"config"),m=new i.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/auth/login",pathname:"/api/auth/login",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function g(e,r,i){i.requestMeta&&(0,c.setRequestMeta)(e,i.requestMeta),m.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let o="/api/auth/login";o=o.replace(/\/index$/,"")||"/";let s=await m.prepare(e,r,{srcPage:o});if(!s){r.statusCode=400,r.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve());return}let{query:a,params:n,prerenderManifest:l,routerServerContext:u}=s;try{let t,i=e.method||"GET",s=(0,p.getTracer)(),c=s.getActiveScopeSpan(),x=!!(null==u?void 0:u.isWrappedByNextServer),f=m.instrumentationOnRequestError.bind(m),g=async p=>m.render(e,r,{query:{...a,...n},params:n,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)=>f(e,...t)}).finally(()=>{if(!p)return;p.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.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 a=e.get("next.route");if(a){let e=`${i} ${a}`;p.setAttributes({"next.route":a,"http.route":a,"next.span_name":e}),p.updateName(e),t&&t!==p&&(t.setAttribute("http.route",a),t.updateName(e))}else p.updateName(`${i} ${o}`)});x&&c?await g(c):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(d.BaseServerSpan.handleRequest,{spanName:`${i} ${o}`,kind:p.SpanKind.SERVER,attributes:{"http.method":i,"http.target":e.url}},g),void 0,!x))}catch(e){if(m.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,f,"default",0,x,"handler",0,g],818794)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0l5~4k1._.js.map
|