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=[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),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",w=async e=>{let t=[];for(let a of(0,d.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 k=async e=>{let t,a=new Promise(e=>{t=e}),r=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=a,await r;try{return await e()}finally{t()}},v=()=>({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{p.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,u=JSON.stringify({workspaces:r,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},P=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),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},S=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 p.info("tabs.json → layout.json migration complete"),await P()}catch{return null}},A=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 P():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await S())),!e){let t=v();await W(t),e=t,p.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){p.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,u.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){p.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}},_=async()=>{let e=await I();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},x=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},j=async(e,a,r)=>k(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()??v(),l=`ws-${(0,i.nanoid)(6)}`,u=a?.trim()||(e=>{let t=0;for(let a of e)if(a.name.startsWith(c)){let e=parseInt(a.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,n.createDefaultLayout)(l,e,r);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(d,(0,n.resolveLayoutFile)(l));let f={id:l,name:u,directories:[e]};return o.workspaces.push(f),await W(o),await w(f),p.debug(`Created: ${l} (${u}, ${e})`),f}),L=async e=>k(async()=>{let t=await I()??v(),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,u.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),p.info(`Deleted: ${e} (${r.name})`),!0}),D=async(e,t)=>k(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),p.debug(`Renamed: ${e} → "${t}"`),{...r}):null}),C=async e=>k(async()=>{let t=await I()??v();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)=>k(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=>k(async()=>{let t=await I()??v(),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=>k(async()=>{let t=await I()??v(),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),p.debug(`Group created: ${s.id} (${s.name})`),s}),T=async(e,t)=>k(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}),q=async(e,t)=>k(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))}),E=async e=>k(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),p.info(`Group ungrouped: ${e}`),!0}),O=async e=>k(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)=>k(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,_,"getWorkspaceById",0,x,"getWorkspaces",0,$,"initWorkspaceStore",0,A,"renameGroup",0,T,"renameWorkspace",0,D,"reorderGroups",0,O,"reorderWorkspaces",0,N,"setGroupCollapsed",0,q,"setWorkspaceGroup",0,G,"ungroupGroup",0,E,"updateActive",0,C,"updateWorkspaceDirectories",0,F,"validateDirectory",0,M],322429)},779844,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(825265),o=e.i(322429);let l=async(e,t)=>{if("PATCH"!==e.method)return t.setHeader("Allow","PATCH"),t.status(405).json({error:"Method not allowed"});let a=e.query.workspace||await (0,o.getActiveWorkspaceId)();if(!a)return t.status(400).json({error:"No workspace found"});let r=e.query.paneId,{tabIds:i}=e.body??{};if(!Array.isArray(i)||0===i.length)return t.status(400).json({error:"tabIds array required"});let l=await (0,s.reorderTabsInPane)(a,r,i);return l?t.status(200).json(l):t.status(404).json({error:"Target not found"})};e.s(["default",0,l],970421);var n=e.i(970421),u=e.i(7031),d=e.i(181927),p=e.i(846432);let c=(0,i.hoist)(n,"default"),w=(0,i.hoist)(n,"config"),f=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/layout/pane/[paneId]/tabs/order",pathname:"/api/layout/pane/[paneId]/tabs/order",bundlePath:"",filename:""},userland:n,distDir:".next",relativeProjectDir:""});async function y(e,a,r){r.requestMeta&&(0,p.setRequestMeta)(e,r.requestMeta),f.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/pane/[paneId]/tabs/order";i=i.replace(/\/index$/,"")||"/";let s=await f.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:c}=s;try{let t,r=e.method||"GET",s=(0,u.getTracer)(),p=s.getActiveScopeSpan(),w=!!(null==c?void 0:c.isWrappedByNextServer),y=f.instrumentationOnRequestError.bind(f),g=async u=>f.render(e,a,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:f.isDev,page:"/api/layout/pane/[paneId]/tabs/order",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>y(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")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${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&&p?await g(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(d.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},g),void 0,!w))}catch(e){if(f.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,w,"default",0,c,"handler",0,y],779844)},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=_08hfr9b._.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),n=e.i(666126),l=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"),h=r.default.join(w,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let k=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},v=()=>({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:l}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},W=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(r),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.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},P=async()=>{try{let e=await t.default.readFile(h,"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 W()}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 W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await P())),!e){let t=v();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,l.resolveLayoutFile)(t.id),r=await (0,l.readLayoutFile)(e);if(!r){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.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,l.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,l.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},T=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},$=async(e,r,a)=>k(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()??v(),n=`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,l.createDefaultLayout)(n,e,a);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let w={id:n,name:u,directories:[e]};return o.workspaces.push(w),await S(o),await f(w),c.debug(`Created: ${n} (${u}, ${e})`),w}),A=async e=>k(async()=>{let t=await I()??v(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await S(t),c.info(`Deleted: ${e} (${a.name})`),!0}),C=async(e,t)=>k(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=>k(async()=>{let t=await I()??v();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)=>k(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=>k(async()=>{let t=await I()??v(),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=>k(async()=>{let t=await I()??v(),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)=>k(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)=>k(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=>k(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=>k(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)=>k(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,$,"deleteWorkspace",0,A,"getActiveWorkspaceId",0,x,"getWorkspaceById",0,T,"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)},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 n="string"==typeof i?i:void 0;if(!n)return!1;let l=(()=>{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 n.length===l.length&&(0,t.timingSafeEqual)(Buffer.from(n),Buffer.from(l))}])},200523,e=>{"use strict";var t=e.i(825265),r=e.i(804767),a=e.i(322429),i=e.i(871911);let 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},n=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,n="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!n)return void t.status(400).json({error:"workspaceId is required"});let l=await s(n,o);if(!l)return void t.status(404).json({error:"Tab not found"});if("web-browser"!==l.tab.panelType)return void t.status(400).json({error:"Tab is not a web-browser panel"});let u=globalThis.__ptBrowserBridge??null;u?await a({tabId:o,bridge:u}):t.status(503).json({error:"Browser bridge unavailable (Electron-only feature)"})};e.s(["findTab",0,s,"resolveFirstPaneId",0,o,"withBrowserTab",0,n],200523)},673759,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),n=e.i(459015);let l=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"});if(!await (0,n.hasSession)(i.tab.sessionName))return t.status(409).json({error:"Tab session is not running"});let l=await (0,n.capturePaneContent)(i.tab.sessionName);return t.status(200).json({content:l})};e.s(["default",0,l],16409);var u=e.i(16409),d=e.i(7031),c=e.i(181927),p=e.i(846432);let f=(0,i.hoist)(u,"default"),w=(0,i.hoist)(u,"config"),y=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/result",pathname:"/api/cli/tabs/[tabId]/result",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function g(e,r,a){a.requestMeta&&(0,p.setRequestMeta)(e,a.requestMeta),y.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/result";i=i.replace(/\/index$/,"")||"/";let s=await y.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:n,prerenderManifest:l,routerServerContext:u}=s;try{let t,a=e.method||"GET",s=(0,d.getTracer)(),p=s.getActiveScopeSpan(),f=!!(null==u?void 0:u.isWrappedByNextServer),w=y.instrumentationOnRequestError.bind(y),g=async d=>y.render(e,r,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:y.isDev,page:"/api/cli/tabs/[tabId]/result",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")!==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 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&&p?await g(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(c.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:d.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!f))}catch(e){if(y.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,w,"default",0,f,"handler",0,g],673759)},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=_0_7my__._.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 ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__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(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},W=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},_=async()=>{try{let e=await t.default.readFile(h,"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 W()}catch{return null}},P=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await _())),!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}`)}}},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}},j=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)},A=async(e,r,a)=>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)}`,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 f={id:l,name:u,directories:[e]};return o.workspaces.push(f),await S(o),await w(f),c.debug(`Created: ${l} (${u}, ${e})`),f}),T=async e=>v(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)=>v(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 w(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):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 S(t)}),F=async(e,t)=>v(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 w(a))}),D=async e=>v(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)}),B=async e=>v(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)=>v(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)=>v(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))}),q=async e=>v(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=>v(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)=>v(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)}),O=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,B,"createWorkspace",0,A,"deleteWorkspace",0,T,"getActiveWorkspaceId",0,j,"getWorkspaceById",0,$,"getWorkspaces",0,x,"initWorkspaceStore",0,P,"renameGroup",0,N,"renameWorkspace",0,C,"reorderGroups",0,R,"reorderWorkspaces",0,D,"setGroupCollapsed",0,E,"setWorkspaceGroup",0,G,"ungroupGroup",0,q,"updateActive",0,L,"updateWorkspaceDirectories",0,F,"validateDirectory",0,O],322429)},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)},38271,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(200523);let o=async(e,t)=>{await (0,s.withBrowserTab)(e,t,"GET",({tabId:e,bridge:r})=>{let a=r.getUrl(e),i=r.getTitle(e);null===a?t.status(409).json({error:"Browser tab not attached yet"}):t.status(200).json({tabId:e,url:a,title:i})})};e.s(["default",0,o],293755);var l=e.i(293755),n=e.i(7031),u=e.i(181927),d=e.i(846432);let c=(0,i.hoist)(l,"default"),p=(0,i.hoist)(l,"config"),w=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/browser/url",pathname:"/api/cli/tabs/[tabId]/browser/url",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/browser/url";i=i.replace(/\/index$/,"")||"/";let s=await w.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:c,routerServerContext:p}=s;try{let t,a=e.method||"GET",s=(0,n.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==p?void 0:p.isWrappedByNextServer),y=w.instrumentationOnRequestError.bind(w),g=async n=>w.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:c.preview,propagateError:!1,dev:w.isDev,page:"/api/cli/tabs/[tabId]/browser/url",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!n)return;n.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),n.updateName(e),t&&t!==n&&(t.setAttribute("http.route",o),t.updateName(e))}else n.updateName(`${a} ${i}`)});f&&d?await g(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:n.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!f))}catch(e){if(w.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,p,"default",0,c,"handler",0,f],38271)},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=_0_wofwd._.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),n=e.i(666126),l=e.i(825265),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let k=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},v=()=>({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{p.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 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:l}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},S=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(r),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.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 W(i),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},P=async()=>{try{let e=await t.default.readFile(h,"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 p.info("tabs.json → layout.json migration complete"),await S()}catch{return null}},j=async()=>{await t.default.mkdir(r.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 P())),!e){let t=v();await W(t),e=t,p.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,l.resolveLayoutFile)(t.id),r=await (0,l.readLayoutFile)(e);if(!r){p.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.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,l.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(r,e)}catch(e){p.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},A=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)},x=async(e,r,a)=>k(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()??v(),n=`ws-${(0,i.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(c)){let e=parseInt(r.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,l.createDefaultLayout)(n,e,a);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let f={id:n,name:u,directories:[e]};return o.workspaces.push(f),await W(o),await w(f),p.debug(`Created: ${n} (${u}, ${e})`),f}),L=async e=>k(async()=>{let t=await I()??v(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await W(t),p.info(`Deleted: ${e} (${a.name})`),!0}),D=async(e,t)=>k(async()=>{let r=await I();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await W(r),await w(a),p.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),C=async e=>k(async()=>{let t=await I()??v();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)}),E=async(e,t)=>k(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 W(r),await w(a))}),F=async e=>k(async()=>{let t=await I()??v(),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 W(t),!0)}),G=async e=>k(async()=>{let t=await I()??v(),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 W(t),p.debug(`Group created: ${s.id} (${s.name})`),s}),N=async(e,t)=>k(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 W(r),{...a}):a}),R=async(e,t)=>k(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 W(r),!0))}),T=async e=>k(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 W(t),p.info(`Group ungrouped: ${e}`),!0}),q=async e=>k(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 W(t),!0)}),O=async(e,t)=>k(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 W(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,G,"createWorkspace",0,x,"deleteWorkspace",0,L,"getActiveWorkspaceId",0,$,"getWorkspaceById",0,_,"getWorkspaces",0,A,"initWorkspaceStore",0,j,"renameGroup",0,N,"renameWorkspace",0,D,"reorderGroups",0,q,"reorderWorkspaces",0,F,"setGroupCollapsed",0,R,"setWorkspaceGroup",0,O,"ungroupGroup",0,T,"updateActive",0,C,"updateWorkspaceDirectories",0,E,"validateDirectory",0,M],322429)},621034,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(322429);let o=async(e,t)=>{let r=e.query.groupId;if("DELETE"===e.method)return await (0,s.ungroupGroup)(r)?t.status(204).end():t.status(404).json({error:"Group not found"});if("PATCH"===e.method){let{name:a,collapsed:i}=e.body??{};if(void 0!==i){if("boolean"!=typeof i)return t.status(400).json({error:"collapsed must be boolean"});if(!await (0,s.setGroupCollapsed)(r,i))return t.status(404).json({error:"Group not found"});if(void 0===a)return t.status(200).json({ok:!0})}if(void 0!==a){if("string"!=typeof a||!a.trim())return t.status(400).json({error:"name required"});let e=await (0,s.renameGroup)(r,a.trim());return e?t.status(200).json(e):t.status(404).json({error:"Group not found"})}return t.status(400).json({error:"name or collapsed required"})}return t.setHeader("Allow","DELETE, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,o],869181);var n=e.i(869181),l=e.i(7031),u=e.i(181927),d=e.i(846432);let p=(0,i.hoist)(n,"default"),c=(0,i.hoist)(n,"config"),w=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/workspace/group/[groupId]",pathname:"/api/workspace/group/[groupId]",bundlePath:"",filename:""},userland:n,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/workspace/group/[groupId]";i=i.replace(/\/index$/,"")||"/";let s=await w.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:n,prerenderManifest:p,routerServerContext:c}=s;try{let t,a=e.method||"GET",s=(0,l.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==c?void 0:c.isWrappedByNextServer),y=w.instrumentationOnRequestError.bind(w),g=async l=>w.render(e,r,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:p.preview,propagateError:!1,dev:w.isDev,page:"/api/workspace/group/[groupId]",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!l)return;l.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;l.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),l.updateName(e),t&&t!==l&&(t.setAttribute("http.route",o),t.updateName(e))}else l.updateName(`${a} ${i}`)});f&&d?await g(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:l.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!f))}catch(e){if(w.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,c,"default",0,p,"handler",0,f],621034)},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=_0f2px04._.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),n=e.i(666126),l=e.i(825265),u=e.i(804767),d=e.i(282992);let c=(0,o.createLogger)("workspace"),p="Workspace ",w=async e=>{let t=[];for(let a of(0,d.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 k=async e=>{let t,a=new Promise(e=>{t=e}),r=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=a,await r;try{return await e()}finally{t()}},v=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),W=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}},I=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:l}=e,u=JSON.stringify({workspaces:r,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},S=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let a="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(a),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.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 I(i),c.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},P=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}},$=async()=>{await t.default.mkdir(a.default.join(f,"workspaces"),{recursive:!0});let e=await W();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 P())),!e){let t=v();await I(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,l.resolveLayoutFile)(t.id),a=await (0,l.readLayoutFile)(e);if(!a){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),a=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.writeLayoutFile)(a,e);continue}let i=(0,u.collectAllTabs)(a.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=r.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,l.crossCheckLayout)(a,o,t.id,t.directories[0])&&await (0,l.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 W();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 W();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},_=async e=>{let t=await W();return t?.workspaces.find(t=>t.id===e)},j=async(e,a,r)=>k(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 W()??v(),n=`ws-${(0,i.nanoid)(6)}`,u=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),d=await (0,l.createDefaultLayout)(n,e,r);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let f={id:n,name:u,directories:[e]};return o.workspaces.push(f),await I(o),await w(f),c.debug(`Created: ${n} (${u}, ${e})`),f}),L=async e=>k(async()=>{let t=await W()??v(),a=t.workspaces.findIndex(t=>t.id===e);if(-1===a)return!1;let r=t.workspaces[a],i=await (0,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(a,1),await I(t),c.info(`Deleted: ${e} (${r.name})`),!0}),D=async(e,t)=>k(async()=>{let a=await W();if(!a)return null;let r=a.workspaces.find(t=>t.id===e);return r?(r.name=t,await I(a),await w(r),c.debug(`Renamed: ${e} → "${t}"`),{...r}):null}),F=async e=>k(async()=>{let t=await W()??v();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 I(t)}),C=async(e,t)=>k(async()=>{let a=await W();if(!a)return;let r=a.workspaces.find(t=>t.id===e);r&&JSON.stringify(r.directories)!==JSON.stringify(t)&&(r.directories=t,await I(a),await w(r))}),N=async e=>k(async()=>{let t=await W()??v(),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 I(t),!0)}),R=async e=>k(async()=>{let t=await W()??v(),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 I(t),c.debug(`Group created: ${s.id} (${s.name})`),s}),E=async(e,t)=>k(async()=>{let a=await W();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 I(a),{...r}):r}),O=async(e,t)=>k(async()=>{let a=await W();if(!a)return!1;let r=(a.groups??[]).find(t=>t.id===e);return!!r&&(r.collapsed===t||(r.collapsed=t,await I(a),!0))}),T=async e=>k(async()=>{let t=await W();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 I(t),c.info(`Group ungrouped: ${e}`),!0}),q=async e=>k(async()=>{let t=await W();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 I(t),!0)}),G=async(e,t)=>k(async()=>{let a=await W();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 I(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,x,"initWorkspaceStore",0,$,"renameGroup",0,E,"renameWorkspace",0,D,"reorderGroups",0,q,"reorderWorkspaces",0,N,"setGroupCollapsed",0,O,"setWorkspaceGroup",0,G,"ungroupGroup",0,T,"updateActive",0,F,"updateWorkspaceDirectories",0,C,"validateDirectory",0,M],322429)},113214,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(825265),o=e.i(322429);let n=(0,e.i(25146).createLogger)("layout"),l=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let a=e.query.workspace||await (0,o.getActiveWorkspaceId)();if(!a)return t.status(400).json({error:"No workspace found"});try{let{sourcePaneId:r,orientation:i,cwd:o,panelType:n}=e.body??{};if(r&&i){let e=await (0,s.splitPaneInLayout)(a,r,i,o,n);if(!e)return t.status(404).json({error:"Target pane not found"});return t.status(200).json(e)}let l=await (0,s.createPane)(a,o);return t.status(200).json(l)}catch(e){return n.error(`pane creation failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to create pane"})}};e.s(["default",0,l],846086);var u=e.i(846086),d=e.i(7031),c=e.i(181927),p=e.i(846432);let w=(0,i.hoist)(u,"default"),f=(0,i.hoist)(u,"config"),y=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/layout/pane/index",pathname:"/api/layout/pane",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function g(e,a,r){r.requestMeta&&(0,p.setRequestMeta)(e,r.requestMeta),y.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/pane/index";i=i.replace(/\/index$/,"")||"/";let s=await y.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:n,prerenderManifest:l,routerServerContext:u}=s;try{let t,r=e.method||"GET",s=(0,d.getTracer)(),p=s.getActiveScopeSpan(),w=!!(null==u?void 0:u.isWrappedByNextServer),f=y.instrumentationOnRequestError.bind(y),g=async d=>y.render(e,a,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:y.isDev,page:"/api/layout/pane/index",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.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 o=e.get("next.route");if(o){let e=`${r} ${o}`;d.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",o),t.updateName(e))}else d.updateName(`${r} ${i}`)});w&&p?await g(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(c.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:d.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},g),void 0,!w))}catch(e){if(y.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,f,"default",0,w,"handler",0,g],113214)},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=_0j.srxq._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),i=e.i(814747),a=e.i(446786);let n=i.default.join(a.default.homedir(),".purplemux","cli-token"),s=globalThis;e.s(["verifyCliToken",0,e=>{let a=e.headers["x-pmux-token"];var l="string"==typeof a?a:void 0;if(!l)return!1;let o=(()=>{if(s.__ptCliToken)return s.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(n,"utf-8").trim()||null}catch{return null}})();if(e)return s.__ptCliToken=e,e;let a=(0,t.randomBytes)(32).toString("hex");s.__ptCliToken=a;try{r.default.mkdirSync(i.default.dirname(n),{recursive:!0}),r.default.writeFileSync(n,a,{mode:384})}catch{}return a})();return l.length===o.length&&(0,t.timingSafeEqual)(Buffer.from(l),Buffer.from(o))}])},284345,e=>{"use strict";var t=e.i(926747),r=e.i(190406),i=e.i(244898),a=e.i(262950),n=e.i(713915),s=e.i(845994),l=e.i(772601),o=e.i(871911);let u=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});if(!await (0,s.needsSetup)()&&!((0,o.verifyCliToken)(e)||await (0,l.verifyRequestSession)(e.headers.cookie)))return t.status(401).json({error:"Unauthorized"});let r=await (0,n.getCachedPreflightStatus)();return t.status(200).json(r)};e.s(["default",0,u],16083);var d=e.i(16083),p=e.i(7031),h=e.i(181927),f=e.i(846432);let c=(0,a.hoist)(d,"default"),v=(0,a.hoist)(d,"config"),m=new i.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/auth/preflight",pathname:"/api/auth/preflight",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function g(e,r,i){i.requestMeta&&(0,f.setRequestMeta)(e,i.requestMeta),m.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/auth/preflight";a=a.replace(/\/index$/,"")||"/";let n=await m.prepare(e,r,{srcPage:a});if(!n){r.statusCode=400,r.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:u}=n;try{let t,i=e.method||"GET",n=(0,p.getTracer)(),d=n.getActiveScopeSpan(),f=!!(null==u?void 0:u.isWrappedByNextServer),c=m.instrumentationOnRequestError.bind(m),v=async d=>m.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:m.isDev,page:"/api/auth/preflight",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${i} ${s}`;d.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",s),t.updateName(e))}else d.updateName(`${i} ${a}`)});f&&d?await v(d):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(h.BaseServerSpan.handleRequest,{spanName:`${i} ${a}`,kind:p.SpanKind.SERVER,attributes:{"http.method":i,"http.target":e.url}},v),void 0,!f))}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,v,"default",0,c,"handler",0,g],284345)},981532,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_0kkbnw5._.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=_0py_7vt._.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),n=e.i(666126),l=e.i(825265),u=e.i(804767),d=e.i(282992);let c=(0,o.createLogger)("workspace"),p="Workspace ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__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:l}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},W=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(r),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.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},P=async()=>{try{let e=await t.default.readFile(h,"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 W()}catch{return null}},x=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await P())),!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,l.resolveLayoutFile)(t.id),r=await (0,l.readLayoutFile)(e);if(!r){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.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,l.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(r,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},j=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},L=async(e,r,a)=>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(),n=`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,l.createDefaultLayout)(n,e,a);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let f={id:n,name:u,directories:[e]};return o.workspaces.push(f),await S(o),await w(f),c.debug(`Created: ${n} (${u}, ${e})`),f}),_=async e=>v(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,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await S(t),c.info(`Deleted: ${e} (${a.name})`),!0}),D=async(e,t)=>v(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 w(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):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 S(t)}),F=async(e,t)=>v(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 w(a))}),N=async e=>v(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)}),R=async e=>v(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}),E=async(e,t)=>v(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}),O=async(e,t)=>v(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))}),T=async e=>v(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}),M=async e=>v(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)}),q=async(e,t)=>v(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)}),G=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,R,"createWorkspace",0,L,"deleteWorkspace",0,_,"getActiveWorkspaceId",0,A,"getWorkspaceById",0,j,"getWorkspaces",0,$,"initWorkspaceStore",0,x,"renameGroup",0,E,"renameWorkspace",0,D,"reorderGroups",0,M,"reorderWorkspaces",0,N,"setGroupCollapsed",0,O,"setWorkspaceGroup",0,q,"ungroupGroup",0,T,"updateActive",0,C,"updateWorkspaceDirectories",0,F,"validateDirectory",0,G],322429)},561089,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(964759);let o=(0,e.i(25146).createLogger)("tmux"),n=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let r="string"==typeof e.body?.tabId?e.body.tabId:void 0;if(!r)return t.status(400).json({error:"tabId required"});try{let e=await (0,s.getStatusManager)().recoverUnknownIfPending(r);return t.status(200).json(e)}catch(e){return o.error(`recover-unknown failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"recover-unknown failed"})}};e.s(["default",0,n],353162);var l=e.i(353162),u=e.i(7031),d=e.i(181927),c=e.i(846432);let p=(0,i.hoist)(l,"default"),w=(0,i.hoist)(l,"config"),f=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/recover-unknown",pathname:"/api/tmux/recover-unknown",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function y(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/tmux/recover-unknown";i=i.replace(/\/index$/,"")||"/";let s=await f.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:n,prerenderManifest:l,routerServerContext:p}=s;try{let t,a=e.method||"GET",s=(0,u.getTracer)(),c=s.getActiveScopeSpan(),w=!!(null==p?void 0:p.isWrappedByNextServer),y=f.instrumentationOnRequestError.bind(f),g=async u=>f.render(e,r,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:f.isDev,page:"/api/tmux/recover-unknown",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>y(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")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;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(`${a} ${i}`)});w&&c?await g(c):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(d.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!w))}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,w,"default",0,p,"handler",0,y],561089)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_0r3d5qz._.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),n=e.i(666126),l=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"),h=r.default.join(w,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__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:l}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},W=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(r),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.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},_=async()=>{try{let e=await t.default.readFile(h,"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 W()}catch{return null}},P=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 W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await _())),!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,l.resolveLayoutFile)(t.id),r=await (0,l.readLayoutFile)(e);if(!r){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.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,l.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(r,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}},j=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)},A=async(e,r,a)=>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(),n=`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,l.createDefaultLayout)(n,e,a);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let w={id:n,name:u,directories:[e]};return o.workspaces.push(w),await S(o),await f(w),c.debug(`Created: ${n} (${u}, ${e})`),w}),T=async e=>v(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,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await S(t),c.info(`Deleted: ${e} (${a.name})`),!0}),C=async(e,t)=>v(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}),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 S(t)}),F=async(e,t)=>v(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=>v(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=>v(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}),B=async(e,t)=>v(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)=>v(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))}),N=async e=>v(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=>v(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)=>v(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)}),O=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,A,"deleteWorkspace",0,T,"getActiveWorkspaceId",0,j,"getWorkspaceById",0,$,"getWorkspaces",0,x,"initWorkspaceStore",0,P,"renameGroup",0,B,"renameWorkspace",0,C,"reorderGroups",0,R,"reorderWorkspaces",0,D,"setGroupCollapsed",0,E,"setWorkspaceGroup",0,G,"ungroupGroup",0,N,"updateActive",0,L,"updateWorkspaceDirectories",0,F,"validateDirectory",0,O],322429)},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 n="string"==typeof i?i:void 0;if(!n)return!1;let l=(()=>{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 n.length===l.length&&(0,t.timingSafeEqual)(Buffer.from(n),Buffer.from(l))}])},200523,e=>{"use strict";var t=e.i(825265),r=e.i(804767),a=e.i(322429),i=e.i(871911);let 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},n=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,n="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!n)return void t.status(400).json({error:"workspaceId is required"});let l=await s(n,o);if(!l)return void t.status(404).json({error:"Tab not found"});if("web-browser"!==l.tab.panelType)return void t.status(400).json({error:"Tab is not a web-browser panel"});let u=globalThis.__ptBrowserBridge??null;u?await a({tabId:o,bridge:u}):t.status(503).json({error:"Browser bridge unavailable (Electron-only feature)"})};e.s(["findTab",0,s,"resolveFirstPaneId",0,o,"withBrowserTab",0,n],200523)},513092,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(200523);let o=async(e,t)=>{await (0,s.withBrowserTab)(e,t,"GET",async({tabId:r,bridge:a})=>{let i="1"===e.query.full||"true"===e.query.full,s="base64"===e.query.format?"base64":"png";try{let e=await a.capture(r,{fullPage:i});if("base64"===s)return void t.status(200).json({tabId:r,format:"png",base64:e});let o=Buffer.from(e,"base64");t.setHeader("Content-Type","image/png"),t.setHeader("Content-Length",String(o.byteLength)),t.status(200).end(o)}catch(r){let e=r instanceof Error?r.message:"capture failed";t.status(409).json({error:e})}})};e.s(["default",0,o],821755);var n=e.i(821755),l=e.i(7031),u=e.i(181927),d=e.i(846432);let c=(0,i.hoist)(n,"default"),p=(0,i.hoist)(n,"config"),f=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/browser/screenshot",pathname:"/api/cli/tabs/[tabId]/browser/screenshot",bundlePath:"",filename:""},userland:n,distDir:".next",relativeProjectDir:""});async function w(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/browser/screenshot";i=i.replace(/\/index$/,"")||"/";let s=await f.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:n,prerenderManifest:c,routerServerContext:p}=s;try{let t,a=e.method||"GET",s=(0,l.getTracer)(),d=s.getActiveScopeSpan(),w=!!(null==p?void 0:p.isWrappedByNextServer),y=f.instrumentationOnRequestError.bind(f),g=async l=>f.render(e,r,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:c.preview,propagateError:!1,dev:f.isDev,page:"/api/cli/tabs/[tabId]/browser/screenshot",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!l)return;l.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;l.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),l.updateName(e),t&&t!==l&&(t.setAttribute("http.route",o),t.updateName(e))}else l.updateName(`${a} ${i}`)});w&&d?await g(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:l.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!w))}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,p,"default",0,c,"handler",0,w],513092)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_0rh64c3._.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 ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__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(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},W=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},_=async()=>{try{let e=await t.default.readFile(h,"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 W()}catch{return null}},P=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await _())),!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},$=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},q=async(e,r,a)=>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)}`,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 f={id:l,name:u,directories:[e]};return o.workspaces.push(f),await S(o),await w(f),c.debug(`Created: ${l} (${u}, ${e})`),f}),A=async e=>v(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}),T=async(e,t)=>v(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 w(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):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 S(t)}),F=async(e,t)=>v(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 w(a))}),L=async e=>v(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)}),D=async e=>v(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)=>v(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}),B=async(e,t)=>v(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))}),R=async e=>v(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}),E=async e=>v(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)=>v(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)}),O=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,D,"createWorkspace",0,q,"deleteWorkspace",0,A,"getActiveWorkspaceId",0,x,"getWorkspaceById",0,$,"getWorkspaces",0,j,"initWorkspaceStore",0,P,"renameGroup",0,N,"renameWorkspace",0,T,"reorderGroups",0,E,"reorderWorkspaces",0,L,"setGroupCollapsed",0,B,"setWorkspaceGroup",0,G,"ungroupGroup",0,R,"updateActive",0,C,"updateWorkspaceDirectories",0,F,"validateDirectory",0,O],322429)},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)},318536,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(200523);let o=async(e,t)=>{await (0,s.withBrowserTab)(e,t,"GET",async({tabId:r,bridge:a})=>{let i="string"==typeof e.query.requestId?e.query.requestId:void 0;if(i){let e=await a.getResponseBody(r,i);return null===e?void t.status(404).json({error:"Response body unavailable"}):void t.status(200).json({tabId:r,requestId:i,body:e})}let s="string"==typeof e.query.since?parseInt(e.query.since,10):0,o="string"==typeof e.query.method?e.query.method.toUpperCase():void 0,l="string"==typeof e.query.url?e.query.url:void 0,n="string"==typeof e.query.status?parseInt(e.query.status,10):void 0,u=a.getNetwork(r,Number.isFinite(s)?s:0);o&&(u=u.filter(e=>e.method===o)),l&&(u=u.filter(e=>e.url.includes(l))),Number.isFinite(n)&&(u=u.filter(e=>e.status===n)),t.status(200).json({tabId:r,entries:u})})};e.s(["default",0,o],130322);var l=e.i(130322),n=e.i(7031),u=e.i(181927),d=e.i(846432);let c=(0,i.hoist)(l,"default"),p=(0,i.hoist)(l,"config"),w=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/browser/network",pathname:"/api/cli/tabs/[tabId]/browser/network",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/browser/network";i=i.replace(/\/index$/,"")||"/";let s=await w.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:c,routerServerContext:p}=s;try{let t,a=e.method||"GET",s=(0,n.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==p?void 0:p.isWrappedByNextServer),y=w.instrumentationOnRequestError.bind(w),g=async n=>w.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:c.preview,propagateError:!1,dev:w.isDev,page:"/api/cli/tabs/[tabId]/browser/network",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!n)return;n.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),n.updateName(e),t&&t!==n&&(t.setAttribute("http.route",o),t.updateName(e))}else n.updateName(`${a} ${i}`)});f&&d?await g(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:n.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!f))}catch(e){if(w.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,p,"default",0,c,"handler",0,f],318536)},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=_0swnrzn._.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),u=e.i(804767),d=e.i(282992);let c=(0,o.createLogger)("workspace"),p="Workspace ",w=async e=>{let t=[];for(let a of(0,d.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 k=async e=>{let t,a=new Promise(e=>{t=e}),r=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=a,await r;try{return await e()}finally{t()}},v=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),W=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}},I=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,u=JSON.stringify({workspaces:r,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(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 I(i),c.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},P=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}},A=async()=>{await t.default.mkdir(a.default.join(f,"workspaces"),{recursive:!0});let e=await W();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 P())),!e){let t=v();await I(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,u.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 W();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 W();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},_=async e=>{let t=await W();return t?.workspaces.find(t=>t.id===e)},j=async(e,a,r)=>k(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 W()??v(),l=`ws-${(0,i.nanoid)(6)}`,u=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),d=await (0,n.createDefaultLayout)(l,e,r);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(d,(0,n.resolveLayoutFile)(l));let f={id:l,name:u,directories:[e]};return o.workspaces.push(f),await I(o),await w(f),c.debug(`Created: ${l} (${u}, ${e})`),f}),L=async e=>k(async()=>{let t=await W()??v(),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,u.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 I(t),c.info(`Deleted: ${e} (${r.name})`),!0}),D=async(e,t)=>k(async()=>{let a=await W();if(!a)return null;let r=a.workspaces.find(t=>t.id===e);return r?(r.name=t,await I(a),await w(r),c.debug(`Renamed: ${e} → "${t}"`),{...r}):null}),C=async e=>k(async()=>{let t=await W()??v();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 I(t)}),F=async(e,t)=>k(async()=>{let a=await W();if(!a)return;let r=a.workspaces.find(t=>t.id===e);r&&JSON.stringify(r.directories)!==JSON.stringify(t)&&(r.directories=t,await I(a),await w(r))}),N=async e=>k(async()=>{let t=await W()??v(),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 I(t),!0)}),E=async e=>k(async()=>{let t=await W()??v(),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 I(t),c.debug(`Group created: ${s.id} (${s.name})`),s}),T=async(e,t)=>k(async()=>{let a=await W();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 I(a),{...r}):r}),R=async(e,t)=>k(async()=>{let a=await W();if(!a)return!1;let r=(a.groups??[]).find(t=>t.id===e);return!!r&&(r.collapsed===t||(r.collapsed=t,await I(a),!0))}),G=async e=>k(async()=>{let t=await W();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 I(t),c.info(`Group ungrouped: ${e}`),!0}),O=async e=>k(async()=>{let t=await W();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 I(t),!0)}),q=async(e,t)=>k(async()=>{let a=await W();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 I(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,E,"createWorkspace",0,j,"deleteWorkspace",0,L,"getActiveWorkspaceId",0,x,"getWorkspaceById",0,_,"getWorkspaces",0,$,"initWorkspaceStore",0,A,"renameGroup",0,T,"renameWorkspace",0,D,"reorderGroups",0,O,"reorderWorkspaces",0,N,"setGroupCollapsed",0,R,"setWorkspaceGroup",0,q,"ungroupGroup",0,G,"updateActive",0,C,"updateWorkspaceDirectories",0,F,"validateDirectory",0,M],322429)},791169,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(825265),o=e.i(322429);let l=(0,e.i(25146).createLogger)("layout"),n=async(e,t)=>{let a=e.query.workspace||await (0,o.getActiveWorkspaceId)();if(!a)return t.status(400).json({error:"No workspace found"});if("GET"===e.method)try{let e=await (0,o.getWorkspaceById)(a),r=await (0,s.getLayout)(a,e?.directories[0]);return t.status(200).json(r)}catch(e){return l.error(`GET failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to load layout"})}if("PATCH"===e.method){let{activePaneId:r,ratioUpdate:i,equalize:o,diffSettings:l}=e.body??{},n=await (0,s.patchLayout)(a,{activePaneId:r,ratioUpdate:i,equalize:o,diffSettings:l});return n?t.status(200).json(n):t.status(404).json({error:"Target not found"})}return t.setHeader("Allow","GET, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,n],522999);var u=e.i(522999),d=e.i(7031),c=e.i(181927),p=e.i(846432);let w=(0,i.hoist)(u,"default"),f=(0,i.hoist)(u,"config"),y=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/layout/index",pathname:"/api/layout",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function g(e,a,r){r.requestMeta&&(0,p.setRequestMeta)(e,r.requestMeta),y.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/index";i=i.replace(/\/index$/,"")||"/";let s=await y.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:u}=s;try{let t,r=e.method||"GET",s=(0,d.getTracer)(),p=s.getActiveScopeSpan(),w=!!(null==u?void 0:u.isWrappedByNextServer),f=y.instrumentationOnRequestError.bind(y),g=async d=>y.render(e,a,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:y.isDev,page:"/api/layout/index",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.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 o=e.get("next.route");if(o){let e=`${r} ${o}`;d.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",o),t.updateName(e))}else d.updateName(`${r} ${i}`)});w&&p?await g(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(c.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:d.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},g),void 0,!w))}catch(e){if(y.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,f,"default",0,w,"handler",0,g],791169)},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=_0w-k~4g._.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 ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__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(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},W=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},_=async()=>{try{let e=await t.default.readFile(h,"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 W()}catch{return null}},P=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await _())),!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}`)}}},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},j=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},A=async(e,r,a)=>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)}`,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 f={id:l,name:u,directories:[e]};return o.workspaces.push(f),await S(o),await w(f),c.debug(`Created: ${l} (${u}, ${e})`),f}),T=async e=>v(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)=>v(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 w(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),F=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 S(t)}),L=async(e,t)=>v(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 w(a))}),D=async e=>v(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=>v(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)=>v(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}),B=async(e,t)=>v(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))}),E=async e=>v(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=>v(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)=>v(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)}),O=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,A,"deleteWorkspace",0,T,"getActiveWorkspaceId",0,$,"getWorkspaceById",0,j,"getWorkspaces",0,x,"initWorkspaceStore",0,P,"renameGroup",0,N,"renameWorkspace",0,C,"reorderGroups",0,R,"reorderWorkspaces",0,D,"setGroupCollapsed",0,B,"setWorkspaceGroup",0,G,"ungroupGroup",0,E,"updateActive",0,F,"updateWorkspaceDirectories",0,L,"validateDirectory",0,O],322429)},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)},803564,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(200523);let o=async(e,t)=>{await (0,s.withBrowserTab)(e,t,"GET",({tabId:r,bridge:a})=>{let i="string"==typeof e.query.since?parseInt(e.query.since,10):0,s="string"==typeof e.query.level?e.query.level:void 0,o=a.getConsole(r,Number.isFinite(i)?i:0);s&&(o=o.filter(e=>e.level===s)),t.status(200).json({tabId:r,entries:o})})};e.s(["default",0,o],874452);var l=e.i(874452),n=e.i(7031),u=e.i(181927),d=e.i(846432);let c=(0,i.hoist)(l,"default"),p=(0,i.hoist)(l,"config"),w=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/browser/console",pathname:"/api/cli/tabs/[tabId]/browser/console",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/browser/console";i=i.replace(/\/index$/,"")||"/";let s=await w.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:c,routerServerContext:p}=s;try{let t,a=e.method||"GET",s=(0,n.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==p?void 0:p.isWrappedByNextServer),y=w.instrumentationOnRequestError.bind(w),g=async n=>w.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:c.preview,propagateError:!1,dev:w.isDev,page:"/api/cli/tabs/[tabId]/browser/console",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!n)return;n.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),n.updateName(e),t&&t!==n&&(t.setAttribute("http.route",o),t.updateName(e))}else n.updateName(`${a} ${i}`)});f&&d?await g(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:n.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!f))}catch(e){if(w.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,p,"default",0,c,"handler",0,f],803564)},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=_0y9vgfm._.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 ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),v=globalThis;v.__purplemuxWorkspaceLock||(v.__purplemuxWorkspaceLock=Promise.resolve());let m=async e=>{let t,r=new Promise(e=>{t=e}),a=v.__purplemuxWorkspaceLock;v.__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(v.__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}v.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},W=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},P=async()=>{try{let e=await t.default.readFile(h,"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 W()}catch{return null}},_=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await P())),!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}`)}}},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}},j=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)},A=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 f={id:l,name:u,directories:[e]};return o.workspaces.push(f),await S(o),await w(f),c.debug(`Created: ${l} (${u}, ${e})`),f}),T=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 w(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),L=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)}),F=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 w(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)}),N=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}),q=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}),B=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))}),E=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)}),O=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)}),G=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,N,"createWorkspace",0,A,"deleteWorkspace",0,T,"getActiveWorkspaceId",0,j,"getWorkspaceById",0,$,"getWorkspaces",0,x,"initWorkspaceStore",0,_,"renameGroup",0,q,"renameWorkspace",0,C,"reorderGroups",0,R,"reorderWorkspaces",0,D,"setGroupCollapsed",0,B,"setWorkspaceGroup",0,O,"ungroupGroup",0,E,"updateActive",0,L,"updateWorkspaceDirectories",0,F,"validateDirectory",0,G],322429)},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)},605226,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(200523);let o=async(e,t)=>{await (0,s.withBrowserTab)(e,t,"POST",async({tabId:r,bridge:a})=>{let{expression:i}=e.body??{};if(!i||"string"!=typeof i)return void t.status(400).json({error:"expression is required"});try{let e=await a.evaluate(r,i);t.status(200).json({tabId:r,value:e})}catch(r){let e=r instanceof Error?r.message:"evaluation failed";t.status(409).json({error:e})}})};e.s(["default",0,o],184050);var l=e.i(184050),n=e.i(7031),u=e.i(181927),d=e.i(846432);let c=(0,i.hoist)(l,"default"),p=(0,i.hoist)(l,"config"),w=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/browser/eval",pathname:"/api/cli/tabs/[tabId]/browser/eval",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/browser/eval";i=i.replace(/\/index$/,"")||"/";let s=await w.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:c,routerServerContext:p}=s;try{let t,a=e.method||"GET",s=(0,n.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==p?void 0:p.isWrappedByNextServer),y=w.instrumentationOnRequestError.bind(w),g=async n=>w.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:c.preview,propagateError:!1,dev:w.isDev,page:"/api/cli/tabs/[tabId]/browser/eval",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!n)return;n.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),n.updateName(e),t&&t!==n&&(t.setAttribute("http.route",o),t.updateName(e))}else n.updateName(`${a} ${i}`)});f&&d?await g(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:n.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!f))}catch(e){if(w.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,p,"default",0,c,"handler",0,f],605226)},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=_0zym6f2._.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),n=e.i(666126),l=e.i(825265),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",w=async e=>{let t=[];for(let a of(0,d.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{p.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:l}=e,u=JSON.stringify({workspaces:r,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},S=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let a="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(a),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.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),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},P=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 p.info("tabs.json → layout.json migration complete"),await S()}catch{return null}},$=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 P())),!e){let t=k();await W(t),e=t,p.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,l.resolveLayoutFile)(t.id),a=await (0,l.readLayoutFile)(e);if(!a){p.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),a=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.writeLayoutFile)(a,e);continue}let i=(0,u.collectAllTabs)(a.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=r.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,l.crossCheckLayout)(a,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(a,e)}catch(e){p.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},A=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},x=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(),n=`ws-${(0,i.nanoid)(6)}`,u=a?.trim()||(e=>{let t=0;for(let a of e)if(a.name.startsWith(c)){let e=parseInt(a.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,l.createDefaultLayout)(n,e,r);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let f={id:n,name:u,directories:[e]};return o.workspaces.push(f),await W(o),await w(f),p.debug(`Created: ${n} (${u}, ${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,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(a,1),await W(t),p.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),p.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),p.debug(`Group created: ${s.id} (${s.name})`),s}),T=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}),q=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))}),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 W(t),p.info(`Group ungrouped: ${e}`),!0}),E=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,_,"getWorkspaceById",0,x,"getWorkspaces",0,A,"initWorkspaceStore",0,$,"renameGroup",0,T,"renameWorkspace",0,D,"reorderGroups",0,E,"reorderWorkspaces",0,N,"setGroupCollapsed",0,q,"setWorkspaceGroup",0,G,"ungroupGroup",0,O,"updateActive",0,C,"updateWorkspaceDirectories",0,F,"validateDirectory",0,M],322429)},954429,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(825265),o=e.i(322429);let n=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let a=e.query.workspace||await (0,o.getActiveWorkspaceId)();if(!a)return t.status(400).json({error:"No workspace found"});let r=e.query.tabId,i=e.query.paneId,{toPaneId:n,toIndex:l}=e.body??{};if(!n||void 0===l)return t.status(400).json({error:"toPaneId and toIndex required"});let u=await (0,s.moveTabBetweenPanes)(a,r,i,n,l);return u?t.status(200).json(u):t.status(404).json({error:"Target not found"})};e.s(["default",0,n],545174);var l=e.i(545174),u=e.i(7031),d=e.i(181927),p=e.i(846432);let c=(0,i.hoist)(l,"default"),w=(0,i.hoist)(l,"config"),f=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/layout/pane/[paneId]/tabs/[tabId]/move",pathname:"/api/layout/pane/[paneId]/tabs/[tabId]/move",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function y(e,a,r){r.requestMeta&&(0,p.setRequestMeta)(e,r.requestMeta),f.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/pane/[paneId]/tabs/[tabId]/move";i=i.replace(/\/index$/,"")||"/";let s=await f.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:n,prerenderManifest:l,routerServerContext:c}=s;try{let t,r=e.method||"GET",s=(0,u.getTracer)(),p=s.getActiveScopeSpan(),w=!!(null==c?void 0:c.isWrappedByNextServer),y=f.instrumentationOnRequestError.bind(f),g=async u=>f.render(e,a,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:f.isDev,page:"/api/layout/pane/[paneId]/tabs/[tabId]/move",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>y(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")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${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&&p?await g(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(d.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},g),void 0,!w))}catch(e){if(f.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,w,"default",0,c,"handler",0,y],954429)},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=_10i3z4~._.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),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",w=async e=>{let t=[];for(let a of(0,d.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 k=async e=>{let t,a=new Promise(e=>{t=e}),r=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=a,await r;try{return await e()}finally{t()}},v=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),W=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{p.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 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,u=JSON.stringify({workspaces:r,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(m.__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}m.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},I=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 S(i),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},P=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 p.info("tabs.json → layout.json migration complete"),await I()}catch{return null}},x=async()=>{await t.default.mkdir(a.default.join(f,"workspaces"),{recursive:!0});let e=await W();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await I():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await P())),!e){let t=v();await S(t),e=t,p.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){p.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,u.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){p.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},$=async()=>{let e=await W();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 W();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},A=async e=>{let t=await W();return t?.workspaces.find(t=>t.id===e)},j=async(e,a,r)=>k(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 W()??v(),l=`ws-${(0,i.nanoid)(6)}`,u=a?.trim()||(e=>{let t=0;for(let a of e)if(a.name.startsWith(c)){let e=parseInt(a.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,n.createDefaultLayout)(l,e,r);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(d,(0,n.resolveLayoutFile)(l));let f={id:l,name:u,directories:[e]};return o.workspaces.push(f),await S(o),await w(f),p.debug(`Created: ${l} (${u}, ${e})`),f}),L=async e=>k(async()=>{let t=await W()??v(),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,u.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 S(t),p.info(`Deleted: ${e} (${r.name})`),!0}),D=async(e,t)=>k(async()=>{let a=await W();if(!a)return null;let r=a.workspaces.find(t=>t.id===e);return r?(r.name=t,await S(a),await w(r),p.debug(`Renamed: ${e} → "${t}"`),{...r}):null}),C=async e=>k(async()=>{let t=await W()??v();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)}),F=async(e,t)=>k(async()=>{let a=await W();if(!a)return;let r=a.workspaces.find(t=>t.id===e);r&&JSON.stringify(r.directories)!==JSON.stringify(t)&&(r.directories=t,await S(a),await w(r))}),N=async e=>k(async()=>{let t=await W()??v(),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 S(t),!0)}),R=async e=>k(async()=>{let t=await W()??v(),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 S(t),p.debug(`Group created: ${s.id} (${s.name})`),s}),O=async(e,t)=>k(async()=>{let a=await W();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 S(a),{...r}):r}),E=async(e,t)=>k(async()=>{let a=await W();if(!a)return!1;let r=(a.groups??[]).find(t=>t.id===e);return!!r&&(r.collapsed===t||(r.collapsed=t,await S(a),!0))}),T=async e=>k(async()=>{let t=await W();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 S(t),p.info(`Group ungrouped: ${e}`),!0}),G=async e=>k(async()=>{let t=await W();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 S(t),!0)}),M=async(e,t)=>k(async()=>{let a=await W();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 S(a),!0)}),q=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,_,"getWorkspaceById",0,A,"getWorkspaces",0,$,"initWorkspaceStore",0,x,"renameGroup",0,O,"renameWorkspace",0,D,"reorderGroups",0,G,"reorderWorkspaces",0,N,"setGroupCollapsed",0,E,"setWorkspaceGroup",0,M,"ungroupGroup",0,T,"updateActive",0,C,"updateWorkspaceDirectories",0,F,"validateDirectory",0,q],322429)},376912,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(322429);let o=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let{name:a}=e.body??{},r=await (0,s.createGroup)("string"==typeof a?a:"");return t.status(200).json(r)};e.s(["default",0,o],132864);var l=e.i(132864),n=e.i(7031),u=e.i(181927),d=e.i(846432);let p=(0,i.hoist)(l,"default"),c=(0,i.hoist)(l,"config"),w=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/workspace/group/index",pathname:"/api/workspace/group",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function f(e,a,r){r.requestMeta&&(0,d.setRequestMeta)(e,r.requestMeta),w.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/workspace/group/index";i=i.replace(/\/index$/,"")||"/";let s=await w.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:p,routerServerContext:c}=s;try{let t,r=e.method||"GET",s=(0,n.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==c?void 0:c.isWrappedByNextServer),y=w.instrumentationOnRequestError.bind(w),g=async n=>w.render(e,a,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:p.preview,propagateError:!1,dev:w.isDev,page:"/api/workspace/group/index",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!n)return;n.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${r} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),n.updateName(e),t&&t!==n&&(t.setAttribute("http.route",o),t.updateName(e))}else n.updateName(`${r} ${i}`)});f&&d?await g(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(u.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:n.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},g),void 0,!f))}catch(e){if(w.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,c,"default",0,p,"handler",0,f],376912)},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=_13_e4ue._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[508171,(a,b,c)=>{b.exports=a.x("react/jsx-runtime",()=>require("react/jsx-runtime"))},127669,(a,b,c)=>{b.exports=a.x("react",()=>require("react"))},456195,(a,b,c)=>{b.exports=a.x("react-dom",()=>require("react-dom"))},398544,(a,b,c)=>{a.e,b.exports=function(){"use strict";var a="millisecond",b="second",c="minute",d="hour",e="week",f="month",g="quarter",h="year",i="date",j="Invalid Date",k=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,l=/\[([^\]]+)]|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,m=function(a,b,c){var d=String(a);return!d||d.length>=b?a:""+Array(b+1-d.length).join(c)+a},n="en",o={};o[n]={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(a){var b=["th","st","nd","rd"],c=a%100;return"["+a+(b[(c-20)%10]||b[c]||b[0])+"]"}};var p="$isDayjsObject",q=function(a){return a instanceof u||!(!a||!a[p])},r=function a(b,c,d){var e;if(!b)return n;if("string"==typeof b){var f=b.toLowerCase();o[f]&&(e=f),c&&(o[f]=c,e=f);var g=b.split("-");if(!e&&g.length>1)return a(g[0])}else{var h=b.name;o[h]=b,e=h}return!d&&e&&(n=e),e||!d&&n},s=function(a,b){if(q(a))return a.clone();var c="object"==typeof b?b:{};return c.date=a,c.args=arguments,new u(c)},t={s:m,z:function(a){var b=-a.utcOffset(),c=Math.abs(b);return(b<=0?"+":"-")+m(Math.floor(c/60),2,"0")+":"+m(c%60,2,"0")},m:function a(b,c){if(b.date()<c.date())return-a(c,b);var d=12*(c.year()-b.year())+(c.month()-b.month()),e=b.clone().add(d,f),g=c-e<0,h=b.clone().add(d+(g?-1:1),f);return+(-(d+(c-e)/(g?e-h:h-e))||0)},a:function(a){return a<0?Math.ceil(a)||0:Math.floor(a)},p:function(j){return({M:f,y:h,w:e,d:"day",D:i,h:d,m:c,s:b,ms:a,Q:g})[j]||String(j||"").toLowerCase().replace(/s$/,"")},u:function(a){return void 0===a}};t.l=r,t.i=q,t.w=function(a,b){return s(a,{locale:b.$L,utc:b.$u,x:b.$x,$offset:b.$offset})};var u=function(){function m(a){this.$L=r(a.locale,null,!0),this.parse(a),this.$x=this.$x||a.x||{},this[p]=!0}var n=m.prototype;return n.parse=function(a){this.$d=function(a){var b=a.date,c=a.utc;if(null===b)return new Date(NaN);if(t.u(b))return new Date;if(b instanceof Date)return new Date(b);if("string"==typeof b&&!/Z$/i.test(b)){var d=b.match(k);if(d){var e=d[2]-1||0,f=(d[7]||"0").substring(0,3);return c?new Date(Date.UTC(d[1],e,d[3]||1,d[4]||0,d[5]||0,d[6]||0,f)):new Date(d[1],e,d[3]||1,d[4]||0,d[5]||0,d[6]||0,f)}}return new Date(b)}(a),this.init()},n.init=function(){var a=this.$d;this.$y=a.getFullYear(),this.$M=a.getMonth(),this.$D=a.getDate(),this.$W=a.getDay(),this.$H=a.getHours(),this.$m=a.getMinutes(),this.$s=a.getSeconds(),this.$ms=a.getMilliseconds()},n.$utils=function(){return t},n.isValid=function(){return this.$d.toString()!==j},n.isSame=function(a,b){var c=s(a);return this.startOf(b)<=c&&c<=this.endOf(b)},n.isAfter=function(a,b){return s(a)<this.startOf(b)},n.isBefore=function(a,b){return this.endOf(b)<s(a)},n.$g=function(a,b,c){return t.u(a)?this[b]:this.set(c,a)},n.unix=function(){return Math.floor(this.valueOf()/1e3)},n.valueOf=function(){return this.$d.getTime()},n.startOf=function(a,g){var j=this,k=!!t.u(g)||g,l=t.p(a),m=function(a,b){var c=t.w(j.$u?Date.UTC(j.$y,b,a):new Date(j.$y,b,a),j);return k?c:c.endOf("day")},n=function(a,b){return t.w(j.toDate()[a].apply(j.toDate("s"),(k?[0,0,0,0]:[23,59,59,999]).slice(b)),j)},o=this.$W,p=this.$M,q=this.$D,r="set"+(this.$u?"UTC":"");switch(l){case h:return k?m(1,0):m(31,11);case f:return k?m(1,p):m(0,p+1);case e:var s=this.$locale().weekStart||0,u=(o<s?o+7:o)-s;return m(k?q-u:q+(6-u),p);case"day":case i:return n(r+"Hours",0);case d:return n(r+"Minutes",1);case c:return n(r+"Seconds",2);case b:return n(r+"Milliseconds",3);default:return this.clone()}},n.endOf=function(a){return this.startOf(a,!1)},n.$set=function(e,g){var j,k=t.p(e),l="set"+(this.$u?"UTC":""),m=((j={}).day=l+"Date",j[i]=l+"Date",j[f]=l+"Month",j[h]=l+"FullYear",j[d]=l+"Hours",j[c]=l+"Minutes",j[b]=l+"Seconds",j[a]=l+"Milliseconds",j)[k],n="day"===k?this.$D+(g-this.$W):g;if(k===f||k===h){var o=this.clone().set(i,1);o.$d[m](n),o.init(),this.$d=o.set(i,Math.min(this.$D,o.daysInMonth())).$d}else m&&this.$d[m](n);return this.init(),this},n.set=function(a,b){return this.clone().$set(a,b)},n.get=function(a){return this[t.p(a)]()},n.add=function(a,g){var i,j=this;a=Number(a);var k=t.p(g),l=function(b){var c=s(j);return t.w(c.date(c.date()+Math.round(b*a)),j)};if(k===f)return this.set(f,this.$M+a);if(k===h)return this.set(h,this.$y+a);if("day"===k)return l(1);if(k===e)return l(7);var m=((i={})[c]=6e4,i[d]=36e5,i[b]=1e3,i)[k]||1,n=this.$d.getTime()+a*m;return t.w(n,this)},n.subtract=function(a,b){return this.add(-1*a,b)},n.format=function(a){var b=this,c=this.$locale();if(!this.isValid())return c.invalidDate||j;var d=a||"YYYY-MM-DDTHH:mm:ssZ",e=t.z(this),f=this.$H,g=this.$m,h=this.$M,i=c.weekdays,k=c.months,m=c.meridiem,n=function(a,c,e,f){return a&&(a[c]||a(b,d))||e[c].slice(0,f)},o=function(a){return t.s(f%12||12,a,"0")},p=m||function(a,b,c){var d=a<12?"AM":"PM";return c?d.toLowerCase():d};return d.replace(l,function(a,d){return d||function(a){switch(a){case"YY":return String(b.$y).slice(-2);case"YYYY":return t.s(b.$y,4,"0");case"M":return h+1;case"MM":return t.s(h+1,2,"0");case"MMM":return n(c.monthsShort,h,k,3);case"MMMM":return n(k,h);case"D":return b.$D;case"DD":return t.s(b.$D,2,"0");case"d":return String(b.$W);case"dd":return n(c.weekdaysMin,b.$W,i,2);case"ddd":return n(c.weekdaysShort,b.$W,i,3);case"dddd":return i[b.$W];case"H":return String(f);case"HH":return t.s(f,2,"0");case"h":return o(1);case"hh":return o(2);case"a":return p(f,g,!0);case"A":return p(f,g,!1);case"m":return String(g);case"mm":return t.s(g,2,"0");case"s":return String(b.$s);case"ss":return t.s(b.$s,2,"0");case"SSS":return t.s(b.$ms,3,"0");case"Z":return e}return null}(a)||e.replace(":","")})},n.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},n.diff=function(a,i,j){var k,l=this,m=t.p(i),n=s(a),o=(n.utcOffset()-this.utcOffset())*6e4,p=this-n,q=function(){return t.m(l,n)};switch(m){case h:k=q()/12;break;case f:k=q();break;case g:k=q()/3;break;case e:k=(p-o)/6048e5;break;case"day":k=(p-o)/864e5;break;case d:k=p/36e5;break;case c:k=p/6e4;break;case b:k=p/1e3;break;default:k=p}return j?k:t.a(k)},n.daysInMonth=function(){return this.endOf(f).$D},n.$locale=function(){return o[this.$L]},n.locale=function(a,b){if(!a)return this.$L;var c=this.clone(),d=r(a,b,!0);return d&&(c.$L=d),c},n.clone=function(){return t.w(this.$d,this)},n.toDate=function(){return new Date(this.valueOf())},n.toJSON=function(){return this.isValid()?this.toISOString():null},n.toISOString=function(){return this.$d.toISOString()},n.toString=function(){return this.$d.toUTCString()},m}(),v=u.prototype;return s.prototype=v,[["$ms",a],["$s",b],["$m",c],["$H",d],["$W","day"],["$M",f],["$y",h],["$D",i]].forEach(function(a){v[a[1]]=function(b){return this.$g(b,a[0],a[1])}}),s.extend=function(a,b){return a.$i||(a(b,u,s),a.$i=!0),s},s.locale=r,s.isDayjs=q,s.unix=function(a){return s(1e3*a)},s.en=o[n],s.Ls=o,s.p={},s}()},986013,a=>{"use strict";let b,c;var d=a.i(666680);a.s(["nanoid",0,function(a=21){var e;e=a|=0,!b||b.length<e?(b=Buffer.allocUnsafe(128*e),d.webcrypto.getRandomValues(b),c=0):c+e>b.length&&(d.webcrypto.getRandomValues(b),c=0),c+=e;let f="";for(let d=c-a;d<c;d++)f+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&b[d]];return f}],986013)},797630,a=>{"use strict";let b=a=>"web-browser"===a?"Web Browser":"";a.s(["defaultTabNameForPanelType",0,b,"resolveTabNameForPanelTypeChange",0,(a,c,d)=>{let e=b(c),f="agent-sessions"===c?"Session List":"",g=b(d),h=a.trim();return!h&&g||(""!==e&&h===e||""!==f&&h===f)&&h!==g?g:a}])},144784,a=>{"use strict";let b=a=>"pane"===a.type?[a]:[...b(a.children[0]),...b(a.children[1])],c=(a,b)=>"pane"===a.type?a.id===b?a:null:c(a.children[0],b)||c(a.children[1],b),d=a=>"pane"===a.type?a.id:d(a.children[0]),e=a=>"pane"===a.type?a.id:e(a.children[1]),f=(a,b,c)=>"pane"===a.type?a.id===b?c:a:{...a,children:[f(a.children[0],b,c),f(a.children[1],b,c)]},g=(a,b)=>{if("pane"===a.type)return null;let[c,d]=a.children;if("pane"===c.type&&c.id===b)return d;if("pane"===d.type&&d.id===b)return c;let e=g(c,b);if(e)return{...a,children:[e,d]};let f=g(d,b);return f?{...a,children:[c,f]}:null},h=(a,b)=>{if("pane"===a.type)return null;let[c,f]=a.children;return"pane"===c.type&&c.id===b?d(f):"pane"===f.type&&f.id===b?e(c):h(c,b)||h(f,b)},i=(a,b,c)=>{if("split"!==a.type)return a;if(0===b.length)return{...a,ratio:c};let[d,...e]=b,f=[a.children[0],a.children[1]];return f[d]=i(a.children[d],e,c),{...a,children:f}},j=(a,b)=>"pane"===a.type||a.orientation!==b?1:j(a.children[0],b)+j(a.children[1],b),k=a=>{if("pane"===a.type)return!0;let b=j(a.children[0],a.orientation),c=j(a.children[1],a.orientation);return!(Math.abs(a.ratio-b/(b+c)*100)>1)&&k(a.children[0])&&k(a.children[1])},l=a=>{if("pane"===a.type)return a;let b=j(a.children[0],a.orientation),c=Math.round(b/(b+j(a.children[1],a.orientation))*1e4)/100;return{...a,ratio:c,children:[l(a.children[0]),l(a.children[1])]}},m=(a,b,c)=>{if("pane"===a.type)return a.id===b?c(a):a;let d=m(a.children[0],b,c);if(d!==a.children[0])return{...a,children:[d,a.children[1]]};let e=m(a.children[1],b,c);return e!==a.children[1]?{...a,children:[a.children[0],e]}:a};a.s(["collectAllTabs",0,a=>b(a).flatMap(a=>a.tabs),"collectPanes",0,b,"equalizeNode",0,l,"findAdjacentPaneInDirection",0,(a,b,c)=>{let f=[],g=a=>{if("pane"===a.type)return a.id===b;for(let b=0;b<2;b++){if(f.push({node:a,childIndex:b}),g(a.children[b]))return!0;f.pop()}return!1};if(!g(a))return null;let h="left"===c||"right"===c?"horizontal":"vertical",i=+("left"===c||"up"===c);for(let a=f.length-1;a>=0;a--){let{node:b,childIndex:g}=f[a];if("split"===b.type&&b.orientation===h&&g===i){let a=b.children[1-i];return"left"===c||"up"===c?e(a):d(a)}}return null},"findPane",0,c,"findResizeTarget",0,(a,b,c)=>{let d=[],e=a=>{if("pane"===a.type)return a.id===b;for(let b=0;b<2;b++){if(d.push({node:a,childIndex:b}),e(a.children[b]))return!0;d.pop()}return!1};if(!e(a))return null;let f="left"===c||"right"===c?"horizontal":"vertical",g=+("right"!==c&&"down"!==c),h="right"===c||"down"===c;for(let a=d.length-1;a>=0;a--){let{node:b,childIndex:c}=d[a];if("split"===b.type&&b.orientation===f&&c===g)return{path:d.slice(0,a).map(a=>a.childIndex),currentRatio:b.ratio,increase:h}}return null},"getFirstPaneId",0,d,"isEqualized",0,k,"removePaneWithFocus",0,(a,c)=>{let d=h(a.root,c),e=g(a.root,c);e&&(a.root=e),a.activePaneId===c&&(a.activePaneId=d??b(a.root)[0]?.id??null)},"replacePane",0,f,"updatePaneInTree",0,m,"updateRatioAtPath",0,i])},206456,a=>{"use strict";let b=new Set(["zsh","bash","fish","sh","-zsh","-bash","-fish","-sh"]),c=new Set(["codex","Codex","node"]),d=a=>{if("~"===a||"/"===a)return a;let b=a.replace(/\/$/,"").split("/");return b[b.length-1]||a},e=a=>{let b=a.trim();if(!b)return null;let c=b.indexOf("|");return c>0?b.slice(0,c):null},f=(a,b)=>"codex-cli"===b&&c.has(a)?"Codex":a;a.s(["formatTabTitle",0,(a,c)=>{let g=a.trim();if(!g)return"";let h=e(a);if(null!==h){let a=g.slice(g.indexOf("|")+1);return b.has(h)?d(a):f(h,c)}let i=g.match(/@[^:]+:\s*(.*)/);if(i)return d(i[1].trim());if(g.startsWith("/")||g.startsWith("~"))return d(g);let j=g.split(/\s+/)[0];return b.has(j)?"":f(j||"",c)},"isShellProcess",0,a=>{let c=e(a);return null!==c&&b.has(c)},"parseCurrentCommand",0,e])},908597,a=>{"use strict";a.s(["getVisuallyOrderedWorkspaces",0,(a,b)=>{let c=new Set(b.map(a=>a.id)),d=new Map,e=[];for(let b of a){let a=b.groupId??null;if(a&&c.has(a)){let c=d.get(a)??[];c.push(b),d.set(a,c)}else e.push(b)}let f=[];for(let a of b){let b=d.get(a.id);b&&f.push(...b)}return f.push(...e),f}])},4873,a=>{"use strict";var b=a.i(127669);let c=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},d=a=>{let d=a?c(a):c,e=a=>(function(a,c=a=>a){let d=b.default.useSyncExternalStore(a.subscribe,b.default.useCallback(()=>c(a.getState()),[a,c]),b.default.useCallback(()=>c(a.getInitialState()),[a,c]));return b.default.useDebugValue(d),d})(d,a);return Object.assign(e,d),e};a.s(["create",0,a=>a?d(a):d],4873)},721043,a=>{"use strict";a.s(["default",0,!1])},740398,83041,480824,a=>{"use strict";var b=a.i(127669),c=(a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}},d=["light","dark"],e="(prefers-color-scheme: dark)",f=b.createContext(void 0),g={setTheme:a=>{},themes:[]},h=()=>{var a;return null!=(a=b.useContext(f))?a:g},i=["light","dark"],j=({forcedTheme:a,disableTransitionOnChange:c=!1,enableSystem:g=!0,enableColorScheme:h=!0,storageKey:j="theme",themes:o=i,defaultTheme:p=g?"system":"light",attribute:q="data-theme",value:r,children:s,nonce:t,scriptProps:u})=>{let[v,w]=b.useState(()=>l(j,p)),[x,y]=b.useState(()=>"system"===v?n():v),z=r?Object.values(r):o,A=b.useCallback(a=>{let b=a;if(!b)return;"system"===a&&g&&(b=n());let e=r?r[b]:b,f=c?m(t):null,i=document.documentElement,j=a=>{"class"===a?(i.classList.remove(...z),e&&i.classList.add(e)):a.startsWith("data-")&&(e?i.setAttribute(a,e):i.removeAttribute(a))};if(Array.isArray(q)?q.forEach(j):j(q),h){let a=d.includes(p)?p:null,c=d.includes(b)?b:a;i.style.colorScheme=c}null==f||f()},[t]),B=b.useCallback(a=>{let b="function"==typeof a?a(v):a;w(b);try{localStorage.setItem(j,b)}catch(a){}},[v]),C=b.useCallback(b=>{y(n(b)),"system"===v&&g&&!a&&A("system")},[v,a]);b.useEffect(()=>{let a=window.matchMedia(e);return a.addListener(C),C(a),()=>a.removeListener(C)},[C]),b.useEffect(()=>{let a=a=>{a.key===j&&(a.newValue?w(a.newValue):B(p))};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[B]),b.useEffect(()=>{A(null!=a?a:v)},[a,v]);let D=b.useMemo(()=>({theme:v,setTheme:B,forcedTheme:a,resolvedTheme:"system"===v?x:v,themes:g?[...o,"system"]:o,systemTheme:g?x:void 0}),[v,B,a,x,g,o]);return b.createElement(f.Provider,{value:D},b.createElement(k,{forcedTheme:a,storageKey:j,attribute:q,enableSystem:g,enableColorScheme:h,defaultTheme:p,value:r,themes:o,nonce:t,scriptProps:u}),s)},k=b.memo(({forcedTheme:a,storageKey:d,attribute:e,enableSystem:f,enableColorScheme:g,defaultTheme:h,value:i,themes:j,nonce:k,scriptProps:l})=>{let m=JSON.stringify([e,d,h,a,j,i,f,g]).slice(1,-1);return b.createElement("script",{...l,suppressHydrationWarning:!0,nonce:k,dangerouslySetInnerHTML:{__html:`(${c.toString()})(${m})`}})}),l=(a,b)=>{},m=a=>{let b=document.createElement("style");return a&&b.setAttribute("nonce",a),b.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(b),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(b)},1)}},n=a=>(a||(a=window.matchMedia(e)),a.matches?"dark":"light");a.s(["ThemeProvider",0,a=>b.useContext(f)?b.createElement(b.Fragment,null,a.children):b.createElement(j,{...a}),"useTheme",0,h],740398);var o=a.i(4873);let p=[{id:"snazzy",name:"Snazzy",variant:"dark",colors:{background:"#1e1f29",foreground:"#ebece6",cursor:"#e4e4e4",cursorAccent:"#1e1f29",selectionBackground:"#81aec6",selectionForeground:"#000000",black:"#000000",red:"#fc4346",green:"#50fb7c",yellow:"#f0fb8c",blue:"#49baff",magenta:"#fc4cb4",cyan:"#8be9fe",white:"#ededec",brightBlack:"#555555",brightRed:"#fc4346",brightGreen:"#50fb7c",brightYellow:"#f0fb8c",brightBlue:"#49baff",brightMagenta:"#fc4cb4",brightCyan:"#8be9fe",brightWhite:"#ededec"}},{id:"dracula",name:"Dracula",variant:"dark",colors:{background:"#282a36",foreground:"#f8f8f2",cursor:"#f8f8f2",cursorAccent:"#282a36",selectionBackground:"#44475a",selectionForeground:"#f8f8f2",black:"#21222c",red:"#ff5555",green:"#50fa7b",yellow:"#f1fa8c",blue:"#bd93f9",magenta:"#ff79c6",cyan:"#8be9fd",white:"#f8f8f2",brightBlack:"#6272a4",brightRed:"#ff6e6e",brightGreen:"#69ff94",brightYellow:"#ffffa5",brightBlue:"#d6acff",brightMagenta:"#ff92df",brightCyan:"#a4ffff",brightWhite:"#ffffff"}},{id:"one-dark",name:"One Dark",variant:"dark",colors:{background:"#282c34",foreground:"#abb2bf",cursor:"#528bff",cursorAccent:"#282c34",selectionBackground:"#3e4451",selectionForeground:"#abb2bf",black:"#282c34",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#abb2bf",brightBlack:"#5c6370",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff"}},{id:"tokyo-night",name:"Tokyo Night",variant:"dark",colors:{background:"#1a1b26",foreground:"#a9b1d6",cursor:"#c0caf5",cursorAccent:"#1a1b26",selectionBackground:"#33467c",selectionForeground:"#a9b1d6",black:"#15161e",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#414868",brightRed:"#f7768e",brightGreen:"#9ece6a",brightYellow:"#e0af68",brightBlue:"#7aa2f7",brightMagenta:"#bb9af7",brightCyan:"#7dcfff",brightWhite:"#c0caf5"}},{id:"nord",name:"Nord",variant:"dark",colors:{background:"#2e3440",foreground:"#d8dee9",cursor:"#d8dee9",cursorAccent:"#2e3440",selectionBackground:"#434c5e",selectionForeground:"#d8dee9",black:"#3b4252",red:"#bf616a",green:"#a3be8c",yellow:"#ebcb8b",blue:"#81a1c1",magenta:"#b48ead",cyan:"#88c0d0",white:"#e5e9f0",brightBlack:"#4c566a",brightRed:"#bf616a",brightGreen:"#a3be8c",brightYellow:"#ebcb8b",brightBlue:"#81a1c1",brightMagenta:"#b48ead",brightCyan:"#8fbcbb",brightWhite:"#eceff4"}},{id:"catppuccin-mocha",name:"Catppuccin Mocha",variant:"dark",colors:{background:"#1e1e2e",foreground:"#cdd6f4",cursor:"#f5e0dc",cursorAccent:"#1e1e2e",selectionBackground:"#585b70",selectionForeground:"#cdd6f4",black:"#45475a",red:"#f38ba8",green:"#a6e3a1",yellow:"#f9e2af",blue:"#89b4fa",magenta:"#f5c2e7",cyan:"#94e2d5",white:"#bac2de",brightBlack:"#585b70",brightRed:"#f38ba8",brightGreen:"#a6e3a1",brightYellow:"#f9e2af",brightBlue:"#89b4fa",brightMagenta:"#f5c2e7",brightCyan:"#94e2d5",brightWhite:"#a6adc8"}},{id:"catppuccin-latte",name:"Catppuccin Latte",variant:"light",colors:{background:"#eff1f5",foreground:"#4c4f69",cursor:"#dc8a78",cursorAccent:"#eff1f5",selectionBackground:"#acb0be",selectionForeground:"#4c4f69",black:"#5c5f77",red:"#d20f39",green:"#40a02b",yellow:"#df8e1d",blue:"#1e66f5",magenta:"#ea76cb",cyan:"#179299",white:"#acb0be",brightBlack:"#6c6f85",brightRed:"#d20f39",brightGreen:"#40a02b",brightYellow:"#df8e1d",brightBlue:"#1e66f5",brightMagenta:"#ea76cb",brightCyan:"#179299",brightWhite:"#bcc0cc"}},{id:"github-light",name:"GitHub Light",variant:"light",colors:{background:"#f6f8fa",foreground:"#24292f",cursor:"#044289",cursorAccent:"#f6f8fa",selectionBackground:"#b6d7ff",selectionForeground:"#24292f",black:"#24292f",red:"#cf222e",green:"#116329",yellow:"#9a6700",blue:"#0969da",magenta:"#8250df",cyan:"#1b7c83",white:"#6e7781",brightBlack:"#57606a",brightRed:"#a40e26",brightGreen:"#1a7f37",brightYellow:"#bf8700",brightBlue:"#218bff",brightMagenta:"#a475f9",brightCyan:"#3192aa",brightWhite:"#8c959f"}},{id:"one-light",name:"One Light",variant:"light",colors:{background:"#fafafa",foreground:"#383a42",cursor:"#526eff",cursorAccent:"#fafafa",selectionBackground:"#e5e5e6",selectionForeground:"#383a42",black:"#383a42",red:"#e45649",green:"#50a14f",yellow:"#c18401",blue:"#4078f2",magenta:"#a626a4",cyan:"#0184bc",white:"#a0a1a7",brightBlack:"#696c77",brightRed:"#e45649",brightGreen:"#50a14f",brightYellow:"#c18401",brightBlue:"#4078f2",brightMagenta:"#a626a4",brightCyan:"#0184bc",brightWhite:"#d4d4d4"}},{id:"solarized-light",name:"Solarized Light",variant:"light",colors:{background:"#fdf6e3",foreground:"#657b83",cursor:"#657b83",cursorAccent:"#fdf6e3",selectionBackground:"#eee8d5",selectionForeground:"#657b83",black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#eee8d5",brightBlack:"#002b36",brightRed:"#cb4b16",brightGreen:"#586e75",brightYellow:"#657b83",brightBlue:"#839496",brightMagenta:"#6c71c4",brightCyan:"#93a1a1",brightWhite:"#fdf6e3"}},{id:"tokyo-night-light",name:"Tokyo Night Light",variant:"light",colors:{background:"#e1e2e7",foreground:"#3760bf",cursor:"#3760bf",cursorAccent:"#e1e2e7",selectionBackground:"#b6bfe2",selectionForeground:"#3760bf",black:"#e9e9ed",red:"#f52a65",green:"#587539",yellow:"#8c6c3e",blue:"#2e7de9",magenta:"#9854f1",cyan:"#007197",white:"#6172b0",brightBlack:"#a1a6c5",brightRed:"#f52a65",brightGreen:"#587539",brightYellow:"#8c6c3e",brightBlue:"#2e7de9",brightMagenta:"#9854f1",brightCyan:"#007197",brightWhite:"#3760bf"}},{id:"nord-light",name:"Nord Light",variant:"light",colors:{background:"#eceff4",foreground:"#2e3440",cursor:"#2e3440",cursorAccent:"#eceff4",selectionBackground:"#d8dee9",selectionForeground:"#2e3440",black:"#2e3440",red:"#bf616a",green:"#a3be8c",yellow:"#ebcb8b",blue:"#81a1c1",magenta:"#b48ead",cyan:"#88c0d0",white:"#d8dee9",brightBlack:"#4c566a",brightRed:"#bf616a",brightGreen:"#a3be8c",brightYellow:"#ebcb8b",brightBlue:"#81a1c1",brightMagenta:"#b48ead",brightCyan:"#8fbcbb",brightWhite:"#eceff4"}}],q={light:"catppuccin-latte",dark:"snazzy"},r=a=>p.find(b=>b.id===a)??p[0];a.s(["DEFAULT_THEME_IDS",0,q,"TERMINAL_THEMES",0,p,"getTerminalTheme",0,r],83041);let s=(0,o.create)(a=>({themeIds:{...q},setTheme:(b,c)=>{a(a=>{let d={...a.themeIds,[b]:c};return fetch("/api/config",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({terminalTheme:d})}).catch(()=>{}),{themeIds:d}})},hydrate:b=>{a({themeIds:{...q,...b}})}}));a.s(["default",0,()=>{let{resolvedTheme:a}=h(),b="light"===a?"light":"dark",{themeIds:c,setTheme:d}=s(),e=r(c[b]);return{mode:b,themeIds:c,theme:e,setTerminalTheme:d,themes:p}},"initTerminalTheme",0,a=>{a&&s.getState().hydrate(a)}],480824)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__023cjc5._.js.map
|