purplemux 0.1.21 → 0.2.0
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 +77 -77
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/routes-manifest.json +13 -7
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00glsnv._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__05bsxq0._.js → [root-of-the-server]__00yjayf._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01.~37j._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03l15.f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__045vzzi._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__04cr_m8._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ff8o47._.js → [root-of-the-server]__04o.cbq._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05ij_ys._.js +42 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07gfnob._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07xijrd._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09gkm_6._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_.po82._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0auutl5._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cjfc~l._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l~_wd0._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0m4quth._.js → [root-of-the-server]__0n61.a8._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ovn6yp._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qvunc5._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t1c-6w._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__09w77m2._.js → [root-of-the-server]__0t7wqt6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vi8p6v._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w3m-oz._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__11j9~6h._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0xn_0ft._.js → [root-of-the-server]__12ksl6n._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12nr~pb._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0e8e4zn._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0isokfh._.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_00-t8sq.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_136edwc._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_layout-store_ts_0fanx7c._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_session-parser_ts_0~rhicw._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_status-manager_ts_003hlhy._.js +13 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0au.ssp._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0_mc3i2._.js → _00ehnd~._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0qejycp._.js → _00rrt71._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_06yggfn._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0kjoxb9._.js → _08h9ynz._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_08ytq3p._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0h~fc23._.js → _0_c~3id._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0-xx2s1._.js → _0_owbnq._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0al4.z9._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0b~zgl1._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0quk21n._.js → _0dg4_bi._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0qy269j._.js → _0gp1meg._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0iy5a-w._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0js4l3t._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_0fuovbm._.js → _0lnui2f._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0nkeoiw._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0qbbxeq._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_06.nllk._.js → _0rxhzwm._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0g258pg._.js → _0sfctwm._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0c0hpua._.js → _0ulmx3c._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0k9ybcl._.js → _0wlh.pc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_11wj.a4._.js → _0y5jzd3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0z61aq-._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0lhf6qf._.js → _0~.theb._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0si9.17._.js → _11rnj4l._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{messages_127a4ox._.js → messages_046iw4z._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{messages_005j2ko._.js → messages_0zr0cc7._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_de_notification_json_[json]_cjs_02k70lx._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_de_session_json_[json]_cjs_0b-1vpl._.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_en_notification_json_[json]_cjs_0jqq879._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_en_session_json_[json]_cjs_0jaymfk._.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_es_notification_json_[json]_cjs_0q.i2xj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_es_session_json_[json]_cjs_0jy1144._.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_fr_notification_json_[json]_cjs_0muj65q._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_fr_session_json_[json]_cjs_0rz0g.c._.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_ja_notification_json_[json]_cjs_03v~p7j._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ja_session_json_[json]_cjs_0cos-uy._.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_ko_notification_json_[json]_cjs_0gx~jkl._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ko_session_json_[json]_cjs_0x4saic._.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_pt-BR_notification_json_[json]_cjs_02mo05m._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_session_json_[json]_cjs_0-x8ftl._.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_ru_notification_json_[json]_cjs_03crije._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_ru_session_json_[json]_cjs_0~2-kve._.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_tr_notification_json_[json]_cjs_0g.576s._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_tr_session_json_[json]_cjs_0zsvt_4._.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_zh-CN_notification_json_[json]_cjs_07v9on4._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_session_json_[json]_cjs_134xza~._.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-TW_notification_json_[json]_cjs_0.ktzjy._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_session_json_[json]_cjs_0mv_~-8._.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/{node_modules_0cndrls._.js → node_modules_0kc8lix._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_05g_qd3._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_10v_9d0._.js → src_components_0cflin8._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_04vn0dm._.js → src_components_0g.s~e7._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_0gsv3ly._.js → src_components_0jrj_vu._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_components_0iq~ool._.js → src_components_0rs9yzr._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_components_features_mobile_mobile-terminal-page_tsx_02chzch._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_components_features_workspace_terminal-page_tsx_0wuq-jl._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_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/chunks/ssr/src_lib_message-namespaces_ts_0wjpvu5._.js +3 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +77 -77
- 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 +4 -4
- package/.next/standalone/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/_error/build-manifest.json +2 -2
- package/.next/standalone/.next/server/pages/_error/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/_error.js +2 -2
- package/.next/standalone/.next/server/pages/_error.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/check-claude.js +1 -1
- package/.next/standalone/.next/server/pages/api/check-claude.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/send.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/send.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/status.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/status.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId].js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/tabs.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/cli/workspaces.js +1 -1
- package/.next/standalone/.next/server/pages/api/cli/workspaces.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/git/branch.js +1 -1
- package/.next/standalone/.next/server/pages/api/git/branch.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/git/status.js +1 -1
- package/.next/standalone/.next/server/pages/api/git/status.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/cwd.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/cwd.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/diff.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/diff.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js +2 -2
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js +4 -4
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout/pane.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/layout.js +1 -1
- package/.next/standalone/.next/server/pages/api/layout.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/message-history.js +1 -1
- package/.next/standalone/.next/server/pages/api/message-history.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/push/vapid-key.js +1 -1
- package/.next/standalone/.next/server/pages/api/push/vapid-key.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js +1 -1
- package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/projects.js +1 -1
- package/.next/standalone/.next/server/pages/api/stats/projects.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/sessions.js +1 -1
- package/.next/standalone/.next/server/pages/api/stats/sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/stats/uptime.js +1 -1
- package/.next/standalone/.next/server/pages/api/stats/uptime.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/status/hook.js +4 -4
- 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 -1
- package/.next/standalone/.next/server/pages/api/status/statusline.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js +1 -1
- package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/timeline/entries.js +1 -1
- package/.next/standalone/.next/server/pages/api/timeline/entries.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/timeline/message-counts/pages-manifest.json +3 -0
- package/.next/standalone/.next/server/pages/api/timeline/message-counts.js +5 -0
- package/.next/standalone/.next/server/pages/api/timeline/message-counts.js.map +5 -0
- package/.next/standalone/.next/server/pages/api/timeline/message-counts.js.nft.json +1 -0
- package/.next/standalone/.next/server/pages/api/timeline/sessions.js +1 -1
- package/.next/standalone/.next/server/pages/api/timeline/sessions.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/capture.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/capture.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/info.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/info.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/permission-options.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/permission-options.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/plan-options.js +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/plan-options.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js +5 -5
- package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/tmux/reset.js +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 +1 -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 +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/active.js +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/active.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/reorder.js +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/reorder.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/validate.js +1 -1
- package/.next/standalone/.next/server/pages/api/workspace/validate.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/api/workspace.js +4 -4
- 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 +12 -12
- package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/index/react-loadable-manifest.json +6 -6
- package/.next/standalone/.next/server/pages/index.js +13 -13
- 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 +10 -10
- package/.next/standalone/.next/server/pages/login/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/login.js +2 -2
- 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 +16 -16
- package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/reports.js +9 -9
- package/.next/standalone/.next/server/pages/reports.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/reset/build-manifest.json +2 -2
- package/.next/standalone/.next/server/pages/reset/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/reset.js +3 -3
- 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 +13 -13
- package/.next/standalone/.next/server/pages/stats/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/stats/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/stats.js +6 -6
- package/.next/standalone/.next/server/pages/stats.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/tools-required/build-manifest.json +2 -2
- package/.next/standalone/.next/server/pages/tools-required/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/tools-required.js +3 -3
- package/.next/standalone/.next/server/pages/tools-required.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/tr/404.html +1 -1
- package/.next/standalone/.next/server/pages/tr/500.html +1 -1
- package/.next/standalone/.next/server/pages/webview/build-manifest.json +10 -10
- package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/webview.js +10 -10
- package/.next/standalone/.next/server/pages/webview.js.nft.json +1 -1
- package/.next/standalone/.next/server/pages/zh-CN/404.html +1 -1
- package/.next/standalone/.next/server/pages/zh-CN/500.html +1 -1
- package/.next/standalone/.next/server/pages/zh-TW/404.html +1 -1
- package/.next/standalone/.next/server/pages/zh-TW/500.html +1 -1
- package/.next/standalone/.next/server/pages-manifest.json +1 -0
- package/.next/standalone/.next/static/{dcByQy16pcz2rzj9snwtK → WXAyTQ0PHZnxXXCwEZpit}/_buildManifest.js +9 -8
- package/.next/standalone/.next/static/chunks/0-97ruc25d2lz.js +1 -0
- package/.next/standalone/.next/static/chunks/{17e9_m-u1zvfx.js → 0-xrsiia9hc.c.js} +1 -1
- package/.next/standalone/.next/static/chunks/{135rnnu.-sh80.js → 0.ecwkadp7-hq.js} +1 -1
- package/.next/standalone/.next/static/chunks/00nx1s6rpu537.js +1 -0
- package/.next/standalone/.next/static/chunks/{0nin7ftvq8x5c.js → 00ziyk306y55s.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0kebzqtn4norb.js → 01-fb9rb-21.a.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0dthloew7zc8k.js → 010m3dplwy4n6.js} +16 -16
- package/.next/standalone/.next/static/chunks/{0_7qn_xpf-6l~.js → 02mfn213kze9c.js} +2 -2
- package/.next/standalone/.next/static/chunks/02r-a1_lz7fuk.js +1 -0
- package/.next/standalone/.next/static/chunks/04bbxzycy0y90.js +1 -0
- package/.next/standalone/.next/static/chunks/{0y--b123-dayk.js → 04cl8pvql07vz.js} +1 -1
- package/.next/standalone/.next/static/chunks/{15wkoi26~8omr.js → 04f25y8yc8j00.js} +1 -1
- package/.next/standalone/.next/static/chunks/{02.xbkqbezb~v.js → 04uzwc8c9u49~.js} +1 -1
- package/.next/standalone/.next/static/chunks/05oh32ya2uzfq.js +1 -0
- package/.next/standalone/.next/static/chunks/06e51nokt~dtt.js +1 -0
- package/.next/standalone/.next/static/chunks/06ypydsl._u~2.js +5 -0
- package/.next/standalone/.next/static/chunks/07-xm--o034du.js +1 -0
- package/.next/standalone/.next/static/chunks/071neb1eikeoh.js +1 -0
- package/.next/standalone/.next/static/chunks/07i6~xrmgspp8.js +1 -0
- package/.next/standalone/.next/static/chunks/{0i7zwsw_~llk0.js → 07v3udp2qhc02.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0kox55ju9c.e4.js → 088o~nd5em_1d.js} +1 -1
- package/.next/standalone/.next/static/chunks/{10_1w.i.mluxp.js → 08xz_z9u4ex9t.js} +1 -1
- package/.next/standalone/.next/static/chunks/{02119z8xemosp.js → 08yjqhf82rx~h.js} +1 -1
- package/.next/standalone/.next/static/chunks/095e2xf3z6x3g.js +23 -0
- package/.next/standalone/.next/static/chunks/{040hwmh16ihpj.js → 09agwg~-xbxbs.js} +1 -1
- package/.next/standalone/.next/static/chunks/09tinkgkd8br_.js +1 -0
- package/.next/standalone/.next/static/chunks/09vjzvj4~rwbf.js +1 -0
- package/.next/standalone/.next/static/chunks/{0puhant9cy0xw.js → 0__ve3txz-02p.js} +1 -1
- package/.next/standalone/.next/static/chunks/0a1hi9y0lwv3j.js +1 -0
- package/.next/standalone/.next/static/chunks/{0fzb0m-2k2x14.js → 0bzbaprexb9od.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ggsfsmm~hj5t.js → 0cfpdp0_-.4aj.js} +1 -1
- package/.next/standalone/.next/static/chunks/0chjvj73yfmoj.js +1 -0
- package/.next/standalone/.next/static/chunks/{0yi.kp2rt4-nc.js → 0ea-k_kbq5gi1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{082eokcz_e-4q.js → 0f81tdf_8utww.js} +1 -1
- package/.next/standalone/.next/static/chunks/{14ajlpt1s6ueh.js → 0ff6a07hvp4pu.js} +2 -2
- package/.next/standalone/.next/static/chunks/{105.cpxealiud.js → 0fotmrplo6yc7.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0h_vfy~qxk1_6.js → 0h-7ntqpip4oi.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0wvyw8fxpnmre.js → 0h~_fdj60t_~l.js} +1 -1
- package/.next/standalone/.next/static/chunks/{04_s.sj1oagqr.js → 0i2uqmry6cyl_.js} +1 -1
- package/.next/standalone/.next/static/chunks/0if5fmp94~nc2.js +12 -0
- package/.next/standalone/.next/static/chunks/{1235zq5em7nh2.js → 0iw7xjsfo1v-u.js} +10 -10
- package/.next/standalone/.next/static/chunks/0jxk8j~j30thp.js +1 -0
- package/.next/standalone/.next/static/chunks/{0_eof.53ko6d_.js → 0lz-p_awksh5e.js} +1 -1
- package/.next/standalone/.next/static/chunks/0m_amua611xl0.js +5 -0
- package/.next/standalone/.next/static/chunks/0nyar-7g9rya6.js +1 -0
- package/.next/standalone/.next/static/chunks/0o6esya.vhm1..js +1 -0
- package/.next/standalone/.next/static/chunks/0oxlivdn8c89b.js +1 -0
- package/.next/standalone/.next/static/chunks/{0iiahbpxxksju.js → 0p1vmcv-mlsg5.js} +1 -1
- package/.next/standalone/.next/static/chunks/{14067kbmixmm6.js → 0pw-284q1gfk3.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0turlr93lvkg8.js → 0t0-4sn-nqqld.js} +1 -1
- package/.next/standalone/.next/static/chunks/{09jl7_l-yth-3.js → 0t76mt4_ijxw7.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0_nr91n2-npr6.js → 0u-1zto-umjh9.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0x4khblf0c7-p.js → 0u9~wuf2zbs5z.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0krb2wvo2_ipb.js → 0unvbz84l4g9h.js} +1 -1
- package/.next/standalone/.next/static/chunks/{12up4kbv36k4r.js → 0w52yh2srwcs0.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0ml0ppx6kwe2_.js → 0w9~wt6~_cxhf.js} +1 -1
- package/.next/standalone/.next/static/chunks/0wp13r5su.j3e.js +1 -0
- package/.next/standalone/.next/static/chunks/{0e~.6y_x93o06.js → 0y3fmkya..f_6.js} +13 -13
- package/.next/standalone/.next/static/chunks/0~ei.a78nuwqe.js +1 -0
- package/.next/standalone/.next/static/chunks/{0hqhf5soi_25r.js → 0~lnp45fxxtgz.js} +1 -1
- package/.next/standalone/.next/static/chunks/0~nlz9.lltzrz.js +1 -0
- package/.next/standalone/.next/static/chunks/10bvbbw1062os.js +1 -0
- package/.next/standalone/.next/static/chunks/{01sxhicgu6p69.js → 11ess6mn2988z.js} +10 -10
- package/.next/standalone/.next/static/chunks/11gch78bg_qsn.js +1 -0
- package/.next/standalone/.next/static/chunks/{0zzlz_qu90xvc.js → 11nk1lwom62oe.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0sj1hijbxwqzi.js → 131tx--pi8.tm.js} +1 -1
- package/.next/standalone/.next/static/chunks/13zzmkwag6vsm.css +1 -0
- package/.next/standalone/.next/static/chunks/13~7v30_nnqks.js +1 -0
- package/.next/standalone/.next/static/chunks/{0arxgyek93av0.js → 17deooyefr~9o.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0jhs9_arn872p.js → 17e2iymrk7eoa.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0kima6zc7cl2p.js → 17et6y09q052u.js} +1 -1
- package/.next/standalone/.next/static/chunks/17jcucuef_33-.js +1 -0
- package/.next/standalone/.next/static/chunks/{turbopack-11cbtg95iwob2.js → turbopack-0-itu0o9y_vq8.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0t_pmdbcbax~k.js → turbopack-0.28.d-q12n3p.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0tl7oxj3760qz.js → turbopack-0.4ipr_kch~.s.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-02re16zyko_-d.js → turbopack-0g80nrinbfgtk.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-03ch5ephon-wk.js → turbopack-0h0~tr4tgq3aa.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0k.5aa0_xv2hq.js → turbopack-0hwi_g-tegs_u.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0au9jjcv_8-gl.js → turbopack-0np.oib7-.1fp.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-02yx2w1m.5ub9.js → turbopack-0qmx66h203l93.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0vqdj~g~ggw3x.js → turbopack-11utvoktq4lmr.js} +1 -1
- package/.next/standalone/messages/de/notification.json +3 -1
- package/.next/standalone/messages/de/session.json +5 -2
- package/.next/standalone/messages/de/settings.json +22 -1
- package/.next/standalone/messages/en/notification.json +3 -1
- package/.next/standalone/messages/en/session.json +5 -2
- package/.next/standalone/messages/en/settings.json +20 -1
- package/.next/standalone/messages/es/notification.json +3 -1
- package/.next/standalone/messages/es/session.json +5 -2
- package/.next/standalone/messages/es/settings.json +22 -1
- package/.next/standalone/messages/fr/notification.json +3 -1
- package/.next/standalone/messages/fr/session.json +5 -2
- package/.next/standalone/messages/fr/settings.json +22 -1
- package/.next/standalone/messages/ja/notification.json +3 -1
- package/.next/standalone/messages/ja/session.json +5 -2
- package/.next/standalone/messages/ja/settings.json +22 -1
- package/.next/standalone/messages/ko/notification.json +3 -1
- package/.next/standalone/messages/ko/session.json +5 -2
- package/.next/standalone/messages/ko/settings.json +20 -1
- package/.next/standalone/messages/pt-BR/notification.json +3 -1
- package/.next/standalone/messages/pt-BR/session.json +5 -2
- package/.next/standalone/messages/pt-BR/settings.json +22 -1
- package/.next/standalone/messages/ru/notification.json +3 -1
- package/.next/standalone/messages/ru/session.json +5 -2
- package/.next/standalone/messages/ru/settings.json +22 -1
- package/.next/standalone/messages/tr/notification.json +3 -1
- package/.next/standalone/messages/tr/session.json +5 -2
- package/.next/standalone/messages/tr/settings.json +22 -1
- package/.next/standalone/messages/zh-CN/notification.json +3 -1
- package/.next/standalone/messages/zh-CN/session.json +5 -2
- package/.next/standalone/messages/zh-CN/settings.json +22 -1
- package/.next/standalone/messages/zh-TW/notification.json +3 -1
- package/.next/standalone/messages/zh-TW/session.json +5 -2
- package/.next/standalone/messages/zh-TW/settings.json +22 -1
- package/.next/standalone/package.json +4 -5
- package/.next/standalone/server.js +1 -1
- package/dist/server.js +219 -244
- package/package.json +4 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__019s3sg._.js +0 -15
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02d5mfa._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__050uepg._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__093j355._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cy9s8s._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dn3vc8._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g99747._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ge7g~x._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0iqf2xr._.js +0 -15
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ky2xd.._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l806ne._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mm5n3z._.js +0 -15
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0psi612._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qtw~r6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ysyw3z._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~7f-os._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10b7n-k._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-e2yqy._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vwkkwh._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0mu2snc._.js +0 -3
- package/.next/standalone/.next/static/chunks/0.me5n9dvrgga.js +0 -1
- package/.next/standalone/.next/static/chunks/04u8dbn0ogxqm.js +0 -5
- package/.next/standalone/.next/static/chunks/0617badw.sq7c.js +0 -1
- package/.next/standalone/.next/static/chunks/06ik0y0xz_pxd.js +0 -5
- package/.next/standalone/.next/static/chunks/06~0v3h-9qr-b.js +0 -1
- package/.next/standalone/.next/static/chunks/0_iwf7xd96dhg.js +0 -1
- package/.next/standalone/.next/static/chunks/0b.80wy8lilvw.js +0 -1
- package/.next/standalone/.next/static/chunks/0c9nugbfmzaq4.js +0 -23
- package/.next/standalone/.next/static/chunks/0da0otp~vxk80.js +0 -1
- package/.next/standalone/.next/static/chunks/0diujbo1qkcle.css +0 -1
- package/.next/standalone/.next/static/chunks/0ep6reedai0y6.js +0 -1
- package/.next/standalone/.next/static/chunks/0f6dlhth6ll0c.js +0 -12
- package/.next/standalone/.next/static/chunks/0j.bb896cs98k.js +0 -1
- package/.next/standalone/.next/static/chunks/0j630d8~~4rbz.js +0 -1
- package/.next/standalone/.next/static/chunks/0k7kp5g9etss9.js +0 -1
- package/.next/standalone/.next/static/chunks/0ng68zj-fjm.w.js +0 -1
- package/.next/standalone/.next/static/chunks/0nsq-sayv38ks.js +0 -1
- package/.next/standalone/.next/static/chunks/0nvalz7iwy6qc.js +0 -1
- package/.next/standalone/.next/static/chunks/0rr7vbxqscvhw.js +0 -1
- package/.next/standalone/.next/static/chunks/0s66~z6yys6zz.js +0 -1
- package/.next/standalone/.next/static/chunks/0s8imclb5deef.js +0 -1
- package/.next/standalone/.next/static/chunks/0u7flh--27u75.js +0 -1
- package/.next/standalone/.next/static/chunks/0vrlsk_eqnj7q.js +0 -1
- package/.next/standalone/.next/static/chunks/0vw93vbkgsb1a.js +0 -1
- package/.next/standalone/.next/static/chunks/12i5z~h-3ys7k.js +0 -1
- package/.next/standalone/.next/static/chunks/171khl108g-m8.js +0 -1
- package/.next/standalone/.next/static/chunks/17fzeqm4m_x67.js +0 -1
- /package/.next/standalone/.next/static/{dcByQy16pcz2rzj9snwtK → WXAyTQ0PHZnxXXCwEZpit}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{dcByQy16pcz2rzj9snwtK → WXAyTQ0PHZnxXXCwEZpit}/_ssgManifest.js +0 -0
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
module.exports=[75874,e=>{"use strict";var t=e.i(924868),n=e.i(814747),i=e.i(446786);let a=n.default.join(i.default.homedir(),".purplemux"),s=n.default.join(a,"push-subscriptions.json"),l=globalThis;l.__ptPushLock||(l.__ptPushLock=Promise.resolve());let r=async e=>{let t,n=new Promise(e=>{t=e}),i=l.__ptPushLock;l.__ptPushLock=n,await i;try{return await e()}finally{t()}},u=async()=>{try{let e=await t.default.readFile(s,"utf-8");return JSON.parse(e)}catch{return[]}},o=async e=>{await t.default.mkdir(a,{recursive:!0});let n=s+".tmp";try{await t.default.writeFile(n,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(n,s)}catch(e){throw await t.default.unlink(n).catch(()=>{}),e}},c=async()=>u(),d=async e=>r(async()=>{let t=await u(),n=t.findIndex(t=>t.endpoint===e.endpoint);n>=0?t[n]=e:t.push(e),await o(t)}),f=async e=>r(async()=>{let t=await u(),n=t.filter(t=>t.endpoint!==e);n.length!==t.length&&await o(n)}),h=globalThis;h.__ptVisibleDevices||(h.__ptVisibleDevices=new Map);let p=h.__ptVisibleDevices,m=globalThis;m.__ptSessionPushTarget||(m.__ptSessionPushTarget=new Map);let w=m.__ptSessionPushTarget;e.s(["addSubscription",0,d,"clearSessionPushTarget",0,e=>{w.delete(e)},"getSubscriptions",0,c,"isAnyDeviceVisible",0,()=>{let e=Date.now();for(let[t,n]of p)if(!(e-n>6e4))return!0;else p.delete(t);return!1},"markDeviceHidden",0,e=>{p.delete(e)},"markDeviceVisible",0,e=>{p.set(e,Date.now())},"removeSubscription",0,f,"setSessionPushTarget",0,(e,t)=>{w.set(e,t)}])},713915,e=>{"use strict";var t=e.i(233405),n=e.i(924868),i=e.i(446786),a=e.i(814747),s=e.i(224361),l=e.i(597789),r=e.i(965898);let u=(0,s.promisify)(t.execFile),o=null,c=null,d=async()=>{let e=i.default.userInfo().shell||(0,l.defaultShell)();try{let{stdout:t}=await u(e,["-ilc",'echo -n "$PATH"'],{timeout:5e3,env:{...(0,l.buildShellEnv)(),SHELL:e,DISABLE_AUTO_UPDATE:"true",ZSH_TMUX_AUTOSTARTED:"true"}});return t.toString().trim()}catch{return r.PRISTINE_ENV.PATH||""}},f=async()=>o||(c||(c=d().then(e=>(o=e,c=null,e))),c),h=async(e,t,n)=>{try{let i=await f(),{stdout:a}=await u(e,t,{timeout:5e3,env:{...process.env,PATH:i}});return{installed:!0,version:n(a)}}catch{return{installed:!1,version:null}}},p=e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null,m=[a.default.join(i.default.homedir(),".local","bin")],w=async()=>{for(let e of m)try{return await (0,n.access)(a.default.join(e,"claude")),e}catch{}return null},y=e=>e.installed&&null!==e.version&&parseFloat(e.version)>=2.9,g=async()=>{o=await d();let[e,t,s]=await Promise.all([h("tmux",["-V"],p),h("git",["--version"],p),h("claude",["--version"],p)]),l=(y(e)&&t.installed&&s.installed,s.installed?null:await w()),r=!1;if(s.installed||l)try{await (0,n.access)(a.default.join(i.default.homedir(),".claude")),r=!0}catch{}return{tmux:{...e,compatible:y(e)},git:t,claude:{...s,binaryPath:l,loggedIn:r}}},S=null,P=null,T=null,v=null,_=async()=>T&&Date.now()-T.checkedAt<1e3?T.result:v||(v=g().then(e=>(T={result:e,checkedAt:Date.now()},v=null,e)).catch(e=>{throw v=null,e})),A=async()=>{o=await d();let[e,t,n]=await Promise.all([h("tmux",["-V"],p),h("git",["--version"],p),h("claude",["--version"],p)]);return{tmux:{...e,compatible:y(e)},git:t,claude:n}},I=async()=>S&&Date.now()-S.checkedAt<3e4?S.result:P||(P=A().then(e=>(S={result:e,checkedAt:Date.now()},P=null,e)).catch(e=>{throw P=null,e}));e.s(["getCachedPreflightStatus",0,_,"getCachedRuntimePreflight",0,I,"getShellPath",0,f,"invalidateRuntimeCache",0,()=>{S=null,P=null}])},522734,(e,t,n)=>{t.exports=e.x("fs",()=>require("fs"))},319668,(e,t,n)=>{t.exports=e.x("readline",()=>require("readline"))},143511,e=>{"use strict";var t=e.i(924868);e.i(522734);var n=e.i(814747),i=e.i(446786),a=e.i(233405),s=e.i(224361),l=e.i(713915),r=e.i(544538);let u=(0,s.promisify)(a.execFile),o=n.default.join(i.default.homedir(),".claude"),c=n.default.join(o,"sessions"),d=n.default.join(o,"projects"),f=[n.default.join(i.default.homedir(),".local","bin","claude")],h=e=>{let t=e.replace(/[^a-zA-Z0-9]/g,"-");if(t.length<=200)return t;let n=p(e);return`${t.slice(0,200)}-${n}`},p=e=>{let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return Math.abs(t).toString(36)},m=async e=>{try{let{stdout:t}=await u("pgrep",["-P",String(e)]);return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},w=async e=>{if(r.isLinux)try{return await t.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await u("lsof",["-a","-p",String(e),"-d","cwd","-Fn"]),n=t.split("\n").find(e=>e.startsWith("n/"));return n?n.slice(1):null}catch{return null}},y=async e=>{for(let t of e)try{let{stdout:e}=await u("ps",["-p",String(t),"-o","args="]),n=e.trim().match(/claude\s+--resume\s+([0-9a-f-]{36})/);if(n){let e=await w(t);return{pid:t,sessionId:n[1],cwd:e}}}catch{continue}return null},g=async e=>{try{let n=await t.default.readFile(e,"utf-8"),i=JSON.parse(n);if(!i.pid||!i.sessionId)return null;return i}catch{return null}},S=async(e,i)=>{let a=n.default.join(e,`${i}.jsonl`);try{return await t.default.access(a),a}catch{return null}},P=async()=>{try{return await u("claude",["--version"],{timeout:5e3,env:{...process.env,PATH:await (0,l.getShellPath)()}}),!0}catch{for(let e of f)try{return await t.default.access(e),!0}catch{}return!1}},T=async(e,t)=>{for(let n of t??await m(e))try{let{stdout:e}=await u("ps",["-p",String(n),"-o","args="]);if(e.trim().includes("claude"))return!0}catch{continue}return!1},v=async(e,i)=>{try{await t.default.access(o)}catch{return{status:await P()?"not-initialized":"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null}}let a=i??await m(e);if(0===a.length)return{status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null};let s=(await Promise.all(a.map(m))).flat(),l=[...a,...s],r=new Set(l);try{for(let e of(await t.default.readdir(c)).filter(e=>e.endsWith(".json"))){let i=await g(n.default.join(c,e));if(!i||!r.has(i.pid))continue;let a="";try{let{stdout:e}=await u("ps",["-p",String(i.pid),"-o","args="]);a=e.trim()}catch{try{await t.default.unlink(n.default.join(c,e))}catch{}continue}if(!a.includes("claude")){try{await t.default.unlink(n.default.join(c,e))}catch{}continue}let s=h(i.cwd),l=n.default.join(d,s),o=await S(l,i.sessionId),f=i.sessionId;if(!o){let e=a.match(/--resume\s+([0-9a-f-]{36})/);if(e){let t=e[1],n=await S(l,t);n&&(o=n,f=t)}}return{status:"running",sessionId:f,jsonlPath:o,pid:i.pid,startedAt:i.startedAt,cwd:i.cwd}}}catch{}let f=await y(l);if(f){let e=f.cwd;if(e){let t=h(e),i=n.default.join(d,t),a=await S(i,f.sessionId);return{status:"running",sessionId:f.sessionId,jsonlPath:a,pid:f.pid,startedAt:null,cwd:e}}}return{status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null}};e.s(["detectActiveSession",0,v,"getChildPids",0,m,"isClaudeRunning",0,T,"toClaudeProjectName",0,h])},746514,e=>{"use strict";let t;var n=e.i(924868),i=e.i(522734),a=e.i(814747),s=e.i(319668),l=e.i(143511),r=e.i(459015);let u=(0,e.i(25146).createLogger)("session-list"),o=a.default.join(process.env.HOME||process.env.USERPROFILE||"/",".claude","projects"),c=(t=new Map,{get:e=>{let n=t.get(e);if(n)return Date.now()-n.cachedAt>3e4?void t.delete(e):n.meta},set:(e,n,i)=>{t.set(e,{meta:n,mtime:i,cachedAt:Date.now()})},isStale:(e,n)=>{let i=t.get(e);return!i||(Date.now()-i.cachedAt>3e4?(t.delete(e),!0):i.mtime!==n)},clear:()=>{t.clear()}}),d=e=>{let t=(0,l.toClaudeProjectName)(e);return a.default.join(o,t)},f=async(e,t)=>{let n=Array(e.length),i=0,a=async()=>{for(;i<e.length;){let t=i++;try{let i=await e[t]();n[t]={status:"fulfilled",value:i}}catch(e){n[t]={status:"rejected",reason:e}}}},s=Array.from({length:Math.min(t,e.length)},()=>a());return await Promise.all(s),n},h=e=>e.length<=200?e:e.slice(0,200)+"…",p=async e=>{let t=(0,i.createReadStream)(e,{encoding:"utf-8"}),n=s.default.createInterface({input:t,crlfDelay:1/0}),a=null,l="",r=0,u=!0;try{for await(let e of n){if(u&&(u=!1,e.trim()))try{let t=JSON.parse(e);t.timestamp&&(a=new Date(t.timestamp).toISOString())}catch{}if((e.includes('"type":"human"')||e.includes('"type": "human"')||e.includes('"type":"user"')||e.includes('"type": "user"'))&&!e.includes('"isMeta":true')&&!e.includes('"isMeta": true')&&(r++,!l))try{let t=JSON.parse(e);if(("human"===t.type||"user"===t.type)&&!t.isMeta){let e=t.message;if(e)if("string"==typeof e)l=h(e);else if(Array.isArray(e.content)){let t=e.content.find(e=>"text"===e.type&&e.text);t&&(l=h(t.text))}else"string"==typeof e.content&&(l=h(e.content))}}catch{}}}finally{n.close(),t.destroy()}return{startedAt:a,firstMessage:l,turnCount:r}},m=async e=>{try{let t=await n.default.stat(e),i=a.default.basename(e,".jsonl"),s=c.get(i);if(s&&!c.isStale(i,t.mtimeMs))return s;let{startedAt:l,firstMessage:r,turnCount:u}=await p(e),o=l||t.birthtime.toISOString(),d=t.mtime.toISOString(),f={sessionId:i,startedAt:o,lastActivityAt:d,firstMessage:r,turnCount:u};return c.set(i,f,t.mtimeMs),f}catch(t){return u.warn({err:t},`failed to parse session meta: ${e}`),null}},w=async(e,t)=>{let i,s=t||await (0,r.getSessionCwd)(e);if(!s)throw Error("cwd-lookup-failed");let l=d(s);try{i=(await n.default.readdir(l)).filter(e=>e.endsWith(".jsonl"))}catch{return[]}let u=i.map(e=>()=>m(a.default.join(l,e))),o=await f(u,10),c=[];for(let e of o)"fulfilled"===e.status&&e.value&&c.push(e.value);return c.sort((e,t)=>new Date(t.lastActivityAt).getTime()-new Date(e.lastActivityAt).getTime()),c};e.s(["cwdToProjectPath",0,d,"listSessions",0,w],746514)},175609,(e,t,n)=>{t.exports=e.x("node-pty-592e8dc6192cfd06",()=>require("node-pty-592e8dc6192cfd06"))},971780,e=>{"use strict";var t=e.i(459015);e.i(478319),e.i(220951),e.i(175609),e.i(597789),e.i(965898),new TextEncoder,new TextDecoder,(0,e.i(25146).createLogger)("terminal"),new TextDecoder;let n=globalThis,i=n.__purplemux_terminal_connections??=new Map;n.__purplemux_terminal_output_ts??=new Map;let a=(e,t,n)=>{for(let a of i.values())if(a.sessionName===e&&!a.cleaned)return void a.pty.resize(t,n)},s=e=>new Promise(t=>setTimeout(t,e)),l=async(e,n,l)=>{let r=(e=>{for(let t of i.values())if(t.sessionName===e&&!t.cleaned)return{cols:t.currentCols,rows:t.currentRows};return null})(e);if(r&&r.cols>50)return(0,t.capturePaneContentWithHistory)(e,50);let u=(e=>{for(let t of i.values())if(t.sessionName===e&&!t.cleaned){if(t.capturePaused)return null;return t.capturePaused=!0,{cols:t.currentCols,rows:t.currentRows}}return null})(e);if(!u)return(0,t.capturePaneContent)(e);try{a(e,n,l),await s(300);let i=await (0,t.capturePaneContent)(e);return a(e,u.cols,u.rows),await s(300),i}finally{(e=>{for(let t of i.values())if(t.sessionName===e&&!t.cleaned){if(!t.capturePaused)return;t.capturePaused=!1;return}})(e)}};e.s(["capturePaneAtWidth",0,l],971780)},443571,e=>{"use strict";let t=["Yes","Yes,","No","Accept","Decline","Open System Settings","Try again","Use this","Continue without","Resume from summary","Resume full session","Continue this conversation","Send message as","Don't ask me again"],n=/^\s*(?:[❯›>]\s+)?(.+)$/,i=/^\s*[❯›>]\s+/,a=/^\d+\.\s+/,s=/^\s*([❯›>])?\s*(\d+)\.?\s*(\S.*)$/,l=e=>e.replace(a,""),r=(e,t)=>e.some(e=>l(e).startsWith(t)),u=e=>e.match(/^\s*/)?.[0].length??0,o=/^(Yes,\s*and\s+don[\u2019']?t\s+ask)\s*:\s*(.+)$/,c=e=>!(e.length<2)&&(r(e,"Yes")&&r(e,"No")||r(e,"Accept")&&r(e,"Decline")||r(e,"Open System Settings")||r(e,"Use this")&&r(e,"Continue without")||r(e,"Resume from summary")&&r(e,"Resume full session")||r(e,"Continue this conversation")&&r(e,"Send message as"));e.s(["parsePermissionOptions",0,e=>{let a=e.split("\n"),r=(e=>{let t=[],n=[],i=0,a=1,l=0,r=()=>{n.length>=2&&t.push({rawOptions:n.slice(),focusedIndex:i}),n=[],i=0,a=1,l=0};for(let t of e){if(!t.trim())continue;let e=t.match(s);if(e){let s=e[1],o=Number(e[2]),c=e[3].trim();if(c.length>0){if(1===o){r(),n.push(c),s&&(i=0),l=u(t),a=2;continue}if(o===a){s&&(i=n.length),n.push(c),l=u(t),a+=1;continue}}}if(n.length>0){if(u(t)>l){n[n.length-1]+=t.trimStart();continue}if(/^\s+\S/.test(t))continue;r()}}r();let c=t[t.length-1];return c?{options:c.rawOptions.map((e,t)=>{let n;return`${t+1}. ${(n=e.match(o))?`${n[1]} again for: ${n[2].trim()}`:/^Yes(?![,\s]|$)/.test(e)?"Yes":/^No(?![,\s]|$)/.test(e)?"No":e}`}),focusedIndex:c.focusedIndex}:{options:[],focusedIndex:0}})(a);if(r.options.length>=2&&c(r.options))return r;let d=(e=>{let a=[],s=0,r=!1;for(let u of e){if(!u.trim()){if(r)break;continue}let e=i.test(u),o=/^\s+\S/.test(u);if(!e&&!o){if(r)break;continue}let c=u.match(n);if(!c)continue;let d=c[1].trim(),f=l(d);t.some(e=>f.startsWith(e))&&(e&&(s=a.length),a.push(d),r=!0)}return{options:a,focusedIndex:s}})(a);return c(d.options)?d:{options:[],focusedIndex:0}}])},796902,e=>{"use strict";var t=e.i(814747),n=e.i(446786);let i=t.default.join(n.default.homedir(),".purplemux"),a=t.default.join(i,"statusline.sh"),s=t.default.join(i,"rate-limits.json"),l=`#!/bin/sh
|
|
2
|
-
PORT_FILE="$HOME/.purplemux/port"
|
|
3
|
-
TOKEN_FILE="$HOME/.purplemux/cli-token"
|
|
4
|
-
[ -f "$PORT_FILE" ] || exit 0
|
|
5
|
-
[ -f "$TOKEN_FILE" ] || exit 0
|
|
6
|
-
PORT=$(cat "$PORT_FILE")
|
|
7
|
-
TOKEN=$(cat "$TOKEN_FILE")
|
|
8
|
-
curl -sf --max-time 2 -X POST \\
|
|
9
|
-
-H 'Content-Type: application/json' \\
|
|
10
|
-
-H "x-pmux-token: \${TOKEN}" \\
|
|
11
|
-
--data-binary @- \\
|
|
12
|
-
"http://localhost:\${PORT}/api/status/statusline" 2>/dev/null || exit 0
|
|
13
|
-
`;e.s(["RATE_LIMITS_FILE",0,s,"STATUSLINE_SCRIPT_CONTENT",0,l,"STATUSLINE_SCRIPT_PATH",0,a])},785128,e=>{"use strict";let t=new Set(["zsh","bash","fish","sh","-zsh","-bash","-fish","-sh"]),n=e=>{if("~"===e||"/"===e)return e;let t=e.replace(/\/$/,"").split("/");return t[t.length-1]||e};e.s(["formatTabTitle",0,e=>{let i=e.trim();if(!i)return"";let a=(e=>{let t=e.trim();if(!t)return null;let n=t.indexOf("|");return n>0?t.slice(0,n):null})(e);if(null!==a){let e=i.slice(i.indexOf("|")+1);return t.has(a)?n(e):a}let s=i.match(/@[^:]+:\s*(.*)/);if(s)return n(s[1].trim());if(i.startsWith("/")||i.startsWith("~"))return n(i);let l=i.split(/\s+/)[0];return t.has(l)?"":l||""}])}];
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0mm5n3z._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let s=r.default.join(a.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",n=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[i,...Object.values(n)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(s,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=n[e]??i,t}])},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},597789,965898,e=>{"use strict";let t=process.env.__PMUX_PRISTINE_ENV,r=Object.freeze(t?JSON.parse(t):{...process.env});t||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(r)),e.s(["PRISTINE_ENV",0,r],965898);let a=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),s=["LC_"],i=e=>a.has(e)||s.some(t=>e.startsWith(t)),n={TERM:"xterm-256color",COLORTERM:"truecolor"},l=()=>{let e={};for(let[t,a]of Object.entries(r))void 0!==a&&i(t)&&(e[t]=a);return{...e,...n}},o=e=>`'${e.replace(/'/g,"'\\''")}'`,u=()=>r.SHELL||"/bin/bash";e.s(["buildShellEnv",0,()=>l(),"buildShellLaunchCommand",0,()=>{let e=Object.entries(l()).map(([e,t])=>`${e}=${o(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${o(u())} -l`},"defaultShell",0,u],597789)},44014,e=>{"use strict";let t,r;var a=e.i(666680);e.s(["nanoid",0,function(e=21){var s;s=e|=0,!t||t.length<s?(t=Buffer.allocUnsafe(128*s),a.webcrypto.getRandomValues(t),r=0):r+s>t.length&&(a.webcrypto.getRandomValues(t),r=0),r+=s;let i="";for(let a=r-e;a<r;a++)i+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[a]];return i}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),s=e.i(814747),i=e.i(44014),n=e.i(965898),l=e.i(597789),o=e.i(25146);process.platform;let u="linux"===process.platform;e.s(["isLinux",0,u],544538);let c=(0,o.createLogger)("terminal"),p=(0,a.promisify)(t.execFile),d="purple",m=s.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),y=async()=>{try{let{stdout:e}=await p("tmux",["-L",d,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},h=async(e,t,r,a)=>{let s=(0,l.buildShellLaunchCommand)();await p("tmux",["-u","-L",d,"-f",m,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),s],{timeout:5e3,cwd:a||n.PRISTINE_ENV.HOME||"/"}),await E(),c.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},f=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await g(e))return;c.debug(`killSession start: ${e}`);let t=await v(e);if(t)try{c.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await g(e))return void c.debug(`killSession done (SIGTERM): ${e}`);await f(200)}if(c.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{c.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void c.debug(`killSession done (SIGKILL): ${e}`);await f(200)}c.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{try{return await p("tmux",["-L",d,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},_=async()=>{},x=async()=>{await _();let e=await y();e.length>0&&e.forEach(e=>{c.debug(`existing tmux session found: ${e}`)})},S=async e=>{if(u)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await p("lsof",["-a","-p",String(e),"-d","cwd","-Fn"],{timeout:5e3}),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},L=async e=>{let t=await v(e);if(t){let e=await S(t);if(e)return e}try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},v=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},E=async()=>{try{await p("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},b=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},P=async()=>{try{let{stdout:e}=await p("tmux",["-L",d,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let r of e.trim().split("\n")){if(!r)continue;let[e,a,s,i,n]=r.split(" ");if(e&&a){let r=parseInt(i,10),l=parseInt(n,10);t.set(e,{command:a,path:s||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},I=new Set(["bash","zsh","fish","sh","dash"]),N=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},T=async e=>{await p("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},M=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},R=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},$=async(e,t)=>{await T(e),await p("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await p("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await p("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},k=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,s,i,n,l]=t.trim().split(" ");return{cwd:r||null,command:a||null,pid:s&&parseInt(s,10)||null,width:i&&parseInt(i,10)||null,height:n&&parseInt(n,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},q=new Set(["node","python","python3","ruby","perl","deno","bun"]),j=async()=>{try{await p("tmux",["-L",d,"kill-server"],{timeout:5e3}),c.debug("tmux server killed")}catch{}},A=async e=>{try{let{stdout:t}=await p("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},O=async(e,t)=>{try{let{stdout:r}=await p("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},C=async e=>{if(u){let t=[];return await Promise.all(e.map(async e=>{try{for(let a of(await r.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(a,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await p("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},H=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await C(r);if(0===e.length)break;t.push(...e),r=e}return t},D=async e=>{try{let t=new Set(e),{stdout:r}=await p("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let e of r.split("\n")){let r=e.match(/pid=(\d+)/g);if(!r||!r.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let s=e.match(/:(\d+)\s/);s&&a.add(parseInt(s[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},U=async e=>{let t=await H(e);if(0===t.length)return[];if(u)return D(t);try{let{stdout:e}=await p("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&r.add(parseInt(e[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},G=async e=>{let t=await v(e);if(!t)return null;try{let{stdout:e}=await p("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await p("ps",["-o","args=","-p",r],{timeout:5e3}),i=a.trim();if(!i)return null;let n=i.split(/\s+/);if(0===n.length)return i;if(n[0]=s.default.basename(n[0]),q.has(n[0])&&n.length>1){let e=s.default.basename(n[1]).replace(/\.(c|m)?js$/,"");n.splice(0,2,e)}return n.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,I,"applyConfig",0,E,"capturePaneContent",0,A,"capturePaneContentWithHistory",0,O,"createSession",0,h,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,T,"getAllPanesInfo",0,P,"getLastCommand",0,G,"getListeningPorts",0,U,"getPaneCurrentCommand",0,b,"getPaneDetailInfo",0,k,"getPaneTitle",0,N,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,g,"killServer",0,j,"killSession",0,w,"listSessions",0,y,"scanSessions",0,x,"sendBracketedPaste",0,$,"sendKeys",0,M,"sendRawKeys",0,R,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},406461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},524836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},921517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},666126,e=>{"use strict";e.i(478319);var t=e.i(220951);(0,e.i(25146).createLogger)("sync");let r=globalThis;r.__ptSyncClients||(r.__ptSyncClients=new Set);let a=r.__ptSyncClients;e.s(["broadcastSync",0,e=>{let r=JSON.stringify(e);for(let e of a)e.readyState===t.WebSocket.OPEN&&e.bufferedAmount<1048576&&e.send(r)}])},902067,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),s=e.i(262950),i=e.i(924868),n=e.i(814747),l=e.i(44014),o=e.i(825265),u=e.i(25146);let c=(0,u.createLogger)("message-history"),p=globalThis;p.__ptMessageHistoryLocks||(p.__ptMessageHistoryLocks=new Map);let d=async(e,t)=>{let r,a=new Promise(e=>{r=e}),s=p.__ptMessageHistoryLocks.get(e)??Promise.resolve();p.__ptMessageHistoryLocks.set(e,a),await s;try{return await t()}finally{r(),p.__ptMessageHistoryLocks.get(e)===a&&p.__ptMessageHistoryLocks.delete(e)}},m=e=>n.default.join((0,o.resolveLayoutDir)(e),"message-history.json"),y=async e=>{try{let t=await i.default.readFile(e,"utf-8"),r=JSON.parse(t);return Array.isArray(r.entries)?r.entries:[]}catch(e){return"ENOENT"!==e.code&&c.warn({err:e},"failed to read"),[]}},h=async(e,t)=>{let r=n.default.dirname(e);await i.default.mkdir(r,{recursive:!0});let a=e+".tmp";try{await i.default.writeFile(a,JSON.stringify(t,null,2),{mode:384}),await i.default.rename(a,e)}catch(e){throw await i.default.unlink(a).catch(()=>{}),e}},f=async e=>y(m(e)),w=async(e,t)=>d(e,async()=>{let r=m(e),a=await y(r),s=a.findIndex(e=>e.message===t);-1!==s&&a.splice(s,1);let i={id:(0,l.nanoid)(),message:t,sentAt:new Date().toISOString()};return a.unshift(i),a.length>500&&(a.length=500),await h(r,{entries:a}),i}),g=async(e,t)=>d(e,async()=>{let r=m(e),a=(await y(r)).filter(e=>e.id!==t);return await h(r,{entries:a}),!0}),_=(0,u.createLogger)("message-history"),x=async(e,t)=>{if("GET"===e.method){let r=e.query.wsId;if(!r)return t.status(400).json({error:"wsId is required"});let a=await f(r);return t.status(200).json({entries:a})}if("POST"===e.method){let{wsId:r,message:a}=e.body;if(!r)return t.status(400).json({error:"wsId is required"});if(!a?.trim())return t.status(400).json({error:"message is required"});try{let e=await w(r,a);return t.status(201).json({entry:e})}catch(e){return _.error({err:e},"write failed"),t.status(500).json({error:"Failed to save"})}}if("DELETE"===e.method){let{wsId:r,id:a}=e.body;if(!r)return t.status(400).json({error:"wsId is required"});if(!a)return t.status(400).json({error:"id is required"});try{let e=await g(r,a);return t.status(200).json({success:e})}catch(e){return _.error({err:e},"delete failed"),t.status(500).json({error:"Failed to save"})}}return t.setHeader("Allow","GET, POST, DELETE"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,x],217026);var S=e.i(217026),L=e.i(7031),v=e.i(181927),E=e.i(846432);let b=(0,s.hoist)(S,"default"),P=(0,s.hoist)(S,"config"),I=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/message-history",pathname:"/api/message-history",bundlePath:"",filename:""},userland:S,distDir:".next",relativeProjectDir:""});async function N(e,r,a){a.requestMeta&&(0,E.setRequestMeta)(e,a.requestMeta),I.isDev&&(0,E.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/message-history";s=s.replace(/\/index$/,"")||"/";let i=await I.prepare(e,r,{srcPage:s});if(!i){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:n,params:l,prerenderManifest:o,routerServerContext:u}=i;try{let t,a=e.method||"GET",i=(0,L.getTracer)(),c=i.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),d=I.instrumentationOnRequestError.bind(I),m=async c=>I.render(e,r,{query:{...n,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:I.isDev,page:"/api/message-history",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>d(e,...t)}).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==v.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=e.get("next.route");if(n){let e=`${a} ${n}`;c.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),c.updateName(e),t&&t!==c&&(t.setAttribute("http.route",n),t.updateName(e))}else c.updateName(`${a} ${s}`)});p&&c?await m(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(v.BaseServerSpan.handleRequest,{spanName:`${a} ${s}`,kind:L.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},m),void 0,!p))}catch(e){if(I.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,b,"handler",0,N],902067)},981532,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_workspace-store_ts_0vqt073._.js"].map(t=>e.l(t))).then(()=>t(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0psi612._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(t,e,r)=>{e.exports=t.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(t,e,r)=>{e.exports=t.x("os",()=>require("os"))},814747,(t,e,r)=>{e.exports=t.x("path",()=>require("path"))},924868,(t,e,r)=>{e.exports=t.x("fs/promises",()=>require("fs/promises"))},130146,(t,e,r)=>{e.exports=t.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,t=>{"use strict";var e=t.i(130146),r=t.i(814747),a=t.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(t=>{if(!t)return{};let e={};for(let r of t.split(",")){let[t,a]=r.split("=").map(t=>t.trim());t&&a&&(e[t]=a)}return e})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let t=[n,...Object.values(s)].reduce((t,e)=>l.indexOf(e)<l.indexOf(t)?e:t,"fatal");o.__ptRootLogger=(0,e.default)({level:t,transport:{targets:[{target:"pino-roll",level:t,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:t,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;t.s(["createLogger",0,t=>{let e=u.child({module:t});return e.level=s[t]??n,e}])},224361,(t,e,r)=>{e.exports=t.x("util",()=>require("util"))},233405,(t,e,r)=>{e.exports=t.x("child_process",()=>require("child_process"))},666680,(t,e,r)=>{e.exports=t.x("node:crypto",()=>require("node:crypto"))},597789,965898,t=>{"use strict";let e=process.env.__PMUX_PRISTINE_ENV,r=Object.freeze(e?JSON.parse(e):{...process.env});e||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(r)),t.s(["PRISTINE_ENV",0,r],965898);let a=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),i=["LC_"],n=t=>a.has(t)||i.some(e=>t.startsWith(e)),s={TERM:"xterm-256color",COLORTERM:"truecolor"},l=()=>{let t={};for(let[e,a]of Object.entries(r))void 0!==a&&n(e)&&(t[e]=a);return{...t,...s}},o=t=>`'${t.replace(/'/g,"'\\''")}'`,u=()=>r.SHELL||"/bin/bash";t.s(["buildShellEnv",0,()=>l(),"buildShellLaunchCommand",0,()=>{let t=Object.entries(l()).map(([t,e])=>`${t}=${o(e)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${t} ${o(u())} -l`},"defaultShell",0,u],597789)},44014,t=>{"use strict";let e,r;var a=t.i(666680);t.s(["nanoid",0,function(t=21){var i;i=t|=0,!e||e.length<i?(e=Buffer.allocUnsafe(128*i),a.webcrypto.getRandomValues(e),r=0):r+i>e.length&&(a.webcrypto.getRandomValues(e),r=0),r+=i;let n="";for(let a=r-t;a<r;a++)n+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&e[a]];return n}],44014)},459015,544538,t=>{"use strict";var e=t.i(233405),r=t.i(924868),a=t.i(224361),i=t.i(814747),n=t.i(44014),s=t.i(965898),l=t.i(597789),o=t.i(25146);process.platform;let u="linux"===process.platform;t.s(["isLinux",0,u],544538);let c=(0,o.createLogger)("terminal"),p=(0,a.promisify)(e.execFile),d="purple",m=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),h=async()=>{try{let{stdout:t}=await p("tmux",["-L",d,"ls","-F","#{session_name}"],{timeout:5e3});return t.trim().split("\n").map(t=>t.trim()).filter(t=>t.startsWith("pt-"))}catch{return[]}},f=async(t,e,r,a)=>{let i=(0,l.buildShellLaunchCommand)();await p("tmux",["-u","-L",d,"-f",m,"new-session","-d","-s",t,"-x",String(e),"-y",String(r),i],{timeout:5e3,cwd:a||s.PRISTINE_ENV.HOME||"/"}),await E(),c.debug(`tmux session created: ${t} (cols: ${e}, rows: ${r})`)},g=t=>new Promise(e=>setTimeout(e,t)),w=async t=>{if(!await y(t))return;c.debug(`killSession start: ${t}`);let e=await v(t);if(e)try{c.debug(`SIGTERM → process group ${e}: ${t}`),process.kill(-e,"SIGTERM")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",t],{timeout:5e3})}catch{}for(let e=0;e<5;e++){if(!await y(t))return void c.debug(`killSession done (SIGTERM): ${t}`);await g(200)}if(c.warn(`session survived SIGTERM, escalating to SIGKILL: ${t}`),e)try{c.debug(`SIGKILL → process group ${e}: ${t}`),process.kill(-e,"SIGKILL")}catch{}try{await p("tmux",["-L",d,"kill-session","-t",t],{timeout:5e3})}catch{}for(let e=0;e<3;e++){if(!await y(t))return void c.debug(`killSession done (SIGKILL): ${t}`);await g(200)}c.warn(`tmux session still alive after kill: ${t}`)},y=async t=>{try{return await p("tmux",["-L",d,"has-session","-t",t],{timeout:5e3}),!0}catch{return!1}},x=async()=>{},S=async()=>{await x();let t=await h();t.length>0&&t.forEach(t=>{c.debug(`existing tmux session found: ${t}`)})},_=async t=>{if(u)try{return await r.default.readlink(`/proc/${t}/cwd`)}catch{return null}try{let{stdout:e}=await p("lsof",["-a","-p",String(t),"-d","cwd","-Fn"],{timeout:5e3}),r=e.split("\n").find(t=>t.startsWith("n/"));return r?r.slice(1):null}catch{return null}},L=async t=>{let e=await v(t);if(e){let t=await _(e);if(t)return t}try{let{stdout:e}=await p("tmux",["-L",d,"display-message","-p","-t",t,"#{pane_current_path}"],{timeout:5e3});return e.trim()||null}catch{return null}},v=async t=>{try{let{stdout:e}=await p("tmux",["-L",d,"display-message","-p","-t",t,"#{pane_pid}"],{timeout:5e3}),r=parseInt(e.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},E=async()=>{try{await p("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},I=async t=>{try{let{stdout:e}=await p("tmux",["-L",d,"list-panes","-t",t,"-F","#{pane_current_command}"],{timeout:5e3});return e.trim()||null}catch{return null}},P=async()=>{try{let{stdout:t}=await p("tmux",["-L",d,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),e=new Map;for(let r of t.trim().split("\n")){if(!r)continue;let[t,a,i,n,s]=r.split(" ");if(t&&a){let r=parseInt(n,10),l=parseInt(s,10);e.set(t,{command:a,path:i||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return e}catch{return new Map}},b=new Set(["bash","zsh","fish","sh","dash"]),N=async t=>{try{let{stdout:e}=await p("tmux",["-L",d,"display-message","-p","-t",t,"#{pane_title}"],{timeout:5e3});return e.trim()||null}catch{return null}},$=async t=>{await p("tmux",["-L",d,"copy-mode","-q","-t",t],{timeout:5e3}).catch(()=>{})},R=async(t,e)=>{await $(t),await p("tmux",["-L",d,"send-keys","-t",t,e,"Enter"],{timeout:5e3})},M=async(t,e)=>{await $(t),await p("tmux",["-L",d,"send-keys","-t",t,e],{timeout:5e3})},T=async(t,e)=>{await $(t),await p("tmux",["-L",d,"send-keys","-t",t,"-l",`\x1b[200~${e}\x1b[201~`],{timeout:5e3}),await p("tmux",["-L",d,"send-keys","-t",t,"Enter"],{timeout:5e3}),await new Promise(t=>setTimeout(t,600)),await p("tmux",["-L",d,"send-keys","-t",t,"Enter"],{timeout:5e3})},C=async t=>{try{let{stdout:e}=await p("tmux",["-L",d,"display-message","-p","-t",t,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,i,n,s,l]=e.trim().split(" ");return{cwd:r||null,command:a||null,pid:i&&parseInt(i,10)||null,width:n&&parseInt(n,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},A=new Set(["node","python","python3","ruby","perl","deno","bun"]),k=async()=>{try{await p("tmux",["-L",d,"kill-server"],{timeout:5e3}),c.debug("tmux server killed")}catch{}},q=async t=>{try{let{stdout:e}=await p("tmux",["-L",d,"capture-pane","-p","-t",t],{timeout:5e3});return e}catch{return null}},O=async(t,e)=>{try{let{stdout:r}=await p("tmux",["-L",d,"capture-pane","-p","-S",`-${e}`,"-t",t],{timeout:5e3});return r}catch{return null}},j=async t=>{if(u){let e=[];return await Promise.all(t.map(async t=>{try{for(let a of(await r.default.readFile(`/proc/${t}/task/${t}/children`,"utf-8")).trim().split(/\s+/)){let t=parseInt(a,10);Number.isNaN(t)||e.push(t)}}catch{}})),e}try{let{stdout:e}=await p("pgrep",["-P",t.join(",")],{timeout:5e3});return e.trim().split("\n").map(t=>parseInt(t,10)).filter(t=>!Number.isNaN(t))}catch{return[]}},D=async t=>{let e=[],r=[t];for(;r.length>0;){let t=await j(r);if(0===t.length)break;e.push(...t),r=t}return e},H=async t=>{try{let e=new Set(t),{stdout:r}=await p("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let t of r.split("\n")){let r=t.match(/pid=(\d+)/g);if(!r||!r.some(t=>e.has(parseInt(t.replace("pid=",""),10))))continue;let i=t.match(/:(\d+)\s/);i&&a.add(parseInt(i[1],10))}return[...a].sort((t,e)=>t-e)}catch{return[]}},U=async t=>{let e=await D(t);if(0===e.length)return[];if(u)return H(e);try{let{stdout:t}=await p("lsof",["-a","-p",e.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let e of t.split("\n"))if(e.startsWith("n")){let t=e.match(/:(\d+)$/);t&&r.add(parseInt(t[1],10))}return[...r].sort((t,e)=>t-e)}catch{return[]}},G=async t=>{let e=await v(t);if(!e)return null;try{let{stdout:t}=await p("pgrep",["-n","-P",String(e)],{timeout:5e3}),r=t.trim();if(!r)return null;let{stdout:a}=await p("ps",["-o","args=","-p",r],{timeout:5e3}),n=a.trim();if(!n)return null;let s=n.split(/\s+/);if(0===s.length)return n;if(s[0]=i.default.basename(s[0]),A.has(s[0])&&s.length>1){let t=i.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,t)}return s.join(" ")}catch{return null}};t.s(["SAFE_SHELLS",0,b,"applyConfig",0,E,"capturePaneContent",0,q,"capturePaneContentWithHistory",0,O,"createSession",0,f,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,$,"getAllPanesInfo",0,P,"getLastCommand",0,G,"getListeningPorts",0,U,"getPaneCurrentCommand",0,I,"getPaneDetailInfo",0,C,"getPaneTitle",0,N,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,y,"killServer",0,k,"killSession",0,w,"listSessions",0,h,"scanSessions",0,S,"sendBracketedPaste",0,T,"sendKeys",0,R,"sendRawKeys",0,M,"workspaceSessionName",0,(t,e,r)=>`pt-${t}-${e}-${r}`],459015)},422392,t=>{"use strict";let e=new Map,r=6e4;t.s(["getCached",0,t=>{let r=e.get(t);return r?Date.now()>r.expiresAt?(e.delete(t),null):r.data:null},"setCached",0,(t,a,i=r)=>{e.set(t,{data:a,expiresAt:Date.now()+i})}])},231650,t=>{"use strict";var e=t.i(926747),r=t.i(190406),a=t.i(244898),i=t.i(262950),n=t.i(233405),s=t.i(224361),l=t.i(459015),o=t.i(422392);let u=(0,s.promisify)(n.execFile),c=async t=>{try{let{stdout:e}=await u("git",["-C",t,"rev-list","--left-right","--count","HEAD...@{upstream}"],{timeout:5e3}),r=e.trim().split(/\s+/);return{ahead:parseInt(r[0],10)||0,behind:parseInt(r[1],10)||0}}catch{return{ahead:0,behind:0}}},p=async t=>{try{let{stdout:e}=await u("git",["-C",t,"stash","list"],{timeout:5e3});return e.trim()?e.trim().split("\n").length:0}catch{return 0}},d=async t=>{try{let{stdout:e}=await u("git",["-C",t,"diff","--numstat"],{timeout:5e3}),r=0,a=0;for(let t of e.split("\n")){if(!t)continue;let[e,i]=t.split(" ");"-"!==e&&"-"!==i&&(r+=parseInt(e,10)||0,a+=parseInt(i,10)||0)}return{insertions:r,deletions:a}}catch{return{insertions:0,deletions:0}}},m=async t=>{let e=await (0,l.getSessionCwd)(t);if(!e)throw Error("tmux-session-not-found");let r=`git-status:${e}`,a=(0,o.getCached)(r);if(null!==a)return a;try{let{stdout:t}=await u("git",["-C",e,"status","--porcelain"],{timeout:5e3}),a=(t=>{let e=0,r=0,a=0;for(let i of t.split("\n")){if(!i)continue;let t=i[0],n=i[1];"?"===t?a++:(t&&" "!==t&&"?"!==t&&e++,n&&" "!==n&&"?"!==n&&r++)}return{staged:e,modified:r,untracked:a}})(t),[i,n,s]=await Promise.all([c(e),p(e),d(e)]),l={...a,...i,stash:n,...s};return(0,o.setCached)(r,l,15e3),l}catch(t){if(128===t.code)return(0,o.setCached)(r,null,15e3),null;throw t}},h=(0,t.i(25146).createLogger)("git"),f=async(t,e)=>{if("GET"!==t.method)return e.setHeader("Allow","GET"),e.status(405).json({error:"Method not allowed"});let r=t.query.tmuxSession;if(!r)return e.status(400).json({error:"missing-param",message:"tmuxSession parameter required"});try{let t=await m(r);return e.status(200).json({status:t})}catch(r){let t=r instanceof Error?r.message:String(r);if("tmux-session-not-found"===t)return e.status(404).json({error:"tmux-session-not-found"});return h.error(`status query failed: ${t}`),e.status(500).json({error:"git-error"})}};t.s(["default",0,f],70287);var g=t.i(70287),w=t.i(7031),y=t.i(181927),x=t.i(846432);let S=(0,i.hoist)(g,"default"),_=(0,i.hoist)(g,"config"),L=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/git/status",pathname:"/api/git/status",bundlePath:"",filename:""},userland:g,distDir:".next",relativeProjectDir:""});async function v(t,r,a){a.requestMeta&&(0,x.setRequestMeta)(t,a.requestMeta),L.isDev&&(0,x.addRequestMeta)(t,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/git/status";i=i.replace(/\/index$/,"")||"/";let n=await L.prepare(t,r,{srcPage:i});if(!n){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:u}=n;try{let e,a=t.method||"GET",n=(0,w.getTracer)(),c=n.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),d=L.instrumentationOnRequestError.bind(L),m=async c=>L.render(t,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:L.isDev,page:"/api/git/status",internalRevalidate:null==u?void 0:u.revalidate,onError:(...e)=>d(t,...e)}).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let t=n.getRootSpanAttributes();if(!t)return;if(t.get("next.span_type")!==y.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${t.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=t.get("next.route");if(s){let t=`${a} ${s}`;c.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),c.updateName(t),e&&e!==c&&(e.setAttribute("http.route",s),e.updateName(t))}else c.updateName(`${a} ${i}`)});p&&c?await m(c):(e=n.getActiveScopeSpan(),await n.withPropagatedContext(t.headers,()=>n.trace(y.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:w.SpanKind.SERVER,attributes:{"http.method":a,"http.target":t.url}},m),void 0,!p))}catch(t){if(L.isDev)throw t;(0,e.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}t.s(["config",0,_,"default",0,S,"handler",0,v],231650)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0qtw~r6._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},44014,e=>{"use strict";let t,r;var a=e.i(666680);e.s(["nanoid",0,function(e=21){var i;i=e|=0,!t||t.length<i?(t=Buffer.allocUnsafe(128*i),a.webcrypto.getRandomValues(t),r=0):r+i>t.length&&(a.webcrypto.getRandomValues(t),r=0),r+=i;let s="";for(let a=r-e;a<r;a++)s+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[a]];return s}],44014)},687005,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(840665),n=e.i(814747),o=e.i(446786);let l=n.default.join(o.default.homedir(),".claude","projects"),u=async(e,t)=>{let r;if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let a=e.query.jsonlPath;if(!a)return t.status(400).json({error:"jsonlPath parameter required"});if(!((r=n.default.resolve(a)).startsWith(l+n.default.sep)&&r.endsWith(".jsonl")))return t.status(403).json({error:"Path not allowed"});let i=parseInt(e.query.beforeByte,10);if(isNaN(i)||i<0)return t.status(400).json({error:"beforeByte parameter required"});let o=parseInt(e.query.limit,10)||64,u=await (0,s.readEntriesBefore)(a,i,o);return t.status(200).json({entries:u.entries,startByteOffset:u.startByteOffset,hasMore:u.hasMore})};e.s(["default",0,u],191611);var d=e.i(191611),p=e.i(7031),f=e.i(181927),c=e.i(846432);let h=(0,i.hoist)(d,"default"),m=(0,i.hoist)(d,"config"),v=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/timeline/entries",pathname:"/api/timeline/entries",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function x(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),v.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/timeline/entries";i=i.replace(/\/index$/,"")||"/";let s=await v.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:n,params:o,prerenderManifest:l,routerServerContext:u}=s;try{let t,a=e.method||"GET",s=(0,p.getTracer)(),d=s.getActiveScopeSpan(),c=!!(null==u?void 0:u.isWrappedByNextServer),h=v.instrumentationOnRequestError.bind(v),m=async d=>v.render(e,r,{query:{...n,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:v.isDev,page:"/api/timeline/entries",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==f.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=e.get("next.route");if(n){let e=`${a} ${n}`;d.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",n),t.updateName(e))}else d.updateName(`${a} ${i}`)});c&&d?await m(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(f.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:p.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},m),void 0,!c))}catch(e){if(v.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,m,"default",0,h,"handler",0,x],687005)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0ysyw3z._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,a)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),a=e.i(814747),r=e.i(446786);let i=a.default.join(r.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let a of e.split(",")){let[e,r]=a.split("=").map(e=>e.trim());e&&r&&(t[e]=r)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[n,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:a.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??n,t}])},224361,(e,t,a)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,a)=>{t.exports=e.x("child_process",()=>require("child_process"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},597789,965898,e=>{"use strict";let t=process.env.__PMUX_PRISTINE_ENV,a=Object.freeze(t?JSON.parse(t):{...process.env});t||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(a)),e.s(["PRISTINE_ENV",0,a],965898);let r=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),i=["LC_"],n=e=>r.has(e)||i.some(t=>e.startsWith(t)),s={TERM:"xterm-256color",COLORTERM:"truecolor"},l=()=>{let e={};for(let[t,r]of Object.entries(a))void 0!==r&&n(t)&&(e[t]=r);return{...e,...s}},o=e=>`'${e.replace(/'/g,"'\\''")}'`,u=()=>a.SHELL||"/bin/bash";e.s(["buildShellEnv",0,()=>l(),"buildShellLaunchCommand",0,()=>{let e=Object.entries(l()).map(([e,t])=>`${e}=${o(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${o(u())} -l`},"defaultShell",0,u],597789)},44014,e=>{"use strict";let t,a;var r=e.i(666680);e.s(["nanoid",0,function(e=21){var i;i=e|=0,!t||t.length<i?(t=Buffer.allocUnsafe(128*i),r.webcrypto.getRandomValues(t),a=0):a+i>t.length&&(r.webcrypto.getRandomValues(t),a=0),a+=i;let n="";for(let r=a-e;r<a;r++)n+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[r]];return n}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),a=e.i(924868),r=e.i(224361),i=e.i(814747),n=e.i(44014),s=e.i(965898),l=e.i(597789),o=e.i(25146);process.platform;let u="linux"===process.platform;e.s(["isLinux",0,u],544538);let p=(0,o.createLogger)("terminal"),c=(0,r.promisify)(t.execFile),d="purple",m=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),h=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},f=async(e,t,a,r)=>{let i=(0,l.buildShellLaunchCommand)();await c("tmux",["-u","-L",d,"-f",m,"new-session","-d","-s",e,"-x",String(t),"-y",String(a),i],{timeout:5e3,cwd:r||s.PRISTINE_ENV.HOME||"/"}),await E(),p.debug(`tmux session created: ${e} (cols: ${t}, rows: ${a})`)},y=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await g(e))return;p.debug(`killSession start: ${e}`);let t=await v(e);if(t)try{p.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await g(e))return void p.debug(`killSession done (SIGTERM): ${e}`);await y(200)}if(p.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{p.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await c("tmux",["-L",d,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void p.debug(`killSession done (SIGKILL): ${e}`);await y(200)}p.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{try{return await c("tmux",["-L",d,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},x=async()=>{},S=async()=>{await x();let e=await h();e.length>0&&e.forEach(e=>{p.debug(`existing tmux session found: ${e}`)})},_=async e=>{if(u)try{return await a.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await c("lsof",["-a","-p",String(e),"-d","cwd","-Fn"],{timeout:5e3}),a=t.split("\n").find(e=>e.startsWith("n/"));return a?a.slice(1):null}catch{return null}},L=async e=>{let t=await v(e);if(t){let e=await _(t);if(e)return e}try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},v=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),a=parseInt(t.trim(),10);return Number.isNaN(a)?null:a}catch{return null}},E=async()=>{try{await c("tmux",["-L",d,"source-file",m],{timeout:5e3})}catch{}},I=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},P=async()=>{try{let{stdout:e}=await c("tmux",["-L",d,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let a of e.trim().split("\n")){if(!a)continue;let[e,r,i,n,s]=a.split(" ");if(e&&r){let a=parseInt(n,10),l=parseInt(s,10);t.set(e,{command:r,path:i||"",pid:Number.isNaN(a)?0:a,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},N=new Set(["bash","zsh","fish","sh","dash"]),b=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},R=async e=>{await c("tmux",["-L",d,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},$=async(e,t)=>{await R(e),await c("tmux",["-L",d,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},M=async(e,t)=>{await R(e),await c("tmux",["-L",d,"send-keys","-t",e,t],{timeout:5e3})},T=async(e,t)=>{await R(e),await c("tmux",["-L",d,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await c("tmux",["-L",d,"send-keys","-t",e,"Enter"],{timeout:5e3})},k=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[a,r,i,n,s,l]=t.trim().split(" ");return{cwd:a||null,command:r||null,pid:i&&parseInt(i,10)||null,width:n&&parseInt(n,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},A=new Set(["node","python","python3","ruby","perl","deno","bun"]),C=async()=>{try{await c("tmux",["-L",d,"kill-server"],{timeout:5e3}),p.debug("tmux server killed")}catch{}},O=async e=>{try{let{stdout:t}=await c("tmux",["-L",d,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},q=async(e,t)=>{try{let{stdout:a}=await c("tmux",["-L",d,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return a}catch{return null}},U=async e=>{if(u){let t=[];return await Promise.all(e.map(async e=>{try{for(let r of(await a.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(r,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await c("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},j=async e=>{let t=[],a=[e];for(;a.length>0;){let e=await U(a);if(0===e.length)break;t.push(...e),a=e}return t},D=async e=>{try{let t=new Set(e),{stdout:a}=await c("ss",["-tlnp"],{timeout:5e3}),r=new Set;for(let e of a.split("\n")){let a=e.match(/pid=(\d+)/g);if(!a||!a.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let i=e.match(/:(\d+)\s/);i&&r.add(parseInt(i[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},H=async e=>{let t=await j(e);if(0===t.length)return[];if(u)return D(t);try{let{stdout:e}=await c("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),a=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&a.add(parseInt(e[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},G=async e=>{let t=await v(e);if(!t)return null;try{let{stdout:e}=await c("pgrep",["-n","-P",String(t)],{timeout:5e3}),a=e.trim();if(!a)return null;let{stdout:r}=await c("ps",["-o","args=","-p",a],{timeout:5e3}),n=r.trim();if(!n)return null;let s=n.split(/\s+/);if(0===s.length)return n;if(s[0]=i.default.basename(s[0]),A.has(s[0])&&s.length>1){let e=i.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,e)}return s.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,N,"applyConfig",0,E,"capturePaneContent",0,O,"capturePaneContentWithHistory",0,q,"createSession",0,f,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,R,"getAllPanesInfo",0,P,"getLastCommand",0,G,"getListeningPorts",0,H,"getPaneCurrentCommand",0,I,"getPaneDetailInfo",0,k,"getPaneTitle",0,b,"getSessionCwd",0,L,"getSessionPanePid",0,v,"hasSession",0,g,"killServer",0,C,"killSession",0,w,"listSessions",0,h,"scanSessions",0,S,"sendBracketedPaste",0,T,"sendKeys",0,$,"sendRawKeys",0,M,"workspaceSessionName",0,(e,t,a)=>`pt-${e}-${t}-${a}`],459015)},668144,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),n=e.i(459015);let s=async(e,t)=>{let a=await (0,n.listSessions)();t.status(200).json({count:a.length})};e.s(["default",0,s],877394);var l=e.i(877394),o=e.i(7031),u=e.i(181927),p=e.i(846432);let c=(0,i.hoist)(l,"default"),d=(0,i.hoist)(l,"config"),m=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/system/tmux-sessions",pathname:"/api/system/tmux-sessions",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function h(e,a,r){r.requestMeta&&(0,p.setRequestMeta)(e,r.requestMeta),m.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/system/tmux-sessions";i=i.replace(/\/index$/,"")||"/";let n=await m.prepare(e,a,{srcPage:i});if(!n){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:s,params:l,prerenderManifest:c,routerServerContext:d}=n;try{let t,r=e.method||"GET",n=(0,o.getTracer)(),p=n.getActiveScopeSpan(),h=!!(null==d?void 0:d.isWrappedByNextServer),f=m.instrumentationOnRequestError.bind(m),y=async o=>m.render(e,a,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:c.preview,propagateError:!1,dev:m.isDev,page:"/api/system/tmux-sessions",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!o)return;o.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${r} ${s}`;o.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),o.updateName(e),t&&t!==o&&(t.setAttribute("http.route",s),t.updateName(e))}else o.updateName(`${r} ${i}`)});h&&p?await y(p):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(u.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:o.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},y),void 0,!h))}catch(e){if(m.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,d,"default",0,c,"handler",0,h],668144)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0~7f-os._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[270406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,a)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),a=e.i(814747),r=e.i(446786);let n=a.default.join(r.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let a of e.split(",")){let[e,r]=a.split("=").map(e=>e.trim());e&&r&&(t[e]=r)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],u=globalThis;if(!u.__ptRootLogger){let e=[i,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");u.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:a.default.join(n,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let o=u.__ptRootLogger;e.s(["createLogger",0,e=>{let t=o.child({module:e});return t.level=s[e]??i,t}])},224361,(e,t,a)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,a)=>{t.exports=e.x("child_process",()=>require("child_process"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},597789,965898,e=>{"use strict";let t=process.env.__PMUX_PRISTINE_ENV,a=Object.freeze(t?JSON.parse(t):{...process.env});t||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(a)),e.s(["PRISTINE_ENV",0,a],965898);let r=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),n=["LC_"],i=e=>r.has(e)||n.some(t=>e.startsWith(t)),s={TERM:"xterm-256color",COLORTERM:"truecolor"},l=()=>{let e={};for(let[t,r]of Object.entries(a))void 0!==r&&i(t)&&(e[t]=r);return{...e,...s}},u=e=>`'${e.replace(/'/g,"'\\''")}'`,o=()=>a.SHELL||"/bin/bash";e.s(["buildShellEnv",0,()=>l(),"buildShellLaunchCommand",0,()=>{let e=Object.entries(l()).map(([e,t])=>`${e}=${u(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${u(o())} -l`},"defaultShell",0,o],597789)},44014,e=>{"use strict";let t,a;var r=e.i(666680);e.s(["nanoid",0,function(e=21){var n;n=e|=0,!t||t.length<n?(t=Buffer.allocUnsafe(128*n),r.webcrypto.getRandomValues(t),a=0):a+n>t.length&&(r.webcrypto.getRandomValues(t),a=0),a+=n;let i="";for(let r=a-e;r<a;r++)i+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[r]];return i}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),a=e.i(924868),r=e.i(224361),n=e.i(814747),i=e.i(44014),s=e.i(965898),l=e.i(597789),u=e.i(25146);process.platform;let o="linux"===process.platform;e.s(["isLinux",0,o],544538);let c=(0,u.createLogger)("terminal"),d=(0,r.promisify)(t.execFile),p="purple",m=n.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),f=async()=>{try{let{stdout:e}=await d("tmux",["-L",p,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},h=async(e,t,a,r)=>{let n=(0,l.buildShellLaunchCommand)();await d("tmux",["-u","-L",p,"-f",m,"new-session","-d","-s",e,"-x",String(t),"-y",String(a),n],{timeout:5e3,cwd:r||s.PRISTINE_ENV.HOME||"/"}),await I(),c.debug(`tmux session created: ${e} (cols: ${t}, rows: ${a})`)},w=e=>new Promise(t=>setTimeout(t,e)),y=async e=>{if(!await g(e))return;c.debug(`killSession start: ${e}`);let t=await _(e);if(t)try{c.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await d("tmux",["-L",p,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await g(e))return void c.debug(`killSession done (SIGTERM): ${e}`);await w(200)}if(c.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{c.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await d("tmux",["-L",p,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void c.debug(`killSession done (SIGKILL): ${e}`);await w(200)}c.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{try{return await d("tmux",["-L",p,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},S=async()=>{},x=async()=>{await S();let e=await f();e.length>0&&e.forEach(e=>{c.debug(`existing tmux session found: ${e}`)})},v=async e=>{if(o)try{return await a.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await d("lsof",["-a","-p",String(e),"-d","cwd","-Fn"],{timeout:5e3}),a=t.split("\n").find(e=>e.startsWith("n/"));return a?a.slice(1):null}catch{return null}},P=async e=>{let t=await _(e);if(t){let e=await v(t);if(e)return e}try{let{stdout:t}=await d("tmux",["-L",p,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},_=async e=>{try{let{stdout:t}=await d("tmux",["-L",p,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),a=parseInt(t.trim(),10);return Number.isNaN(a)?null:a}catch{return null}},I=async()=>{try{await d("tmux",["-L",p,"source-file",m],{timeout:5e3})}catch{}},L=async e=>{try{let{stdout:t}=await d("tmux",["-L",p,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},E=async()=>{try{let{stdout:e}=await d("tmux",["-L",p,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let a of e.trim().split("\n")){if(!a)continue;let[e,r,n,i,s]=a.split(" ");if(e&&r){let a=parseInt(i,10),l=parseInt(s,10);t.set(e,{command:r,path:n||"",pid:Number.isNaN(a)?0:a,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},A=new Set(["bash","zsh","fish","sh","dash"]),N=async e=>{try{let{stdout:t}=await d("tmux",["-L",p,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},b=async e=>{await d("tmux",["-L",p,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},j=async(e,t)=>{await b(e),await d("tmux",["-L",p,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},T=async(e,t)=>{await b(e),await d("tmux",["-L",p,"send-keys","-t",e,t],{timeout:5e3})},R=async(e,t)=>{await b(e),await d("tmux",["-L",p,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await d("tmux",["-L",p,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await d("tmux",["-L",p,"send-keys","-t",e,"Enter"],{timeout:5e3})},M=async e=>{try{let{stdout:t}=await d("tmux",["-L",p,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[a,r,n,i,s,l]=t.trim().split(" ");return{cwd:a||null,command:r||null,pid:n&&parseInt(n,10)||null,width:i&&parseInt(i,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},$=new Set(["node","python","python3","ruby","perl","deno","bun"]),k=async()=>{try{await d("tmux",["-L",p,"kill-server"],{timeout:5e3}),c.debug("tmux server killed")}catch{}},C=async e=>{try{let{stdout:t}=await d("tmux",["-L",p,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},O=async(e,t)=>{try{let{stdout:a}=await d("tmux",["-L",p,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return a}catch{return null}},D=async e=>{if(o){let t=[];return await Promise.all(e.map(async e=>{try{for(let r of(await a.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(r,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await d("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},q=async e=>{let t=[],a=[e];for(;a.length>0;){let e=await D(a);if(0===e.length)break;t.push(...e),a=e}return t},H=async e=>{try{let t=new Set(e),{stdout:a}=await d("ss",["-tlnp"],{timeout:5e3}),r=new Set;for(let e of a.split("\n")){let a=e.match(/pid=(\d+)/g);if(!a||!a.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let n=e.match(/:(\d+)\s/);n&&r.add(parseInt(n[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},U=async e=>{let t=await q(e);if(0===t.length)return[];if(o)return H(t);try{let{stdout:e}=await d("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),a=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&a.add(parseInt(e[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},F=async e=>{let t=await _(e);if(!t)return null;try{let{stdout:e}=await d("pgrep",["-n","-P",String(t)],{timeout:5e3}),a=e.trim();if(!a)return null;let{stdout:r}=await d("ps",["-o","args=","-p",a],{timeout:5e3}),i=r.trim();if(!i)return null;let s=i.split(/\s+/);if(0===s.length)return i;if(s[0]=n.default.basename(s[0]),$.has(s[0])&&s.length>1){let e=n.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,e)}return s.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,A,"applyConfig",0,I,"capturePaneContent",0,C,"capturePaneContentWithHistory",0,O,"createSession",0,h,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,b,"getAllPanesInfo",0,E,"getLastCommand",0,F,"getListeningPorts",0,U,"getPaneCurrentCommand",0,L,"getPaneDetailInfo",0,M,"getPaneTitle",0,N,"getSessionCwd",0,P,"getSessionPanePid",0,_,"hasSession",0,g,"killServer",0,k,"killSession",0,y,"listSessions",0,f,"scanSessions",0,x,"sendBracketedPaste",0,R,"sendKeys",0,j,"sendRawKeys",0,T,"workspaceSessionName",0,(e,t,a)=>`pt-${e}-${t}-${a}`],459015)},713915,e=>{"use strict";var t=e.i(233405),a=e.i(924868),r=e.i(446786),n=e.i(814747),i=e.i(224361),s=e.i(597789),l=e.i(965898);let u=(0,i.promisify)(t.execFile),o=null,c=null,d=async()=>{let e=r.default.userInfo().shell||(0,s.defaultShell)();try{let{stdout:t}=await u(e,["-ilc",'echo -n "$PATH"'],{timeout:5e3,env:{...(0,s.buildShellEnv)(),SHELL:e,DISABLE_AUTO_UPDATE:"true",ZSH_TMUX_AUTOSTARTED:"true"}});return t.toString().trim()}catch{return l.PRISTINE_ENV.PATH||""}},p=async()=>o||(c||(c=d().then(e=>(o=e,c=null,e))),c),m=async(e,t,a)=>{try{let r=await p(),{stdout:n}=await u(e,t,{timeout:5e3,env:{...process.env,PATH:r}});return{installed:!0,version:a(n)}}catch{return{installed:!1,version:null}}},f=e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null,h=[n.default.join(r.default.homedir(),".local","bin")],w=async()=>{for(let e of h)try{return await (0,a.access)(n.default.join(e,"claude")),e}catch{}return null},y=e=>e.installed&&null!==e.version&&parseFloat(e.version)>=2.9,g=async()=>{o=await d();let[e,t,i]=await Promise.all([m("tmux",["-V"],f),m("git",["--version"],f),m("claude",["--version"],f)]),s=(y(e)&&t.installed&&i.installed,i.installed?null:await w()),l=!1;if(i.installed||s)try{await (0,a.access)(n.default.join(r.default.homedir(),".claude")),l=!0}catch{}return{tmux:{...e,compatible:y(e)},git:t,claude:{...i,binaryPath:s,loggedIn:l}}},S=null,x=null,v=null,P=null,_=async()=>v&&Date.now()-v.checkedAt<1e3?v.result:P||(P=g().then(e=>(v={result:e,checkedAt:Date.now()},P=null,e)).catch(e=>{throw P=null,e})),I=async()=>{o=await d();let[e,t,a]=await Promise.all([m("tmux",["-V"],f),m("git",["--version"],f),m("claude",["--version"],f)]);return{tmux:{...e,compatible:y(e)},git:t,claude:a}},L=async()=>S&&Date.now()-S.checkedAt<3e4?S.result:x||(x=I().then(e=>(S={result:e,checkedAt:Date.now()},x=null,e)).catch(e=>{throw x=null,e}));e.s(["getCachedPreflightStatus",0,_,"getCachedRuntimePreflight",0,L,"getShellPath",0,p,"invalidateRuntimeCache",0,()=>{S=null,x=null}])},522734,(e,t,a)=>{t.exports=e.x("fs",()=>require("fs"))},319668,(e,t,a)=>{t.exports=e.x("readline",()=>require("readline"))},143511,e=>{"use strict";var t=e.i(924868);e.i(522734);var a=e.i(814747),r=e.i(446786),n=e.i(233405),i=e.i(224361),s=e.i(713915),l=e.i(544538);let u=(0,i.promisify)(n.execFile),o=a.default.join(r.default.homedir(),".claude"),c=a.default.join(o,"sessions"),d=a.default.join(o,"projects"),p=[a.default.join(r.default.homedir(),".local","bin","claude")],m=e=>{let t=e.replace(/[^a-zA-Z0-9]/g,"-");if(t.length<=200)return t;let a=f(e);return`${t.slice(0,200)}-${a}`},f=e=>{let t=0;for(let a=0;a<e.length;a++)t=(t<<5)-t+e.charCodeAt(a)|0;return Math.abs(t).toString(36)},h=async e=>{try{let{stdout:t}=await u("pgrep",["-P",String(e)]);return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},w=async e=>{if(l.isLinux)try{return await t.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await u("lsof",["-a","-p",String(e),"-d","cwd","-Fn"]),a=t.split("\n").find(e=>e.startsWith("n/"));return a?a.slice(1):null}catch{return null}},y=async e=>{for(let t of e)try{let{stdout:e}=await u("ps",["-p",String(t),"-o","args="]),a=e.trim().match(/claude\s+--resume\s+([0-9a-f-]{36})/);if(a){let e=await w(t);return{pid:t,sessionId:a[1],cwd:e}}}catch{continue}return null},g=async e=>{try{let a=await t.default.readFile(e,"utf-8"),r=JSON.parse(a);if(!r.pid||!r.sessionId)return null;return r}catch{return null}},S=async(e,r)=>{let n=a.default.join(e,`${r}.jsonl`);try{return await t.default.access(n),n}catch{return null}},x=async()=>{try{return await u("claude",["--version"],{timeout:5e3,env:{...process.env,PATH:await (0,s.getShellPath)()}}),!0}catch{for(let e of p)try{return await t.default.access(e),!0}catch{}return!1}},v=async(e,t)=>{for(let a of t??await h(e))try{let{stdout:e}=await u("ps",["-p",String(a),"-o","args="]);if(e.trim().includes("claude"))return!0}catch{continue}return!1},P=async(e,r)=>{try{await t.default.access(o)}catch{return{status:await x()?"not-initialized":"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null}}let n=r??await h(e);if(0===n.length)return{status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null};let i=(await Promise.all(n.map(h))).flat(),s=[...n,...i],l=new Set(s);try{for(let e of(await t.default.readdir(c)).filter(e=>e.endsWith(".json"))){let r=await g(a.default.join(c,e));if(!r||!l.has(r.pid))continue;let n="";try{let{stdout:e}=await u("ps",["-p",String(r.pid),"-o","args="]);n=e.trim()}catch{try{await t.default.unlink(a.default.join(c,e))}catch{}continue}if(!n.includes("claude")){try{await t.default.unlink(a.default.join(c,e))}catch{}continue}let i=m(r.cwd),s=a.default.join(d,i),o=await S(s,r.sessionId),p=r.sessionId;if(!o){let e=n.match(/--resume\s+([0-9a-f-]{36})/);if(e){let t=e[1],a=await S(s,t);a&&(o=a,p=t)}}return{status:"running",sessionId:p,jsonlPath:o,pid:r.pid,startedAt:r.startedAt,cwd:r.cwd}}}catch{}let p=await y(s);if(p){let e=p.cwd;if(e){let t=m(e),r=a.default.join(d,t),n=await S(r,p.sessionId);return{status:"running",sessionId:p.sessionId,jsonlPath:n,pid:p.pid,startedAt:null,cwd:e}}}return{status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null}};e.s(["detectActiveSession",0,P,"getChildPids",0,h,"isClaudeRunning",0,v,"toClaudeProjectName",0,m])},746514,e=>{"use strict";let t;var a=e.i(924868),r=e.i(522734),n=e.i(814747),i=e.i(319668),s=e.i(143511),l=e.i(459015);let u=(0,e.i(25146).createLogger)("session-list"),o=n.default.join(process.env.HOME||process.env.USERPROFILE||"/",".claude","projects"),c=(t=new Map,{get:e=>{let a=t.get(e);if(a)return Date.now()-a.cachedAt>3e4?void t.delete(e):a.meta},set:(e,a,r)=>{t.set(e,{meta:a,mtime:r,cachedAt:Date.now()})},isStale:(e,a)=>{let r=t.get(e);return!r||(Date.now()-r.cachedAt>3e4?(t.delete(e),!0):r.mtime!==a)},clear:()=>{t.clear()}}),d=e=>{let t=(0,s.toClaudeProjectName)(e);return n.default.join(o,t)},p=async(e,t)=>{let a=Array(e.length),r=0,n=async()=>{for(;r<e.length;){let t=r++;try{let r=await e[t]();a[t]={status:"fulfilled",value:r}}catch(e){a[t]={status:"rejected",reason:e}}}},i=Array.from({length:Math.min(t,e.length)},()=>n());return await Promise.all(i),a},m=e=>e.length<=200?e:e.slice(0,200)+"…",f=async e=>{let t=(0,r.createReadStream)(e,{encoding:"utf-8"}),a=i.default.createInterface({input:t,crlfDelay:1/0}),n=null,s="",l=0,u=!0;try{for await(let e of a){if(u&&(u=!1,e.trim()))try{let t=JSON.parse(e);t.timestamp&&(n=new Date(t.timestamp).toISOString())}catch{}if((e.includes('"type":"human"')||e.includes('"type": "human"')||e.includes('"type":"user"')||e.includes('"type": "user"'))&&!e.includes('"isMeta":true')&&!e.includes('"isMeta": true')&&(l++,!s))try{let t=JSON.parse(e);if(("human"===t.type||"user"===t.type)&&!t.isMeta){let e=t.message;if(e)if("string"==typeof e)s=m(e);else if(Array.isArray(e.content)){let t=e.content.find(e=>"text"===e.type&&e.text);t&&(s=m(t.text))}else"string"==typeof e.content&&(s=m(e.content))}}catch{}}}finally{a.close(),t.destroy()}return{startedAt:n,firstMessage:s,turnCount:l}},h=async e=>{try{let t=await a.default.stat(e),r=n.default.basename(e,".jsonl"),i=c.get(r);if(i&&!c.isStale(r,t.mtimeMs))return i;let{startedAt:s,firstMessage:l,turnCount:u}=await f(e),o=s||t.birthtime.toISOString(),d=t.mtime.toISOString(),p={sessionId:r,startedAt:o,lastActivityAt:d,firstMessage:l,turnCount:u};return c.set(r,p,t.mtimeMs),p}catch(t){return u.warn({err:t},`failed to parse session meta: ${e}`),null}},w=async(e,t)=>{let r,i=t||await (0,l.getSessionCwd)(e);if(!i)throw Error("cwd-lookup-failed");let s=d(i);try{r=(await a.default.readdir(s)).filter(e=>e.endsWith(".jsonl"))}catch{return[]}let u=r.map(e=>()=>h(n.default.join(s,e))),o=await p(u,10),c=[];for(let e of o)"fulfilled"===e.status&&e.value&&c.push(e.value);return c.sort((e,t)=>new Date(t.lastActivityAt).getTime()-new Date(e.lastActivityAt).getTime()),c};e.s(["cwdToProjectPath",0,d,"listSessions",0,w],746514)},220536,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),n=e.i(262950),i=e.i(459015),s=e.i(746514);let l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let a=e.query.tmuxSession;if(!a)return t.status(400).json({error:"missing-param",message:"tmuxSession parameter required"});if(!await (0,i.hasSession)(a))return t.status(404).json({error:"tmux-session-not-found",message:`tmux session '${a}' not found`});let r=Math.max(1,parseInt(e.query.limit,10)||50),n=Math.max(0,parseInt(e.query.offset,10)||0),l=e.query.cwd;try{let e=await (0,s.listSessions)(a,l),i=e.length,u=e.slice(n,n+r),o=n+r<i;return t.status(200).json({sessions:u,total:i,hasMore:o})}catch(a){let e=a instanceof Error?a.message:"unknown error";if("cwd-lookup-failed"===e)return t.status(500).json({error:"cwd-lookup-failed",message:"Failed to get cwd from tmux session"});return t.status(500).json({error:"internal-error",message:e})}};e.s(["default",0,l],96225);var u=e.i(96225),o=e.i(7031),c=e.i(181927),d=e.i(846432);let p=(0,n.hoist)(u,"default"),m=(0,n.hoist)(u,"config"),f=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/timeline/sessions",pathname:"/api/timeline/sessions",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function h(e,a,r){r.requestMeta&&(0,d.setRequestMeta)(e,r.requestMeta),f.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/timeline/sessions";n=n.replace(/\/index$/,"")||"/";let i=await f.prepare(e,a,{srcPage:n});if(!i){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:s,params:l,prerenderManifest:u,routerServerContext:p}=i;try{let t,r=e.method||"GET",i=(0,o.getTracer)(),d=i.getActiveScopeSpan(),m=!!(null==p?void 0:p.isWrappedByNextServer),h=f.instrumentationOnRequestError.bind(f),w=async o=>f.render(e,a,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:u.preview,propagateError:!1,dev:f.isDev,page:"/api/timeline/sessions",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!o)return;o.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${r} ${s}`;o.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),o.updateName(e),t&&t!==o&&(t.setAttribute("http.route",s),t.updateName(e))}else o.updateName(`${r} ${n}`)});m&&d?await w(d):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(c.BaseServerSpan.handleRequest,{spanName:`${r} ${n}`,kind:o.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},w),void 0,!m))}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,m,"default",0,p,"handler",0,h],220536)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__10b7n-k._.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)},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=a=>{if("~"===a||"/"===a)return a;let b=a.replace(/\/$/,"").split("/");return b[b.length-1]||a},d=a=>{let b=a.trim();if(!b)return null;let c=b.indexOf("|");return c>0?b.slice(0,c):null};a.s(["formatTabTitle",0,a=>{let e=a.trim();if(!e)return"";let f=d(a);if(null!==f){let a=e.slice(e.indexOf("|")+1);return b.has(f)?c(a):f}let g=e.match(/@[^:]+:\s*(.*)/);if(g)return c(g[1].trim());if(e.startsWith("/")||e.startsWith("~"))return c(e);let h=e.split(/\s+/)[0];return b.has(h)?"":h||""},"isShellProcess",0,a=>{let c=d(a);return null!==c&&b.has(c)},"parseCurrentCommand",0,d])},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])},480824,740398,83041,a=>{"use strict";var b=a.i(4873),c=a.i(127669),d=(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){}},e=["light","dark"],f="(prefers-color-scheme: dark)",g=c.createContext(void 0),h={setTheme:a=>{},themes:[]},i=()=>{var a;return null!=(a=c.useContext(g))?a:h},j=["light","dark"],k=({forcedTheme:a,disableTransitionOnChange:b=!1,enableSystem:d=!0,enableColorScheme:h=!0,storageKey:i="theme",themes:k=j,defaultTheme:p=d?"system":"light",attribute:q="data-theme",value:r,children:s,nonce:t,scriptProps:u})=>{let[v,w]=c.useState(()=>m(i,p)),[x,y]=c.useState(()=>"system"===v?o():v),z=r?Object.values(r):k,A=c.useCallback(a=>{let c=a;if(!c)return;"system"===a&&d&&(c=o());let f=r?r[c]:c,g=b?n(t):null,i=document.documentElement,j=a=>{"class"===a?(i.classList.remove(...z),f&&i.classList.add(f)):a.startsWith("data-")&&(f?i.setAttribute(a,f):i.removeAttribute(a))};if(Array.isArray(q)?q.forEach(j):j(q),h){let a=e.includes(p)?p:null,b=e.includes(c)?c:a;i.style.colorScheme=b}null==g||g()},[t]),B=c.useCallback(a=>{let b="function"==typeof a?a(v):a;w(b);try{localStorage.setItem(i,b)}catch(a){}},[v]),C=c.useCallback(b=>{y(o(b)),"system"===v&&d&&!a&&A("system")},[v,a]);c.useEffect(()=>{let a=window.matchMedia(f);return a.addListener(C),C(a),()=>a.removeListener(C)},[C]),c.useEffect(()=>{let a=a=>{a.key===i&&(a.newValue?w(a.newValue):B(p))};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[B]),c.useEffect(()=>{A(null!=a?a:v)},[a,v]);let D=c.useMemo(()=>({theme:v,setTheme:B,forcedTheme:a,resolvedTheme:"system"===v?x:v,themes:d?[...k,"system"]:k,systemTheme:d?x:void 0}),[v,B,a,x,d,k]);return c.createElement(g.Provider,{value:D},c.createElement(l,{forcedTheme:a,storageKey:i,attribute:q,enableSystem:d,enableColorScheme:h,defaultTheme:p,value:r,themes:k,nonce:t,scriptProps:u}),s)},l=c.memo(({forcedTheme:a,storageKey:b,attribute:e,enableSystem:f,enableColorScheme:g,defaultTheme:h,value:i,themes:j,nonce:k,scriptProps:l})=>{let m=JSON.stringify([e,b,h,a,j,i,f,g]).slice(1,-1);return c.createElement("script",{...l,suppressHydrationWarning:!0,nonce:k,dangerouslySetInnerHTML:{__html:`(${d.toString()})(${m})`}})}),m=(a,b)=>{},n=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)}},o=a=>(a||(a=window.matchMedia(f)),a.matches?"dark":"light");a.s(["ThemeProvider",0,a=>c.useContext(g)?c.createElement(c.Fragment,null,a.children):c.createElement(k,{...a}),"useTheme",0,i],740398);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,b.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}=i(),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__0-e2yqy._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},666680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},688947,(a,b,c)=>{b.exports=a.x("stream",()=>require("stream"))},406461,(a,b,c)=>{b.exports=a.x("zlib",()=>require("zlib"))},111794,a=>{"use strict";a.s(["MESSAGE_NAMESPACES",0,["common","sidebar","header","terminal","connection","workspace","login","onboarding","settings","stats","reset","reports","timeline","notification","session","messageHistory","webBrowser","mobile","toolsRequired","diff","shortcuts"]])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0vwkkwh._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[2026,55594,a=>{"use strict";var b=a.i(564375);let c=(0,b.default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,c],2026);let d=(0,b.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);a.s(["ArrowRight",0,d],55594)},929070,a=>{"use strict";let b=(0,a.i(564375).default)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]);a.s(["ListChecks",0,b],929070)},552608,a=>{"use strict";let b={"opus-4-7":{input:5,output:25,cacheWrite5m:6.25,cacheWrite1h:10,cacheRead:.5},"opus-4-6":{input:5,output:25,cacheWrite5m:6.25,cacheWrite1h:10,cacheRead:.5},"opus-4-5":{input:5,output:25,cacheWrite5m:6.25,cacheWrite1h:10,cacheRead:.5},"opus-4-1":{input:15,output:75,cacheWrite5m:18.75,cacheWrite1h:30,cacheRead:1.5},"opus-4":{input:15,output:75,cacheWrite5m:18.75,cacheWrite1h:30,cacheRead:1.5},"sonnet-4-6":{input:3,output:15,cacheWrite5m:3.75,cacheWrite1h:6,cacheRead:.3},"sonnet-4-5":{input:3,output:15,cacheWrite5m:3.75,cacheWrite1h:6,cacheRead:.3},"sonnet-4":{input:3,output:15,cacheWrite5m:3.75,cacheWrite1h:6,cacheRead:.3},"sonnet-3-7":{input:3,output:15,cacheWrite5m:3.75,cacheWrite1h:6,cacheRead:.3},"sonnet-3-5":{input:3,output:15,cacheWrite5m:3.75,cacheWrite1h:6,cacheRead:.3},"haiku-4-5":{input:1,output:5,cacheWrite5m:1.25,cacheWrite1h:2,cacheRead:.1},"haiku-3-5":{input:.8,output:4,cacheWrite5m:1,cacheWrite1h:1.6,cacheRead:.08},"haiku-3":{input:.25,output:1.25,cacheWrite5m:.3,cacheWrite1h:.5,cacheRead:.03},"opus-3":{input:15,output:75,cacheWrite5m:18.75,cacheWrite1h:30,cacheRead:1.5}},c={input:30,output:150,cacheWrite5m:37.5,cacheWrite1h:60,cacheRead:3},d={"opus-4-7":"Opus 4.7","opus-4-6":"Opus 4.6","opus-4-5":"Opus 4.5","opus-4-1":"Opus 4.1","opus-4":"Opus 4","sonnet-4-6":"Sonnet 4.6","sonnet-4-5":"Sonnet 4.5","sonnet-4":"Sonnet 4","sonnet-3-7":"Sonnet 3.7","sonnet-3-5":"Sonnet 3.5","haiku-4-5":"Haiku 4.5","haiku-3-5":"Haiku 3.5","haiku-3":"Haiku 3","opus-3":"Opus 3"},e=a=>{let b=a.replace(/\[.*?\]$/,"").match(/claude-(\w+-[\d]+(?:-[\d]+)*)(?:-\d{8}|-v\d)?(?:\:\d)?$/);return b?b[1]:null};a.s(["calculateCost",0,(a,d,f,g,h,i,j=!1)=>{let k=e(a);if(!k)return null;let l=j&&"opus-4-6"===k?c:b[k];return l?d/1e6*l.input+g/1e6*l.cacheWrite5m+h/1e6*l.cacheWrite1h+i/1e6*l.cacheRead+f/1e6*l.output:null},"formatCost",0,a=>a<.01?`$${a.toFixed(4)}`:a<1?`$${a.toFixed(3)}`:a>=1e3?`$${a.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g,",")}`:`$${a.toFixed(2)}`,"formatModelDisplayName",0,a=>{let b=e(a);if(b&&d[b])return d[b];let c=a.match(/claude-(\w+)/);return c?c[1].charAt(0).toUpperCase()+c[1].slice(1):a},"formatTokenCount",0,a=>a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:a.toLocaleString(),"formatTokenDetail",0,a=>a.toLocaleString(),"normalizeModelName",0,a=>{let b=e(a);return b?`claude-${b}`:a}])},665315,a=>{"use strict";var b=a.i(508171),c=a.i(127669),d=a.i(113952),e=a.i(2026),f=a.i(55594);let g=(0,a.i(564375).default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var h=a.i(98456),i=a.i(922365),j=a.i(915150),k=a.i(799856),l=a.i(721043);let m="Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1",n=new Map;a.s(["default",0,({initialUrl:a,onUrlChange:o})=>{let p=(0,d.useTranslations)("webBrowser"),q=a?(a=>{let b=n.get(a);if(b)return b;if(l.default)try{return localStorage.getItem(`webview-last:${a}`)}catch{}return null})(a)??a:"",[r,s]=(0,c.useState)(q),[t,u]=(0,c.useState)(q),[v,w]=(0,c.useState)(l.default),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(!1),D=(0,c.useRef)(null),E=(0,c.useRef)(null),F=(0,c.useRef)(null),G=(0,c.useRef)(o);(0,c.useEffect)(()=>{G.current=o});let H=(0,c.useRef)(a);(0,c.useEffect)(()=>{H.current=a}),(0,c.useEffect)(()=>{a&&t&&((a,b)=>{if(n.set(a,b),l.default)try{localStorage.setItem(`webview-last:${a}`,b)}catch{}})(a,t)},[t,a]),(0,c.useEffect)(()=>{if(!l.default||!r||!F.current)return;let a=F.current,b=a.querySelector("webview");b||((b=document.createElement("webview")).setAttribute("partition","persist:web-browser"),B&&b.setAttribute("useragent",m),b.style.width="100%",b.style.height="100%",b.style.border="none",b.setAttribute("src",r),a.appendChild(b)),E.current=b;let c=a=>{u(a.url),y(b.canGoBack()),A(b.canGoForward()),G.current?.(a.url)},d=a=>{if(!a.isMainFrame)return;let c=b.getURL();u(c),y(b.canGoBack()),A(b.canGoForward()),G.current?.(c)};return b.addEventListener("did-navigate",c),b.addEventListener("did-navigate-in-page",d),()=>{b.removeEventListener("did-navigate",c),b.removeEventListener("did-navigate-in-page",d)}},[r,B]),(0,c.useEffect)(()=>{!l.default&&D.current&&r&&(D.current.src=r)},[r]);let I=(0,c.useCallback)(()=>{let a=D.current;if(!a)return;let b=(a=>{try{let b=a.contentWindow?.location.href;return void 0!==b&&"about:blank"!==b}catch{return!1}})(a);if(w(b),b)try{let b=a.contentWindow?.location.href;b&&"about:blank"!==b&&(u(b),o?.(b))}catch{}},[o]),J=(0,c.useCallback)(a=>{let b,c=(b=a.trim())?/^https?:\/\//i.test(b)?b:/^localhost(:|\/|$)/.test(b)||/^(\d{1,3}\.){3}\d{1,3}(:|\/|$)/.test(b)?`http://${b}`:`https://${b}`:"";c&&(l.default&&E.current&&E.current.loadURL(c),s(c),u(c),o?.(c))},[o]),K=(0,c.useCallback)(()=>{C(a=>{let b=!a,c=E.current;return c&&(c.setUserAgent(b?m:""),c.reload()),b})},[]),L=l.default||v;return(0,b.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,b.jsx)("div",{className:"relative z-[60] flex h-12 shrink-0 items-center gap-1 border-b border-border px-2",...l.default?{style:{WebkitAppRegion:"drag"}}:{},children:(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-1",...l.default?{style:{WebkitAppRegion:"no-drag"}}:{},children:[L&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{className:(0,k.cn)("flex h-7 w-7 items-center justify-center rounded hover:bg-accent",l.default&&!x?"text-muted-foreground/50":"text-muted-foreground hover:text-foreground"),onClick:()=>{if(l.default)return void E.current?.goBack();try{D.current?.contentWindow?.history.back()}catch{}},disabled:l.default&&!x,"aria-label":p("back"),children:(0,b.jsx)(e.ArrowLeft,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{className:(0,k.cn)("flex h-7 w-7 items-center justify-center rounded hover:bg-accent",l.default&&!z?"text-muted-foreground/50":"text-muted-foreground hover:text-foreground"),onClick:()=>{if(l.default)return void E.current?.goForward();try{D.current?.contentWindow?.history.forward()}catch{}},disabled:l.default&&!z,"aria-label":p("forward"),children:(0,b.jsx)(f.ArrowRight,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("button",{className:"flex h-7 w-7 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground",onClick:()=>{if(l.default)return void E.current?.reload();try{D.current?.contentWindow?.location.reload()}catch{if(D.current){let a=D.current.src;D.current.src="",D.current.src=a}}},"aria-label":p("reload"),children:(0,b.jsx)(g,{className:"h-3.5 w-3.5"})})]}),l.default&&(0,b.jsx)("button",{className:(0,k.cn)("flex h-7 w-7 items-center justify-center rounded hover:bg-accent",B?"text-accent-color":"text-muted-foreground hover:text-foreground"),onClick:K,"aria-label":p(B?"switchToDesktop":"switchToMobile"),title:p(B?"mobileModeTip":"desktopModeTip"),children:B?(0,b.jsx)(i.Smartphone,{className:"h-3.5 w-3.5"}):(0,b.jsx)(j.Monitor,{className:"h-3.5 w-3.5"})}),(0,b.jsxs)("div",{className:"ml-1 flex flex-1 items-center gap-2 rounded-md border border-border bg-secondary px-2.5 py-1",children:[(0,b.jsx)(h.Globe,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("input",{className:(0,k.cn)("min-w-0 flex-1 bg-transparent text-xs outline-none placeholder:text-muted-foreground/50",v?"text-foreground":"text-muted-foreground"),placeholder:p("urlPlaceholder"),value:t,onChange:a=>u(a.target.value),onKeyDown:a=>{"Enter"===a.key&&J(t)},spellCheck:!1})]})]})}),r?l.default?(0,b.jsx)("div",{ref:F,className:"min-h-0 flex-1"}):(0,b.jsx)("iframe",{ref:D,className:"min-h-0 flex-1 border-0",sandbox:"allow-same-origin allow-scripts allow-popups allow-forms allow-modals",allow:"clipboard-read; clipboard-write",title:"Web Browser",onLoad:I}):(0,b.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,b.jsxs)("div",{className:"flex flex-col items-center gap-3 text-muted-foreground",children:[(0,b.jsx)(h.Globe,{className:"h-10 w-10 opacity-20"}),(0,b.jsx)("span",{className:"text-sm",children:p("emptyMessage")})]})})]})}],665315)},712960,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_highlight_js_lib_core_0h1yngz.js","server/chunks/ssr/node_modules_0cndrls._.js"].map(b=>a.l(b))).then(()=>b(550486)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_0mu2snc._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,182936,(e,t,r)=>{t.exports={title:"Paramètres",tabs:{general:"Général",appearance:"Apparence",terminal:"Terminal",editor:"Éditeur",claude:"Claude",auth:"Authentification",tailscale:"Tailscale",quickPrompts:"Prompts rapides",sidebarItems:"Barre latérale",agent:"Agent",notification:"Notification",system:"Système"},general:{theme:"Thème",themeDescription:"Sélectionnez le thème d'affichage.",language:"Langue",languageDescription:"Sélectionnez la langue de l'interface.",fontSize:"Taille de police",fontSizeDescription:"Ajustez la taille de police de l'interface et du terminal.",fontSizeNormal:"Normal",fontSizeLarge:"Grand",fontSizeXLarge:"Très grand",keyboardShortcuts:"Raccourcis clavier",keyboardShortcutsDescription:"Afficher et personnaliser tous les raccourcis clavier.",openShortcuts:"Ouvrir"},appearance:{customCSS:"CSS personnalisé",customCSSDescription:"Remplacez les variables CSS pour personnaliser les couleurs et les styles.",apply:"Appliquer",reset:"Réinitialiser",resetConfirm:"Réinitialiser tout le CSS personnalisé ?",applied:"CSS personnalisé appliqué.",availableVariables:"Variables disponibles",placeholder:":root {\n --background: oklch(0.98 0 0);\n --sidebar: oklch(0.95 0.01 220);\n}\n.dark {\n --background: oklch(0.08 0 0);\n}"},terminal:{theme:"Thème du terminal",themeDescription:"Sélectionnez les thèmes de couleurs du terminal pour chaque mode."},editor:{preset:"Éditeur",presetDescription:"Choisissez l'éditeur à ouvrir lorsque vous cliquez sur le bouton EDITOR dans l'en-tête.",presets:{"code-server":"Code Server (Web)",vscode:"VS Code","vscode-insiders":"VS Code Insiders",cursor:"Cursor",windsurf:"Windsurf",zed:"Zed",custom:"URL personnalisée",off:"Désactivé"},url:"URL de l'éditeur",urlDescription:"Saisissez l'URL web de votre instance Code Server.",urlHelp:"Installez et lancez <link>code-server</link> pour utiliser VS Code dans le navigateur. Le paramètre <code>?folder=</code> est automatiquement ajouté à l'URL.",customTemplate:"Modèle d'URL",customTemplateDescription:"Saisissez un modèle d'URL qui sera ouvert avec le dossier actuel.",customHelp:"Utilisez <folder></folder> pour le chemin absolu ou <folderEncoded></folderEncoded> pour le chemin encodé en URL.",localIdeHint:"Ouvre l'IDE sélectionné localement. L'IDE doit être installé sur la machine exécutant le navigateur ou l'application de bureau.",offHint:"Le bouton éditeur sera masqué de l'en-tête.",preview:"Aperçu (avec dossier d'exemple)",errorHttpRequired:"L'URL doit commencer par http:// ou https://",errorCustomTemplate:"Le modèle doit contenir {folder} ou {folderEncoded}"},claude:{skipPermissions:"Ignorer les vérifications de permissions",skipPermissionsDescription:"Ajoute l'option --dangerously-skip-permissions lors de l'exécution de Claude CLI."},auth:{changePassword:"Changer le mot de passe",changePasswordDescription:"Les nouveaux mots de passe sont hachés en SHA-512 avant enregistrement.",newPasswordPlaceholder:"Saisissez un nouveau mot de passe (4 car. min.)",passwordPlaceholder:"Saisissez un mot de passe (4 car. min.)",resetHint:"Pour réinitialiser, supprimez ~/.purplemux/config.json et {action}.",restartServer:"redémarrez le serveur",restartApp:"quittez et redémarrez l'application",savedRestart:"Enregistré. Les modifications prendront effet après le {action}.",restartServerAction:"redémarrage du serveur",restartAppAction:"redémarrage de l'application"},notification:{enable:"Activer les notifications",enableDescription:"Affiche des notifications système lorsque les tâches Claude sont terminées. Fonctionne uniquement dans l'application Electron."},agent:{enableMenu:"Activer le menu Agent",enableMenuDescription:"Affiche le menu Agent dans la barre latérale. Cette fonctionnalité est actuellement en bêta."},system:{networkAccess:"Accès réseau",networkAccessDescription:"Contrôle quels réseaux peuvent accéder à purplemux. Prend effet après redémarrage du serveur.",networkAccessLocked:"Contrôlé par la variable d'environnement HOST.",restartRequired:"Les modifications prennent effet après redémarrage du serveur.",networkAccessOptions:{localhost:{label:"Localhost uniquement",description:"Uniquement cette machine. Le plus sûr ; le port est fermé aux autres appareils."},tailscale:{label:"Localhost + Tailscale",description:"Cette machine et les pairs Tailscale. Le LAN et Internet public sont bloqués."},all:{label:"Toutes les interfaces",description:"Autorise les connexions depuis tout réseau accessible, y compris le LAN et Internet public."}},showResources:"Afficher les ressources système",showResourcesDescription:"Affiche l'utilisation du CPU, de la mémoire et des sessions tmux dans l'en-tête.",attachedImages:"Images jointes",attachedImagesDescription:"Les images jointes dans la barre de saisie sont stockées dans ~/.purplemux/uploads/. Les fichiers de plus de 24 heures sont supprimés automatiquement au démarrage du serveur.",cleanAttachedImages:"Nettoyer maintenant",attachedImagesCleaned:"{count} fichiers supprimés",attachedImagesNothing:"Aucune image à supprimer",tmuxReset:"Réinitialiser tmux",tmuxResetDescription:"Termine toutes les sessions tmux et {action}. Utilisez cette option lorsque des modifications de paramètres doivent être appliquées.",tmuxResetConfirm:"Tous les processus en cours dans le terminal seront arrêtés. Continuer ?",restartServer:"redémarre le serveur",restartApp:"redémarre l'application"},tailscale:{notInstalled:"Tailscale CLI n'est pas installé",notInstalledDescription:"Installez Tailscale pour accéder à votre réseau en toute sécurité depuis l'extérieur.",commentMac:"# macOS",commentMacAppStore:"# ou installer depuis le Mac App Store",commentLinux:"# Linux (Ubuntu/Debian)",commentAfterInstall:"# Après l'installation, connectez-vous",installGuide:"Pour des instructions d'installation détaillées, visitez le <link>site officiel de Tailscale</link>.",notRunning:"Tailscale n'est pas en cours d'exécution",notRunningDescription:"Veuillez démarrer Tailscale.",deviceInfo:"Informations sur l'appareil",host:"Hôte",dns:"DNS",ip:"IP",version:"Version",nonDefaultPortTitle:"Le serveur fonctionne actuellement sur le port {port}",nonDefaultPortDescription:"Le port par défaut ({defaultPort}) était occupé, un port différent a donc été attribué automatiquement. Le port attribué automatiquement peut changer après le {restartAction}. Il est donc recommandé de définir le port local sur {defaultPort} au lieu de {currentPort} dans les paramètres Tailscale Serve.",appRestart:"redémarrage de l'application",serverRestart:"redémarrage du serveur",commentFixedPort:"# Pour utiliser un port fixe ({port})",commentOrTerminate:"# ou arrêtez le processus occupant le port {port} et redémarrez",serveStatus:"État du Serve",noActiveServe:"Aucune entrée Serve active.",httpsPort:"Port HTTPS",proxyTarget:"Cible du proxy",url:"URL",addServe:"Ajouter un Serve",setupGuide:"Guide de configuration",commentStep1Install:"# 1. Installer la CLI",commentStep2Activate:"# 2. Connect",commentStep3Add:"# 3. Ajouter Serve",localPort:"Port local",add:"Ajouter",enterPort:"Veuillez saisir un port",addedToast:"HTTPS :{httpsPort} → localhost:{localPort} ajouté",removedToast:"HTTPS :{httpsPort} supprimé"},quickPrompts:{title:"Prompts rapides",description:"Gérez les boutons de prompts affichés au-dessus du champ de saisie.",builtinSection:"Prompts intégrés",customSection:"Prompts personnalisés",itemsSection:"Prompts",addPrompt:"Ajouter un prompt",editPrompt:"Modifier le prompt",nameLabel:"Nom",namePlaceholder:"ex. Revue de code",promptLabel:"Prompt",promptPlaceholder:"ex. Veuillez vérifier les modifications en cours.",save:"Enregistrer",cancel:"Annuler",addButton:"Ajouter un prompt",resetToDefault:"Réinitialiser par défaut",resetTitle:"Réinitialiser par défaut",resetDescription:"Tous les prompts personnalisés seront supprimés et les prompts intégrés seront réactivés.",resetCancel:"Annuler",resetConfirm:"Réinitialiser",deleteTitle:"Supprimer le prompt",deleteDescription:"Voulez-vous vraiment supprimer ce prompt ?",deleteCancel:"Annuler",deleteConfirm:"Supprimer"},sidebarItems:{title:"Éléments de la barre latérale",description:"Gérez les raccourcis affichés en bas de la barre latérale.",itemsSection:"Éléments",addItem:"Ajouter un élément",editItem:"Modifier l'élément",nameLabel:"Nom",namePlaceholder:"ex. Grafana",iconLabel:"Icône",iconSearch:"Rechercher des icônes...",iconNotFound:"Aucune icône trouvée",urlLabel:"URL",urlPlaceholder:"ex. https://grafana.example.com",save:"Enregistrer",cancel:"Annuler",addButton:"Ajouter un élément",resetToDefault:"Réinitialiser par défaut",resetTitle:"Réinitialiser par défaut",resetDescription:"Tous les éléments personnalisés seront supprimés et les éléments intégrés seront réactivés.",resetCancel:"Annuler",resetConfirm:"Réinitialiser",deleteTitle:"Supprimer l'élément",deleteDescription:"Voulez-vous vraiment supprimer cet élément ?",deleteCancel:"Annuler",deleteConfirm:"Supprimer"},saveFailed:"Impossible de sauvegarder les paramètres"}}]);
|