purplemux 0.3.2 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +116 -116
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/routes-manifest.json +7 -7
  6. package/.next/standalone/.next/server/chunks/[externals]__0s~lw5_._.js +3 -0
  7. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-vpxlt._.js +5 -0
  8. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.wdm~p._.js +3 -0
  9. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.xasox._.js +3 -0
  10. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0075vnc._.js +3 -0
  11. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02.ow52._.js +3 -0
  12. package/.next/standalone/.next/server/chunks/[root-of-the-server]__023w5uy._.js +3 -0
  13. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03rse4i._.js +3 -0
  14. package/.next/standalone/.next/server/chunks/[root-of-the-server]__048funf._.js +3 -0
  15. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05le.ev._.js +3 -0
  16. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05~jgqd._.js +3 -0
  17. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06kid0d._.js +3 -0
  18. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07ajdqq._.js +1 -1
  19. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07fh~7w._.js +1 -1
  20. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0mky_tj._.js → [root-of-the-server]__08nq4la._.js} +2 -2
  21. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ageh3g._.js +3 -0
  22. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0atje0b._.js +3 -0
  23. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cejele._.js +3 -0
  24. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cy47p4._.js +3 -0
  25. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d9yo3_._.js +3 -0
  26. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e5am-o._.js +3 -0
  27. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e6z0u6._.js +3 -0
  28. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0erq9rf._.js +3 -0
  29. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f-1scw._.js +3 -0
  30. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f0-oim._.js +3 -0
  31. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fdh07q._.js +3 -0
  32. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__00o93bf._.js → [root-of-the-server]__0fe0pqx._.js} +2 -2
  33. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fjtk0d._.js +3 -0
  34. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g-v44c._.js +3 -0
  35. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gm~y1a._.js +3 -0
  36. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h-9m0e._.js +3 -0
  37. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0i0mb1-._.js +3 -0
  38. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j3kgjw._.js +3 -0
  39. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jqcz6h._.js +3 -0
  40. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lp1y.v._.js +3 -0
  41. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0m9hms3._.js +3 -0
  42. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mpstz.._.js +3 -0
  43. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oqbs5g._.js +3 -0
  44. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pta11j._.js +3 -0
  45. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q0laz1._.js +3 -0
  46. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qpwsk~._.js +3 -0
  47. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sgq23a._.js +3 -0
  48. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sisigk._.js +3 -0
  49. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t27n38._.js +3 -0
  50. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ts_s1k._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vno7dh._.js +3 -0
  52. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vroi1-._.js +3 -0
  53. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wae66j._.js +3 -0
  54. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0x01z7b._.js +1 -1
  55. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xgh-_t._.js +3 -0
  56. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xs6_~.._.js +3 -0
  57. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y774bl._.js +3 -0
  58. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y_v9~l._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10v85i5._.js +3 -0
  60. package/.next/standalone/.next/server/chunks/[root-of-the-server]__110w2ya._.js +3 -0
  61. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11b3nvp._.js +1 -1
  62. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12_dfe-._.js +3 -0
  63. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12lg8hi._.js +3 -0
  64. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12v9yor._.js +3 -0
  65. package/.next/standalone/.next/server/chunks/_07f-e5d._.js +3 -0
  66. package/.next/standalone/.next/server/chunks/_0abd-ef._.js +3 -0
  67. package/.next/standalone/.next/server/chunks/_0naftfn._.js +1 -1
  68. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_019~zpv.js +3 -0
  69. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_054vaqw.js +3 -0
  70. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_05soyh7.js +3 -0
  71. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0dag3xq.js +3 -0
  72. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0drg5k..js +3 -0
  73. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0qpjud8.js +3 -0
  74. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0to2msc.js +3 -0
  75. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0uk385d.js +3 -0
  76. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0v8pump.js +3 -0
  77. package/.next/standalone/.next/server/chunks/src_lib_06lqtoi._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/src_lib_0bj652.._.js +1 -1
  79. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05vtngr._.js +3 -0
  80. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07jm3ld._.js +3 -0
  81. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__00fyckt._.js → [root-of-the-server]__0fdpmgm._.js} +2 -2
  82. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__02~n2ds._.js → [root-of-the-server]__0hixhy3._.js} +2 -2
  83. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lnsb8q._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ytsvx3._.js +3 -0
  85. package/.next/standalone/.next/server/chunks/ssr/_0-0n2jc._.js +3 -0
  86. package/.next/standalone/.next/server/chunks/ssr/_0-w3tj9._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/ssr/_0.asmh_._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/ssr/_0.~7e5x._.js +3 -0
  89. package/.next/standalone/.next/server/chunks/ssr/_0025oot._.js +3 -0
  90. package/.next/standalone/.next/server/chunks/ssr/_0148tmw._.js +3 -0
  91. package/.next/standalone/.next/server/chunks/ssr/_03.p176._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/ssr/{_0y_feze._.js → _03u5alz._.js} +2 -2
  93. package/.next/standalone/.next/server/chunks/ssr/_05enhz-._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/ssr/_05oyq08._.js +3 -0
  95. package/.next/standalone/.next/server/chunks/ssr/{_0-gv~al._.js → _05qk2n5._.js} +2 -2
  96. package/.next/standalone/.next/server/chunks/ssr/_06mfd2z._.js +3 -0
  97. package/.next/standalone/.next/server/chunks/ssr/{_00zzfsm._.js → _072p152._.js} +2 -2
  98. package/.next/standalone/.next/server/chunks/ssr/{_0.stp0n._.js → _08~3wi.._.js} +2 -2
  99. package/.next/standalone/.next/server/chunks/ssr/_09n7sza._.js +18 -0
  100. package/.next/standalone/.next/server/chunks/ssr/_0b3mmpo._.js +3 -0
  101. package/.next/standalone/.next/server/chunks/ssr/{_09l7tmm._.js → _0e8bhy5._.js} +3 -3
  102. package/.next/standalone/.next/server/chunks/ssr/_0g4dxt7._.js +3 -0
  103. package/.next/standalone/.next/server/chunks/ssr/_0h7bs4u._.js +1 -1
  104. package/.next/standalone/.next/server/chunks/ssr/{_12l2tic._.js → _0injlej._.js} +2 -2
  105. package/.next/standalone/.next/server/chunks/ssr/_0k_04fj._.js +3 -0
  106. package/.next/standalone/.next/server/chunks/ssr/_0l_4npy._.js +3 -0
  107. package/.next/standalone/.next/server/chunks/ssr/{_02eucpw._.js → _0mrdl.g._.js} +2 -2
  108. package/.next/standalone/.next/server/chunks/ssr/_0ob2rr-._.js +1 -1
  109. package/.next/standalone/.next/server/chunks/ssr/_0qzs~4y._.js +3 -0
  110. package/.next/standalone/.next/server/chunks/ssr/{_0olu-g8._.js → _0r.fjs0._.js} +3 -3
  111. package/.next/standalone/.next/server/chunks/ssr/{_10dec5o._.js → _0sju65h._.js} +2 -2
  112. package/.next/standalone/.next/server/chunks/ssr/{_00cx0p2._.js → _0tk3_d1._.js} +2 -2
  113. package/.next/standalone/.next/server/chunks/ssr/_0vebac6._.js +3 -0
  114. package/.next/standalone/.next/server/chunks/ssr/_0w7x_09._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/ssr/{_053tm~z._.js → _0wrhe~n._.js} +2 -2
  116. package/.next/standalone/.next/server/chunks/ssr/_0xnk7ht._.js +18 -0
  117. package/.next/standalone/.next/server/chunks/ssr/{_0bhsmmv._.js → _0xxqycz._.js} +2 -2
  118. package/.next/standalone/.next/server/chunks/ssr/{_0kzht5v._.js → _10eoz_a._.js} +2 -2
  119. package/.next/standalone/.next/server/chunks/ssr/{_0k0r2i-._.js → _10hul60._.js} +2 -2
  120. package/.next/standalone/.next/server/chunks/ssr/_10uebjl._.js +3 -0
  121. package/.next/standalone/.next/server/chunks/ssr/_11m23bw._.js +3 -0
  122. package/.next/standalone/.next/server/chunks/ssr/_13s7t5u._.js +3 -0
  123. package/.next/standalone/.next/server/chunks/ssr/{messages_0k204ao._.js → messages_02_r1om._.js} +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/{messages_0f3u1ly._.js → messages_0u_y48r._.js} +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/messages_de_settings_json_[json]_cjs_0ksu4_w._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/messages_de_timeline_json_[json]_cjs_0_i8-gb._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/ssr/messages_en_settings_json_[json]_cjs_0qwl-zt._.js +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/messages_en_timeline_json_[json]_cjs_0a50w3r._.js +1 -1
  129. package/.next/standalone/.next/server/chunks/ssr/messages_es_settings_json_[json]_cjs_0ce_kv6._.js +1 -1
  130. package/.next/standalone/.next/server/chunks/ssr/messages_es_timeline_json_[json]_cjs_07-b7ka._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/messages_fr_settings_json_[json]_cjs_0h_6lba._.js +1 -1
  132. package/.next/standalone/.next/server/chunks/ssr/messages_fr_timeline_json_[json]_cjs_045zga0._.js +1 -1
  133. package/.next/standalone/.next/server/chunks/ssr/messages_ja_settings_json_[json]_cjs_0pg~fls._.js +1 -1
  134. package/.next/standalone/.next/server/chunks/ssr/messages_ja_timeline_json_[json]_cjs_0iwksd.._.js +1 -1
  135. package/.next/standalone/.next/server/chunks/ssr/messages_ko_settings_json_[json]_cjs_07xpfc8._.js +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/messages_ko_timeline_json_[json]_cjs_03gxaph._.js +1 -1
  137. package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_settings_json_[json]_cjs_0frspzp._.js +1 -1
  138. package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_timeline_json_[json]_cjs_0mhm8bo._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/messages_ru_settings_json_[json]_cjs_08ex00.._.js +1 -1
  140. package/.next/standalone/.next/server/chunks/ssr/messages_ru_timeline_json_[json]_cjs_104t_vy._.js +1 -1
  141. package/.next/standalone/.next/server/chunks/ssr/messages_tr_settings_json_[json]_cjs_0piu0da._.js +1 -1
  142. package/.next/standalone/.next/server/chunks/ssr/messages_tr_timeline_json_[json]_cjs_11fne8p._.js +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_settings_json_[json]_cjs_0uazwgy._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_timeline_json_[json]_cjs_0g0-bd6._.js +1 -1
  145. package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_settings_json_[json]_cjs_09u0c5l._.js +1 -1
  146. package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_timeline_json_[json]_cjs_0b3tm.x._.js +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/node_modules_0.l39rf._.js +3 -0
  148. package/.next/standalone/.next/server/chunks/ssr/node_modules_07i.2e~._.js +7 -0
  149. package/.next/standalone/.next/server/chunks/ssr/{node_modules_0bbmd88._.js → node_modules_0az5xxz._.js} +2 -2
  150. package/.next/standalone/.next/server/chunks/ssr/node_modules_0cx6hl6._.js +7 -0
  151. package/.next/standalone/.next/server/chunks/ssr/{node_modules_02oar3h._.js → node_modules_0g6n2o4._.js} +2 -2
  152. package/.next/standalone/.next/server/chunks/ssr/node_modules_0v0j4dl._.js +3 -0
  153. package/.next/standalone/.next/server/chunks/ssr/node_modules_0wwbj_z._.js +3 -0
  154. package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0d_1ie5._.js +3 -0
  155. package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0ik66ii._.js +3 -0
  156. package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0k730f5._.js +3 -0
  157. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_pages_0edfh6g.js +1 -1
  158. package/.next/standalone/.next/server/chunks/ssr/{src_components_0n3s0.7._.js → src_components_054lzv8._.js} +2 -2
  159. package/.next/standalone/.next/server/chunks/ssr/src_components_07a_zfh._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/ssr/{src_components_0gkfyrc._.js → src_components_0_j7p.~._.js} +2 -2
  161. package/.next/standalone/.next/server/chunks/ssr/{src_components_05-kki3._.js → src_components_0dzgkvt._.js} +2 -2
  162. package/.next/standalone/.next/server/chunks/ssr/{src_components_0fb83uz._.js → src_components_0l6f_-1._.js} +2 -2
  163. package/.next/standalone/.next/server/chunks/ssr/src_components_11nysou._.js +1 -1
  164. package/.next/standalone/.next/server/chunks/ssr/src_components_features_mobile_mobile-terminal-page_tsx_02chzch._.js +1 -1
  165. package/.next/standalone/.next/server/chunks/ssr/src_components_features_shortcuts_cheat-sheet-dialog_tsx_0i2pbva._.js +1 -1
  166. package/.next/standalone/.next/server/chunks/ssr/src_components_features_stats_session-section_tsx_0imh21c._.js +1 -1
  167. package/.next/standalone/.next/server/chunks/ssr/src_components_features_workspace_terminal-page_tsx_0wuq-jl._.js +1 -1
  168. package/.next/standalone/.next/server/chunks/ssr/src_components_ui_tooltip_tsx_0nba54u._.js +1 -1
  169. package/.next/standalone/.next/server/chunks/ssr/src_hooks_use-browser-title_ts_0bw6.cb._.js +1 -1
  170. package/.next/standalone/.next/server/chunks/ssr/src_hooks_use-workspace-store_ts_0h40e5c._.js +1 -1
  171. package/.next/standalone/.next/server/middleware-build-manifest.js +116 -116
  172. package/.next/standalone/.next/server/middleware.js +1 -1
  173. package/.next/standalone/.next/server/pages/_app/build-manifest.json +7 -7
  174. package/.next/standalone/.next/server/pages/_app/client-build-manifest.json +1 -1
  175. package/.next/standalone/.next/server/pages/_app.js +5 -5
  176. package/.next/standalone/.next/server/pages/_app.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/pages/_document.js +3 -2
  178. package/.next/standalone/.next/server/pages/_document.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/pages/_error/build-manifest.json +3 -3
  180. package/.next/standalone/.next/server/pages/_error/client-build-manifest.json +1 -1
  181. package/.next/standalone/.next/server/pages/_error.js +7 -6
  182. package/.next/standalone/.next/server/pages/_error.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/pages/api/auth/login.js +1 -1
  184. package/.next/standalone/.next/server/pages/api/auth/login.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/pages/api/auth/preflight.js +2 -2
  186. package/.next/standalone/.next/server/pages/api/auth/preflight.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/pages/api/auth/setup.js +2 -2
  188. package/.next/standalone/.next/server/pages/api/auth/setup.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/pages/api/check-agent.js +2 -2
  190. package/.next/standalone/.next/server/pages/api/check-agent.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/pages/api/check-claude.js +2 -2
  192. package/.next/standalone/.next/server/pages/api/check-claude.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/pages/api/cli/api-guide.js +1 -1
  194. package/.next/standalone/.next/server/pages/api/cli/api-guide.js.nft.json +1 -1
  195. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/console.js +2 -2
  196. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/console.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/eval.js +2 -2
  198. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/eval.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/network.js +2 -2
  200. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/network.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/screenshot.js +2 -2
  202. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/screenshot.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/url.js +2 -2
  204. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/browser/url.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js +3 -3
  206. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/send.js +3 -3
  208. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/send.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/status.js +3 -3
  210. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/status.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId].js +3 -3
  212. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId].js.nft.json +1 -1
  213. package/.next/standalone/.next/server/pages/api/cli/tabs.js +2 -2
  214. package/.next/standalone/.next/server/pages/api/cli/tabs.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/pages/api/cli/workspaces.js +2 -2
  216. package/.next/standalone/.next/server/pages/api/cli/workspaces.js.nft.json +1 -1
  217. package/.next/standalone/.next/server/pages/api/codex/launch-args.js +4 -4
  218. package/.next/standalone/.next/server/pages/api/codex/launch-args.js.nft.json +1 -1
  219. package/.next/standalone/.next/server/pages/api/codex/launch-command.js +2 -2
  220. package/.next/standalone/.next/server/pages/api/codex/launch-command.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/pages/api/codex/sessions.js +2 -2
  222. package/.next/standalone/.next/server/pages/api/codex/sessions.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/pages/api/config.js +1 -1
  224. package/.next/standalone/.next/server/pages/api/config.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/pages/api/git/branch.js +2 -1
  226. package/.next/standalone/.next/server/pages/api/git/branch.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/pages/api/git/status.js +2 -1
  228. package/.next/standalone/.next/server/pages/api/git/status.js.nft.json +1 -1
  229. package/.next/standalone/.next/server/pages/api/git/sync.js +2 -1
  230. package/.next/standalone/.next/server/pages/api/git/sync.js.nft.json +1 -1
  231. package/.next/standalone/.next/server/pages/api/layout/commit-diff.js +2 -1
  232. package/.next/standalone/.next/server/pages/api/layout/commit-diff.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/pages/api/layout/cwd.js +2 -1
  234. package/.next/standalone/.next/server/pages/api/layout/cwd.js.nft.json +1 -1
  235. package/.next/standalone/.next/server/pages/api/layout/diff.js +2 -1
  236. package/.next/standalone/.next/server/pages/api/layout/diff.js.nft.json +1 -1
  237. package/.next/standalone/.next/server/pages/api/layout/file-content.js +2 -1
  238. package/.next/standalone/.next/server/pages/api/layout/file-content.js.nft.json +1 -1
  239. package/.next/standalone/.next/server/pages/api/layout/git-log.js +2 -1
  240. package/.next/standalone/.next/server/pages/api/layout/git-log.js.nft.json +1 -1
  241. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js +2 -2
  242. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js +4 -4
  244. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js.nft.json +1 -1
  245. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js +2 -2
  246. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js.nft.json +1 -1
  247. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js +6 -6
  248. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js.nft.json +1 -1
  249. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js +2 -2
  250. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js.nft.json +1 -1
  251. package/.next/standalone/.next/server/pages/api/layout/pane.js +2 -2
  252. package/.next/standalone/.next/server/pages/api/layout/pane.js.nft.json +1 -1
  253. package/.next/standalone/.next/server/pages/api/layout.js +2 -2
  254. package/.next/standalone/.next/server/pages/api/layout.js.nft.json +1 -1
  255. package/.next/standalone/.next/server/pages/api/message-history.js +2 -2
  256. package/.next/standalone/.next/server/pages/api/message-history.js.nft.json +1 -1
  257. package/.next/standalone/.next/server/pages/api/preflight/runtime.js +2 -2
  258. package/.next/standalone/.next/server/pages/api/preflight/runtime.js.nft.json +1 -1
  259. package/.next/standalone/.next/server/pages/api/push/vapid-key.js +1 -1
  260. package/.next/standalone/.next/server/pages/api/push/vapid-key.js.nft.json +1 -1
  261. package/.next/standalone/.next/server/pages/api/stats/aggregated.js +3 -3
  262. package/.next/standalone/.next/server/pages/api/stats/aggregated.js.nft.json +1 -1
  263. package/.next/standalone/.next/server/pages/api/stats/cache-status.js +2 -2
  264. package/.next/standalone/.next/server/pages/api/stats/cache-status.js.nft.json +1 -1
  265. package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js +2 -2
  266. package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js.nft.json +1 -1
  267. package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js +2 -2
  268. package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js.nft.json +1 -1
  269. package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js +4 -4
  270. package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js.nft.json +1 -1
  271. package/.next/standalone/.next/server/pages/api/stats/history.js +4 -4
  272. package/.next/standalone/.next/server/pages/api/stats/history.js.nft.json +1 -1
  273. package/.next/standalone/.next/server/pages/api/stats/overview.js +4 -4
  274. package/.next/standalone/.next/server/pages/api/stats/overview.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/pages/api/stats/projects.js +3 -3
  276. package/.next/standalone/.next/server/pages/api/stats/projects.js.nft.json +1 -1
  277. package/.next/standalone/.next/server/pages/api/stats/sessions.js +3 -3
  278. package/.next/standalone/.next/server/pages/api/stats/sessions.js.nft.json +1 -1
  279. package/.next/standalone/.next/server/pages/api/stats/uptime.js +4 -4
  280. package/.next/standalone/.next/server/pages/api/stats/uptime.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/pages/api/status/agent-launch.js +4 -4
  282. package/.next/standalone/.next/server/pages/api/status/agent-launch.js.nft.json +1 -1
  283. package/.next/standalone/.next/server/pages/api/status/hook.js +5 -5
  284. package/.next/standalone/.next/server/pages/api/status/hook.js.nft.json +1 -1
  285. package/.next/standalone/.next/server/pages/api/status/statusline.js +9 -9
  286. package/.next/standalone/.next/server/pages/api/status/statusline.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js +2 -1
  288. package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js.nft.json +1 -1
  289. package/.next/standalone/.next/server/pages/api/timeline/sessions.js +2 -2
  290. package/.next/standalone/.next/server/pages/api/timeline/sessions.js.nft.json +1 -1
  291. package/.next/standalone/.next/server/pages/api/tmux/capture.js +2 -1
  292. package/.next/standalone/.next/server/pages/api/tmux/capture.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/pages/api/tmux/info.js +2 -1
  294. package/.next/standalone/.next/server/pages/api/tmux/info.js.nft.json +1 -1
  295. package/.next/standalone/.next/server/pages/api/tmux/permission-options.js +2 -2
  296. package/.next/standalone/.next/server/pages/api/tmux/permission-options.js.nft.json +1 -1
  297. package/.next/standalone/.next/server/pages/api/tmux/plan-options.js +2 -2
  298. package/.next/standalone/.next/server/pages/api/tmux/plan-options.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js +4 -4
  300. package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js.nft.json +1 -1
  301. package/.next/standalone/.next/server/pages/api/tmux/reset.js +3 -3
  302. package/.next/standalone/.next/server/pages/api/tmux/reset.js.nft.json +1 -1
  303. package/.next/standalone/.next/server/pages/api/tmux/send-input.js +2 -1
  304. package/.next/standalone/.next/server/pages/api/tmux/send-input.js.nft.json +1 -1
  305. package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js +2 -2
  306. package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js.nft.json +1 -1
  307. package/.next/standalone/.next/server/pages/api/workspace/active.js +2 -2
  308. package/.next/standalone/.next/server/pages/api/workspace/active.js.nft.json +1 -1
  309. package/.next/standalone/.next/server/pages/api/workspace/group/[groupId].js +2 -2
  310. package/.next/standalone/.next/server/pages/api/workspace/group/[groupId].js.nft.json +1 -1
  311. package/.next/standalone/.next/server/pages/api/workspace/group/reorder.js +2 -2
  312. package/.next/standalone/.next/server/pages/api/workspace/group/reorder.js.nft.json +1 -1
  313. package/.next/standalone/.next/server/pages/api/workspace/group.js +2 -2
  314. package/.next/standalone/.next/server/pages/api/workspace/group.js.nft.json +1 -1
  315. package/.next/standalone/.next/server/pages/api/workspace/reorder.js +2 -2
  316. package/.next/standalone/.next/server/pages/api/workspace/reorder.js.nft.json +1 -1
  317. package/.next/standalone/.next/server/pages/api/workspace/validate.js +2 -2
  318. package/.next/standalone/.next/server/pages/api/workspace/validate.js.nft.json +1 -1
  319. package/.next/standalone/.next/server/pages/api/workspace.js +3 -3
  320. package/.next/standalone/.next/server/pages/api/workspace.js.nft.json +1 -1
  321. package/.next/standalone/.next/server/pages/de/404.html +1 -1
  322. package/.next/standalone/.next/server/pages/de/500.html +1 -1
  323. package/.next/standalone/.next/server/pages/en/404.html +1 -1
  324. package/.next/standalone/.next/server/pages/en/500.html +1 -1
  325. package/.next/standalone/.next/server/pages/es/404.html +1 -1
  326. package/.next/standalone/.next/server/pages/es/500.html +1 -1
  327. package/.next/standalone/.next/server/pages/fr/404.html +1 -1
  328. package/.next/standalone/.next/server/pages/fr/500.html +1 -1
  329. package/.next/standalone/.next/server/pages/index/build-manifest.json +20 -20
  330. package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
  331. package/.next/standalone/.next/server/pages/index/react-loadable-manifest.json +12 -12
  332. package/.next/standalone/.next/server/pages/index.js +19 -18
  333. package/.next/standalone/.next/server/pages/index.js.nft.json +1 -1
  334. package/.next/standalone/.next/server/pages/ja/404.html +1 -1
  335. package/.next/standalone/.next/server/pages/ja/500.html +1 -1
  336. package/.next/standalone/.next/server/pages/ko/404.html +1 -1
  337. package/.next/standalone/.next/server/pages/ko/500.html +1 -1
  338. package/.next/standalone/.next/server/pages/login/build-manifest.json +12 -12
  339. package/.next/standalone/.next/server/pages/login/client-build-manifest.json +1 -1
  340. package/.next/standalone/.next/server/pages/login.js +16 -15
  341. package/.next/standalone/.next/server/pages/login.js.nft.json +1 -1
  342. package/.next/standalone/.next/server/pages/pt-BR/404.html +1 -1
  343. package/.next/standalone/.next/server/pages/pt-BR/500.html +1 -1
  344. package/.next/standalone/.next/server/pages/reports/build-manifest.json +20 -20
  345. package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
  346. package/.next/standalone/.next/server/pages/reports/react-loadable-manifest.json +2 -2
  347. package/.next/standalone/.next/server/pages/reports.js +21 -20
  348. package/.next/standalone/.next/server/pages/reports.js.nft.json +1 -1
  349. package/.next/standalone/.next/server/pages/reset/build-manifest.json +3 -3
  350. package/.next/standalone/.next/server/pages/reset/client-build-manifest.json +1 -1
  351. package/.next/standalone/.next/server/pages/reset.js +8 -7
  352. package/.next/standalone/.next/server/pages/reset.js.nft.json +1 -1
  353. package/.next/standalone/.next/server/pages/ru/404.html +1 -1
  354. package/.next/standalone/.next/server/pages/ru/500.html +1 -1
  355. package/.next/standalone/.next/server/pages/stats/build-manifest.json +21 -21
  356. package/.next/standalone/.next/server/pages/stats/client-build-manifest.json +1 -1
  357. package/.next/standalone/.next/server/pages/stats/react-loadable-manifest.json +15 -15
  358. package/.next/standalone/.next/server/pages/stats.js +21 -20
  359. package/.next/standalone/.next/server/pages/stats.js.nft.json +1 -1
  360. package/.next/standalone/.next/server/pages/tools-required/build-manifest.json +7 -7
  361. package/.next/standalone/.next/server/pages/tools-required/client-build-manifest.json +1 -1
  362. package/.next/standalone/.next/server/pages/tools-required.js +12 -11
  363. package/.next/standalone/.next/server/pages/tools-required.js.nft.json +1 -1
  364. package/.next/standalone/.next/server/pages/tr/404.html +1 -1
  365. package/.next/standalone/.next/server/pages/tr/500.html +1 -1
  366. package/.next/standalone/.next/server/pages/webview/build-manifest.json +20 -20
  367. package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
  368. package/.next/standalone/.next/server/pages/webview/react-loadable-manifest.json +2 -2
  369. package/.next/standalone/.next/server/pages/webview.js +21 -20
  370. package/.next/standalone/.next/server/pages/webview.js.nft.json +1 -1
  371. package/.next/standalone/.next/server/pages/zh-CN/404.html +1 -1
  372. package/.next/standalone/.next/server/pages/zh-CN/500.html +1 -1
  373. package/.next/standalone/.next/server/pages/zh-TW/404.html +1 -1
  374. package/.next/standalone/.next/server/pages/zh-TW/500.html +1 -1
  375. package/.next/standalone/.next/static/{pZhcwQ83aP87HDTIzzyJ6 → Fvh2ZScb-GvlCulutSHF4}/_buildManifest.js +8 -8
  376. package/.next/standalone/.next/static/chunks/0-_m9g0bmuw6r.js +1 -0
  377. package/.next/standalone/.next/static/chunks/0.sri97ob4xz_.js +1 -0
  378. package/.next/standalone/.next/static/chunks/0.vz-0q9sjiuw.js +1 -0
  379. package/.next/standalone/.next/static/chunks/0.wij9w6vcwhg.js +1 -0
  380. package/.next/standalone/.next/static/chunks/0.~3qhg2-u3ky.js +1 -0
  381. package/.next/standalone/.next/static/chunks/00oa6ti8pq8c5.js +1 -0
  382. package/.next/standalone/.next/static/chunks/00ubv7ksa49tb.js +1 -0
  383. package/.next/standalone/.next/static/chunks/00wzy83e7d7gj.js +24 -0
  384. package/.next/standalone/.next/static/chunks/{0p-l.y2j.t_~p.js → 034mn8n--pyn6.js} +1 -1
  385. package/.next/standalone/.next/static/chunks/03eq8u6303wiy.js +1 -0
  386. package/.next/standalone/.next/static/chunks/{0dp8cx7g1vggf.js → 03jt6vqn-xilm.js} +1 -1
  387. package/.next/standalone/.next/static/chunks/{0vr33-opwem7e.js → 04wf7.-7.-mpm.js} +1 -1
  388. package/.next/standalone/.next/static/chunks/05gba103lqp8r.js +1 -0
  389. package/.next/standalone/.next/static/chunks/07fcrp1t~2ivl.js +1 -0
  390. package/.next/standalone/.next/static/chunks/{02o84r01jsc.z.js → 07hp_eaak.fq-.js} +1 -1
  391. package/.next/standalone/.next/static/chunks/07lv2vmm9ayna.js +1 -0
  392. package/.next/standalone/.next/static/chunks/{07yop4v9xcwb9.js → 07qi73ciivwg_.js} +1 -1
  393. package/.next/standalone/.next/static/chunks/07vu4hx3.8d.3.js +1 -0
  394. package/.next/standalone/.next/static/chunks/09-h3tvhahhc~.js +24 -0
  395. package/.next/standalone/.next/static/chunks/09tnrtb~sgtjh.js +1 -0
  396. package/.next/standalone/.next/static/chunks/0_0bwcp~9lea8.js +1 -0
  397. package/.next/standalone/.next/static/chunks/0_ac9op.u-oja.js +5 -0
  398. package/.next/standalone/.next/static/chunks/{09psmnx8qch_s.js → 0_eqdbfwxb.~r.js} +1 -1
  399. package/.next/standalone/.next/static/chunks/0_ybvkygns8mh.js +1 -0
  400. package/.next/standalone/.next/static/chunks/{0ddh4qmi2awdq.js → 0byb_iu6a-~vd.js} +1 -1
  401. package/.next/standalone/.next/static/chunks/0c79f5oit0rws.js +1 -0
  402. package/.next/standalone/.next/static/chunks/{0f73mm-~6n8dq.js → 0ci366svlb59q.js} +14 -14
  403. package/.next/standalone/.next/static/chunks/0cy3p~8fa8p~8.js +1 -0
  404. package/.next/standalone/.next/static/chunks/0d8s09d-izdbq.js +6 -0
  405. package/.next/standalone/.next/static/chunks/0dqqxbo0n.jgl.js +1 -0
  406. package/.next/standalone/.next/static/chunks/0eledkadcprk3.js +1 -0
  407. package/.next/standalone/.next/static/chunks/0f04ma94_t32g.js +16 -0
  408. package/.next/standalone/.next/static/chunks/{0zgde2~kd4r.x.js → 0fe99e3vjh08f.js} +1 -1
  409. package/.next/standalone/.next/static/chunks/0fjl0qhyaiq8_.js +1 -0
  410. package/.next/standalone/.next/static/chunks/0fq~w9fqllgym.js +25 -0
  411. package/.next/standalone/.next/static/chunks/0h4_jo8dw7z07.js +1 -0
  412. package/.next/standalone/.next/static/chunks/0ho64go6.dk2j.js +1 -0
  413. package/.next/standalone/.next/static/chunks/0i.mswv9.fh.y.js +1 -0
  414. package/.next/standalone/.next/static/chunks/0jckr4.c_ydck.js +1 -0
  415. package/.next/standalone/.next/static/chunks/0jfnx~s5fhzop.js +1 -0
  416. package/.next/standalone/.next/static/chunks/0jlwnzphd~x2n.js +1 -0
  417. package/.next/standalone/.next/static/chunks/{09vwjd8b2iu9z.js → 0jrvo~4zrssmr.js} +1 -1
  418. package/.next/standalone/.next/static/chunks/0jux26vr_9f3j.js +16 -0
  419. package/.next/standalone/.next/static/chunks/{0szl_dovu0hgw.js → 0kbvx8fek6-wx.js} +1 -1
  420. package/.next/standalone/.next/static/chunks/0kgbmub.~n57_.js +1 -0
  421. package/.next/standalone/.next/static/chunks/{0-wv6sqgkc5wn.js → 0kmmaeod1s.vw.js} +1 -1
  422. package/.next/standalone/.next/static/chunks/0ky_fbnkmgw7q.js +1 -0
  423. package/.next/standalone/.next/static/chunks/0n.6yhpaevnz8.js +5 -0
  424. package/.next/standalone/.next/static/chunks/0nfea.nmg9qb1.js +1 -0
  425. package/.next/standalone/.next/static/chunks/{0kduo1cn7.pw0.js → 0nrajy77zpml1.js} +1 -1
  426. package/.next/standalone/.next/static/chunks/{038s7u_er9zkt.js → 0odkktrw2jut5.js} +1 -1
  427. package/.next/standalone/.next/static/chunks/0ot3qpr3oci.i.js +1 -0
  428. package/.next/standalone/.next/static/chunks/0oy0bdczs6jt8.js +1 -0
  429. package/.next/standalone/.next/static/chunks/0pag.t~kqlyp3.js +1 -0
  430. package/.next/standalone/.next/static/chunks/0pt89sjdo2ipr.js +1 -0
  431. package/.next/standalone/.next/static/chunks/{119llmw30g8ci.js → 0qwx.1h21gux4.js} +1 -1
  432. package/.next/standalone/.next/static/chunks/0rxc9kp0e79gt.js +1 -0
  433. package/.next/standalone/.next/static/chunks/{0suuptk6vxdav.js → 0s3as241o1mvo.js} +1 -1
  434. package/.next/standalone/.next/static/chunks/0sk1~xt8d6eoe.js +1 -0
  435. package/.next/standalone/.next/static/chunks/{04q2v0ev2_m6..js → 0sp1248q.hqf1.js} +14 -14
  436. package/.next/standalone/.next/static/chunks/0ssj2l353r77p.js +1 -0
  437. package/.next/standalone/.next/static/chunks/0swujoqiaycd1.js +16 -0
  438. package/.next/standalone/.next/static/chunks/0sz2qp_r_~kqm.js +1 -0
  439. package/.next/standalone/.next/static/chunks/0tcl5-wzvdvh5.js +1 -0
  440. package/.next/standalone/.next/static/chunks/{0laeq9nzminux.js → 0tg_xz8-y12iw.js} +1 -1
  441. package/.next/standalone/.next/static/chunks/{0nr0sc2w3n.t5.js → 0u0j5g_n8yfug.js} +1 -1
  442. package/.next/standalone/.next/static/chunks/{0n7jmg60eqx1a.js → 0u0tuq5t1k65o.js} +1 -1
  443. package/.next/standalone/.next/static/chunks/{09vzrni555ktn.js → 0u27983xn~~l-.js} +1 -1
  444. package/.next/standalone/.next/static/chunks/{0cir.n19rqu--.js → 0vb_8vnjxy5d5.js} +3 -3
  445. package/.next/standalone/.next/static/chunks/0vgi6hb2nblyr.js +1 -0
  446. package/.next/standalone/.next/static/chunks/0vp09ip~b_3vk.js +1 -0
  447. package/.next/standalone/.next/static/chunks/{0s.jetayn5dov.js → 0w4iuufjlhqgh.js} +1 -1
  448. package/.next/standalone/.next/static/chunks/0xkgug8yajfut.css +1 -0
  449. package/.next/standalone/.next/static/chunks/0y-6.52zsn5h_.js +1 -0
  450. package/.next/standalone/.next/static/chunks/0zjazky.ffn.5.js +1 -0
  451. package/.next/standalone/.next/static/chunks/{0g3stahwz~vh..js → 0zqs7o6kl6cen.js} +2 -2
  452. package/.next/standalone/.next/static/chunks/0z~czj2_621fq.js +1 -0
  453. package/.next/standalone/.next/static/chunks/0~j4u9753jf1d.js +1 -0
  454. package/.next/standalone/.next/static/chunks/0~ln-rekt-0tf.js +1 -0
  455. package/.next/standalone/.next/static/chunks/0~nc~.u7n58cn.js +1 -0
  456. package/.next/standalone/.next/static/chunks/0~np-8bf4t.r-.js +13 -0
  457. package/.next/standalone/.next/static/chunks/0~nt8sh~v.8xl.js +1 -0
  458. package/.next/standalone/.next/static/chunks/{0cf9hfx9kzqzb.js → 11qkofozxwb7-.js} +1 -1
  459. package/.next/standalone/.next/static/chunks/{0-0~b1fbfsoe~.js → 123.1tju3vua2.js} +1 -1
  460. package/.next/standalone/.next/static/chunks/12euqjbocagwt.js +12 -0
  461. package/.next/standalone/.next/static/chunks/12jwdr.-.hy1i.js +1 -0
  462. package/.next/standalone/.next/static/chunks/13o8~8tv2fn~3.js +1 -0
  463. package/.next/standalone/.next/static/chunks/14l28wdk~4pdq.js +24 -0
  464. package/.next/standalone/.next/static/chunks/15fxeeh5uenh3.js +1 -0
  465. package/.next/standalone/.next/static/chunks/15lb7b31.h8mg.js +1 -0
  466. package/.next/standalone/.next/static/chunks/15t.i9ua4pzb8.js +1 -0
  467. package/.next/standalone/.next/static/chunks/{10a.wwlnw50l5.js → 16ec1gvsgte06.js} +1 -1
  468. package/.next/standalone/.next/static/chunks/16eok15c7...d.js +1 -0
  469. package/.next/standalone/.next/static/chunks/17_b-3tuiu.b3.js +1 -0
  470. package/.next/standalone/.next/static/chunks/{0~o730huopa91.js → 17_gs~3jl212-.js} +1 -1
  471. package/.next/standalone/.next/static/chunks/17o5i93-p9y8p.js +1 -0
  472. package/.next/standalone/.next/static/chunks/180mwv20.t.r5.js +1 -0
  473. package/.next/standalone/.next/static/chunks/{0nqofghl.17w_.js → 18bw2zz5ejwop.js} +1 -1
  474. package/.next/standalone/.next/static/chunks/{turbopack-0heaqdupr4xj6.js → turbopack-02undbvb.95yf.js} +1 -1
  475. package/.next/standalone/.next/static/chunks/{turbopack-14fnzd5yh28gy.js → turbopack-0hhd0k47o3zqx.js} +1 -1
  476. package/.next/standalone/.next/static/chunks/{turbopack-0g2bivvnd2gyd.js → turbopack-0npdg9_tz9kge.js} +1 -1
  477. package/.next/standalone/.next/static/chunks/{turbopack-0w89gj59tho~b.js → turbopack-0vo-yp2tf_zye.js} +1 -1
  478. package/.next/standalone/.next/static/chunks/{turbopack-0rntg0~hh7h.0.js → turbopack-0x9g~5tbkb3z6.js} +1 -1
  479. package/.next/standalone/.next/static/chunks/{turbopack-0.6hkxuraykc4.js → turbopack-0ykf3nc1yfrio.js} +1 -1
  480. package/.next/standalone/.next/static/chunks/{turbopack-0~gn911-6yqk2.js → turbopack-0yuo~n90_i6mk.js} +1 -1
  481. package/.next/standalone/.next/static/chunks/{turbopack-0sk1uk-fkcqdx.js → turbopack-14age6cyn.1v1.js} +1 -1
  482. package/.next/standalone/.next/static/chunks/{turbopack-0jcfxeuy1ge85.js → turbopack-17_zn5.-e_pwc.js} +1 -1
  483. package/.next/standalone/messages/de/settings.json +21 -2
  484. package/.next/standalone/messages/de/timeline.json +2 -2
  485. package/.next/standalone/messages/en/settings.json +21 -2
  486. package/.next/standalone/messages/en/timeline.json +2 -2
  487. package/.next/standalone/messages/es/settings.json +21 -2
  488. package/.next/standalone/messages/es/timeline.json +2 -2
  489. package/.next/standalone/messages/fr/settings.json +21 -2
  490. package/.next/standalone/messages/fr/timeline.json +2 -2
  491. package/.next/standalone/messages/ja/settings.json +21 -2
  492. package/.next/standalone/messages/ja/timeline.json +2 -2
  493. package/.next/standalone/messages/ko/settings.json +21 -2
  494. package/.next/standalone/messages/ko/timeline.json +2 -2
  495. package/.next/standalone/messages/pt-BR/settings.json +21 -2
  496. package/.next/standalone/messages/pt-BR/timeline.json +2 -2
  497. package/.next/standalone/messages/ru/settings.json +21 -2
  498. package/.next/standalone/messages/ru/timeline.json +2 -2
  499. package/.next/standalone/messages/tr/settings.json +21 -2
  500. package/.next/standalone/messages/tr/timeline.json +2 -2
  501. package/.next/standalone/messages/zh-CN/settings.json +21 -2
  502. package/.next/standalone/messages/zh-CN/timeline.json +2 -2
  503. package/.next/standalone/messages/zh-TW/settings.json +21 -2
  504. package/.next/standalone/messages/zh-TW/timeline.json +2 -2
  505. package/.next/standalone/package.json +3 -18
  506. package/.next/standalone/server.js +1 -1
  507. package/dist/server.js +72 -37
  508. package/package.json +3 -18
  509. package/.next/standalone/.next/server/chunks/[externals]__07eo6bi._.js +0 -3
  510. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00blz4b._.js +0 -3
  511. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00erel2._.js +0 -3
  512. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00keyoc._.js +0 -3
  513. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00rusjd._.js +0 -3
  514. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07d3bxo._.js +0 -3
  515. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07o3h27._.js +0 -3
  516. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0a7jyyu._.js +0 -3
  517. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0an3.o.._.js +0 -3
  518. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ftuoz8._.js +0 -3
  519. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f~d9ug._.js +0 -3
  520. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ge78._._.js +0 -3
  521. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0il~az0._.js +0 -3
  522. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0imsr4v._.js +0 -3
  523. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j.h25r._.js +0 -3
  524. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j.iwzl._.js +0 -3
  525. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jnxiiv._.js +0 -3
  526. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jzp9~o._.js +0 -3
  527. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0k-me_v._.js +0 -3
  528. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l5~4k1._.js +0 -3
  529. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mq5lip._.js +0 -3
  530. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nh5fcb._.js +0 -3
  531. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nwq7wo._.js +0 -3
  532. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nzphpn._.js +0 -5
  533. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qslqkf._.js +0 -3
  534. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u_xzjy._.js +0 -3
  535. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uf.iy5._.js +0 -3
  536. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0v9vm~c._.js +0 -3
  537. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vdn0s8._.js +0 -3
  538. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vr68v2._.js +0 -3
  539. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xg~7a2._.js +0 -3
  540. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xoflea._.js +0 -3
  541. package/.next/standalone/.next/server/chunks/[root-of-the-server]__108dnsu._.js +0 -3
  542. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12t3f_q._.js +0 -3
  543. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13e34kx._.js +0 -3
  544. package/.next/standalone/.next/server/chunks/_0-mzwe.._.js +0 -3
  545. package/.next/standalone/.next/server/chunks/_00w4xwx._.js +0 -3
  546. package/.next/standalone/.next/server/chunks/_00xyelm._.js +0 -3
  547. package/.next/standalone/.next/server/chunks/_019w2er._.js +0 -3
  548. package/.next/standalone/.next/server/chunks/_01shkub._.js +0 -3
  549. package/.next/standalone/.next/server/chunks/_048rfcr._.js +0 -3
  550. package/.next/standalone/.next/server/chunks/_04tsf.p._.js +0 -3
  551. package/.next/standalone/.next/server/chunks/_04wz5fx._.js +0 -3
  552. package/.next/standalone/.next/server/chunks/_05xvbu4._.js +0 -3
  553. package/.next/standalone/.next/server/chunks/_06ntp-s._.js +0 -3
  554. package/.next/standalone/.next/server/chunks/_0763djt._.js +0 -3
  555. package/.next/standalone/.next/server/chunks/_07dkduh._.js +0 -3
  556. package/.next/standalone/.next/server/chunks/_07g1_zx._.js +0 -3
  557. package/.next/standalone/.next/server/chunks/_08hfr9b._.js +0 -3
  558. package/.next/standalone/.next/server/chunks/_0_7my__._.js +0 -3
  559. package/.next/standalone/.next/server/chunks/_0_wofwd._.js +0 -3
  560. package/.next/standalone/.next/server/chunks/_0f2px04._.js +0 -3
  561. package/.next/standalone/.next/server/chunks/_0j.srxq._.js +0 -3
  562. package/.next/standalone/.next/server/chunks/_0py_7vt._.js +0 -3
  563. package/.next/standalone/.next/server/chunks/_0r3d5qz._.js +0 -3
  564. package/.next/standalone/.next/server/chunks/_0rh64c3._.js +0 -3
  565. package/.next/standalone/.next/server/chunks/_0swnrzn._.js +0 -3
  566. package/.next/standalone/.next/server/chunks/_0w-k~4g._.js +0 -3
  567. package/.next/standalone/.next/server/chunks/_0y9vgfm._.js +0 -3
  568. package/.next/standalone/.next/server/chunks/_0zym6f2._.js +0 -3
  569. package/.next/standalone/.next/server/chunks/_10i3z4~._.js +0 -3
  570. package/.next/standalone/.next/server/chunks/_13_e4ue._.js +0 -3
  571. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__023cjc5._.js +0 -3
  572. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08dxtof._.js +0 -3
  573. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0glt298._.js +0 -3
  574. package/.next/standalone/.next/server/chunks/ssr/_0-9ezhb._.js +0 -3
  575. package/.next/standalone/.next/server/chunks/ssr/_00zsk6a._.js +0 -3
  576. package/.next/standalone/.next/server/chunks/ssr/_018tm~n._.js +0 -3
  577. package/.next/standalone/.next/server/chunks/ssr/_01l~by9._.js +0 -3
  578. package/.next/standalone/.next/server/chunks/ssr/_02rms4q._.js +0 -3
  579. package/.next/standalone/.next/server/chunks/ssr/_05bq96_._.js +0 -3
  580. package/.next/standalone/.next/server/chunks/ssr/_06_8vkn._.js +0 -18
  581. package/.next/standalone/.next/server/chunks/ssr/_078y4dk._.js +0 -3
  582. package/.next/standalone/.next/server/chunks/ssr/_0_b1pqf._.js +0 -3
  583. package/.next/standalone/.next/server/chunks/ssr/_0fota2a._.js +0 -3
  584. package/.next/standalone/.next/server/chunks/ssr/_0hmni4d._.js +0 -3
  585. package/.next/standalone/.next/server/chunks/ssr/_0j87~j9._.js +0 -3
  586. package/.next/standalone/.next/server/chunks/ssr/_0m6flec._.js +0 -18
  587. package/.next/standalone/.next/server/chunks/ssr/_0nbe6mv._.js +0 -3
  588. package/.next/standalone/.next/server/chunks/ssr/_0o0~1bt._.js +0 -3
  589. package/.next/standalone/.next/server/chunks/ssr/_0pg-q18._.js +0 -3
  590. package/.next/standalone/.next/server/chunks/ssr/_0qov9e_._.js +0 -3
  591. package/.next/standalone/.next/server/chunks/ssr/_0w.1ts8._.js +0 -3
  592. package/.next/standalone/.next/server/chunks/ssr/_0w6jc9p._.js +0 -3
  593. package/.next/standalone/.next/server/chunks/ssr/_0xdbgmz._.js +0 -3
  594. package/.next/standalone/.next/server/chunks/ssr/_0z4bg3i._.js +0 -3
  595. package/.next/standalone/.next/server/chunks/ssr/_1289s74._.js +0 -3
  596. package/.next/standalone/.next/server/chunks/ssr/node_modules_0_2gaq0._.js +0 -3
  597. package/.next/standalone/.next/server/chunks/ssr/node_modules_0ydhwnx._.js +0 -3
  598. package/.next/standalone/.next/server/chunks/ssr/node_modules_0~y8-_1._.js +0 -7
  599. package/.next/standalone/.next/server/chunks/ssr/node_modules_105or.6._.js +0 -7
  600. package/.next/standalone/.next/server/chunks/ssr/node_modules_1294wzs._.js +0 -3
  601. package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_030gj7p._.js +0 -3
  602. package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_04tdvwp._.js +0 -3
  603. package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_0bdox2f._.js +0 -3
  604. package/.next/standalone/.next/static/chunks/0.4j~sc70rsrv.js +0 -1
  605. package/.next/standalone/.next/static/chunks/0.p~i94j58w8~.js +0 -1
  606. package/.next/standalone/.next/static/chunks/0.znxwgo-re2m.js +0 -1
  607. package/.next/standalone/.next/static/chunks/01.oujz.z9cq..js +0 -1
  608. package/.next/standalone/.next/static/chunks/0176ysv-agwwx.js +0 -1
  609. package/.next/standalone/.next/static/chunks/01fkwofcdqa6f.js +0 -1
  610. package/.next/standalone/.next/static/chunks/031unywm42_xs.js +0 -1
  611. package/.next/standalone/.next/static/chunks/034iwnjckh0il.js +0 -5
  612. package/.next/standalone/.next/static/chunks/03s5e91.zrsi_.js +0 -16
  613. package/.next/standalone/.next/static/chunks/04h2nxywvycry.js +0 -1
  614. package/.next/standalone/.next/static/chunks/051z~faikiw.t.js +0 -1
  615. package/.next/standalone/.next/static/chunks/059bbrow.p4tj.js +0 -1
  616. package/.next/standalone/.next/static/chunks/05tuw5nb50jqc.js +0 -1
  617. package/.next/standalone/.next/static/chunks/05zk.ks4roh-4.js +0 -24
  618. package/.next/standalone/.next/static/chunks/075ypo7pvlqvz.js +0 -1
  619. package/.next/standalone/.next/static/chunks/094_-.5.ue3p4.js +0 -1
  620. package/.next/standalone/.next/static/chunks/09ntfl7b8vh1y.js +0 -1
  621. package/.next/standalone/.next/static/chunks/0_7~rgbkmfo_p.js +0 -1
  622. package/.next/standalone/.next/static/chunks/0_psc1~qmka.m.js +0 -12
  623. package/.next/standalone/.next/static/chunks/0amz67ga8kcr7.js +0 -1
  624. package/.next/standalone/.next/static/chunks/0ap~c~__qw2_0.js +0 -25
  625. package/.next/standalone/.next/static/chunks/0b__~uq5xxl7i.js +0 -1
  626. package/.next/standalone/.next/static/chunks/0celh22a.~-u6.js +0 -1
  627. package/.next/standalone/.next/static/chunks/0do_uad33n8hv.js +0 -1
  628. package/.next/standalone/.next/static/chunks/0dwxj97xm70gv.js +0 -1
  629. package/.next/standalone/.next/static/chunks/0euxle0n3zjm3.js +0 -1
  630. package/.next/standalone/.next/static/chunks/0fax5v7rwhm7g.js +0 -6
  631. package/.next/standalone/.next/static/chunks/0fj1a4qnwy9s3.js +0 -1
  632. package/.next/standalone/.next/static/chunks/0g6r03ctl6d0y.js +0 -1
  633. package/.next/standalone/.next/static/chunks/0gfoib7v3q4k_.js +0 -1
  634. package/.next/standalone/.next/static/chunks/0hrsfwzxhrdg9.js +0 -1
  635. package/.next/standalone/.next/static/chunks/0jml98og5gb-~.js +0 -1
  636. package/.next/standalone/.next/static/chunks/0k-8shbo0tie5.js +0 -1
  637. package/.next/standalone/.next/static/chunks/0kep81gqgj5f5.js +0 -24
  638. package/.next/standalone/.next/static/chunks/0kriln8d9.mdo.js +0 -1
  639. package/.next/standalone/.next/static/chunks/0l.88yoxq6tq8.js +0 -24
  640. package/.next/standalone/.next/static/chunks/0lrjdru2bjp.x.js +0 -1
  641. package/.next/standalone/.next/static/chunks/0m4185ccd6adw.js +0 -1
  642. package/.next/standalone/.next/static/chunks/0nm1wy7i1z64_.js +0 -1
  643. package/.next/standalone/.next/static/chunks/0o1duxjxx_ar8.css +0 -1
  644. package/.next/standalone/.next/static/chunks/0o24wzcc3lhqj.js +0 -1
  645. package/.next/standalone/.next/static/chunks/0oh5xnzizgxt1.js +0 -1
  646. package/.next/standalone/.next/static/chunks/0oj36.r5qgu_7.js +0 -1
  647. package/.next/standalone/.next/static/chunks/0p2m6i37_wprv.js +0 -1
  648. package/.next/standalone/.next/static/chunks/0pojknlc_-2a2.js +0 -1
  649. package/.next/standalone/.next/static/chunks/0pyrh4zs52aog.js +0 -1
  650. package/.next/standalone/.next/static/chunks/0qz-agdkp9v1q.js +0 -16
  651. package/.next/standalone/.next/static/chunks/0t5w4x7owhfbe.js +0 -1
  652. package/.next/standalone/.next/static/chunks/0tmyyb67fvkg1.js +0 -1
  653. package/.next/standalone/.next/static/chunks/0un7lj6-.1ad3.js +0 -5
  654. package/.next/standalone/.next/static/chunks/0v1teptb865rv.js +0 -1
  655. package/.next/standalone/.next/static/chunks/0vdw2~trmzg71.js +0 -1
  656. package/.next/standalone/.next/static/chunks/0x2nrv0y7ik9o.js +0 -1
  657. package/.next/standalone/.next/static/chunks/0x9prsaq~w.t-.js +0 -1
  658. package/.next/standalone/.next/static/chunks/0xa1.t1vj1mw0.js +0 -1
  659. package/.next/standalone/.next/static/chunks/0xfp8sfehtui9.js +0 -1
  660. package/.next/standalone/.next/static/chunks/0y.tsl2t9e.n..js +0 -1
  661. package/.next/standalone/.next/static/chunks/0zj5rfbadmr-8.js +0 -1
  662. package/.next/standalone/.next/static/chunks/0zkmymf6bhpsj.js +0 -1
  663. package/.next/standalone/.next/static/chunks/0~-0t4i~p3pcf.js +0 -1
  664. package/.next/standalone/.next/static/chunks/0~2x5.s5syxpx.js +0 -1
  665. package/.next/standalone/.next/static/chunks/12f3vk2rnkb8u.js +0 -13
  666. package/.next/standalone/.next/static/chunks/14kx686__yikg.js +0 -1
  667. package/.next/standalone/.next/static/chunks/14vposxx99rq4.js +0 -1
  668. package/.next/standalone/.next/static/chunks/1617_g18pxhs7.js +0 -1
  669. package/.next/standalone/.next/static/chunks/166~a4sl8v944.js +0 -1
  670. package/.next/standalone/.next/static/chunks/168.xhj-0lt8a.js +0 -16
  671. package/.next/standalone/.next/static/chunks/179vwj~zm1gya.js +0 -1
  672. package/.next/standalone/.next/static/chunks/17d9mnk-k8oqi.js +0 -1
  673. package/.next/standalone/.next/static/chunks/17z_vu-9k57ay.js +0 -1
  674. /package/.next/standalone/.next/static/{pZhcwQ83aP87HDTIzzyJ6 → Fvh2ZScb-GvlCulutSHF4}/_clientMiddlewareManifest.js +0 -0
  675. /package/.next/standalone/.next/static/{pZhcwQ83aP87HDTIzzyJ6 → Fvh2ZScb-GvlCulutSHF4}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),l=e.i(666126),n=e.i(825265),u=e.i(804767),d=e.i(282992);let c=(0,o.createLogger)("workspace"),p="Workspace ",f=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},w=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(w,"workspaces.json"),g=r.default.join(w,"layout.json"),h=r.default.join(w,"tabs.json"),v=globalThis;v.__purplemuxWorkspaceLock||(v.__purplemuxWorkspaceLock=Promise.resolve());let m=async e=>{let t,r=new Promise(e=>{t=e}),a=v.__purplemuxWorkspaceLock;v.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),I=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{c.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},x=async e=>{let r;r=b(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else i.push(t)}let s=[];for(let e of t){let t=a.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,r);let{workspaces:a,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(v.__purplemuxWorkspacesContentCache===u)return;e.updatedAt=new Date().toISOString();let d=y+".tmp";try{await t.default.writeFile(d,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(d,y)}catch(e){throw await t.default.unlink(d).catch(()=>{}),e}v.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},S=async()=>{let e=await (0,n.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,n.resolveLayoutDir)(r),{recursive:!0}),await (0,n.writeLayoutFile)(e,(0,n.resolveLayoutFile)(r));let i={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await x(i),c.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},P=async()=>{try{let e=await t.default.readFile(h,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return c.info("tabs.json → layout.json migration complete"),await S()}catch{return null}},W=async()=>{await t.default.mkdir(r.default.join(w,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await S():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await P())),!e){let t=k();await x(t),e=t,c.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,n.resolveLayoutFile)(t.id),r=await (0,n.readLayoutFile)(e);if(!r){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,n.createDefaultLayout)(t.id,t.directories[0]),await (0,n.writeLayoutFile)(r,e);continue}let i=(0,u.collectAllTabs)(r.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=a.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,n.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,n.writeLayoutFile)(r,e)}catch(e){c.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},_=async()=>{let e=await I();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},j=async()=>{let e=await I();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},A=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},q=async(e,r,a)=>m(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await I()??k(),l=`ws-${(0,i.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(p)){let e=parseInt(r.name.slice(p.length),10);e>t&&(t=e)}return`${p}${t+1}`})(o.workspaces),d=await (0,n.createDefaultLayout)(l,e,a);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(d,(0,n.resolveLayoutFile)(l));let w={id:l,name:u,directories:[e]};return o.workspaces.push(w),await x(o),await f(w),c.debug(`Created: ${l} (${u}, ${e})`),w}),T=async e=>m(async()=>{let t=await I()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,n.readLayoutFile)((0,n.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,n.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await x(t),c.info(`Deleted: ${e} (${a.name})`),!0}),$=async(e,t)=>m(async()=>{let r=await I();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await x(r),await f(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),C=async e=>m(async()=>{let t=await I()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await x(t)}),F=async(e,t)=>m(async()=>{let r=await I();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await x(r),await f(a))}),L=async e=>m(async()=>{let t=await I()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await x(t),!0)}),D=async e=>m(async()=>{let t=await I()??k(),r=b(t),a=e.trim()||`Group ${r.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:a,collapsed:!1};return r.push(s),await x(t),c.debug(`Group created: ${s.id} (${s.name})`),s}),N=async(e,t)=>m(async()=>{let r=await I();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let i=t.trim();return i?(a.name=i,await x(r),{...a}):a}),E=async(e,t)=>m(async()=>{let r=await I();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await x(r),!0))}),B=async e=>m(async()=>{let t=await I();if(!t)return!1;let r=b(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await x(t),c.info(`Group ungrouped: ${e}`),!0}),R=async e=>m(async()=>{let t=await I();if(!t)return!1;let r=b(t),a=new Map(r.map(e=>[e.id,e])),i=[];for(let t of e){let e=a.get(t);if(!e)return!1;i.push(e)}return i.length===r.length&&(t.groups=i,await x(t),!0)}),G=async(e,t)=>m(async()=>{let r=await I();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let i=new Set((r.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(a.groupId??null)===s||(a.groupId=s,await x(r),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,D,"createWorkspace",0,q,"deleteWorkspace",0,T,"getActiveWorkspaceId",0,j,"getWorkspaceById",0,A,"getWorkspaces",0,_,"initWorkspaceStore",0,W,"renameGroup",0,N,"renameWorkspace",0,$,"reorderGroups",0,R,"reorderWorkspaces",0,L,"setGroupCollapsed",0,E,"setWorkspaceGroup",0,G,"ungroupGroup",0,B,"updateActive",0,C,"updateWorkspaceDirectories",0,F,"validateDirectory",0,M],322429)},319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},853932,e=>{"use strict";var t=e.i(282992);let r={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},a={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},i=async(e,i)=>{let s=(0,t.listProviders)(),o=s.length>0;for(let t of s){let r=await t.detectActiveSession(e,i);if("running"===r.status)return{provider:t,info:r};"not-installed"!==r.status&&(o=!1)}return{provider:null,info:o?a:r}};e.s(["detectAnyActiveSession",0,i])},462180,e=>{"use strict";var t=e.i(798415),r=e.i(751905),a=e.i(282992);e.i(853932),(0,a.registerProvider)(t.claudeProvider),(0,a.registerProvider)(r.codexProvider),e.s([])},871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),a=e.i(814747),i=e.i(446786);let s=a.default.join(i.default.homedir(),".purplemux","cli-token"),o=globalThis;e.s(["verifyCliToken",0,e=>{let i=e.headers["x-pmux-token"];var l="string"==typeof i?i:void 0;if(!l)return!1;let n=(()=>{if(o.__ptCliToken)return o.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(s,"utf-8").trim()||null}catch{return null}})();if(e)return o.__ptCliToken=e,e;let i=(0,t.randomBytes)(32).toString("hex");o.__ptCliToken=i;try{r.default.mkdirSync(a.default.dirname(s),{recursive:!0}),r.default.writeFileSync(s,i,{mode:384})}catch{}return i})();return l.length===n.length&&(0,t.timingSafeEqual)(Buffer.from(l),Buffer.from(n))}])},200523,e=>{"use strict";var t=e.i(825265),r=e.i(804767),a=e.i(322429),i=e.i(871911);let s=async(e,i)=>{if(!await (0,a.getWorkspaceById)(e))return null;let s=await (0,t.getLayout)(e);for(let t of(0,r.collectPanes)(s.root)){let r=t.tabs.find(e=>e.id===i);if(r)return{workspaceId:e,paneId:t.id,tab:r}}return null},o=async e=>{let a=await (0,t.getLayout)(e);return(0,r.getFirstPaneId)(a.root)||null},l=async(e,t,r,a)=>{if(e.method!==r){t.setHeader("Allow",r),t.status(405).json({error:"Method not allowed"});return}if(!(0,i.verifyCliToken)(e))return void t.status(403).json({error:"Forbidden"});let o=e.query.tabId,l="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!l)return void t.status(400).json({error:"workspaceId is required"});let n=await s(l,o);if(!n)return void t.status(404).json({error:"Tab not found"});if("web-browser"!==n.tab.panelType)return void t.status(400).json({error:"Tab is not a web-browser panel"});let u=globalThis.__ptBrowserBridge??null;u?await a({tabId:o,bridge:u}):t.status(503).json({error:"Browser bridge unavailable (Electron-only feature)"})};e.s(["findTab",0,s,"resolveFirstPaneId",0,o,"withBrowserTab",0,l],200523)},928818,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(871911),o=e.i(200523),l=e.i(459015);e.i(462180);var n=e.i(282992);let u=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});if(!(0,s.verifyCliToken)(e))return t.status(403).json({error:"Forbidden"});let r=e.query.tabId,a="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!a)return t.status(400).json({error:"workspaceId is required"});let i=await (0,o.findTab)(a,r);if(!i)return t.status(404).json({error:"Tab not found"});let u=(0,n.getProviderByPanelType)(i.tab.panelType),d=u?.readSessionId(i.tab)??null;if(!await (0,l.hasSession)(i.tab.sessionName))return t.status(200).json({tabId:r,workspaceId:a,alive:!1,agentProviderId:u?.id??null,agentSessionId:d,claudeSessionId:d});let c=await (0,l.getPaneCurrentCommand)(i.tab.sessionName);return t.status(200).json({tabId:r,workspaceId:a,alive:!0,command:c,cliState:i.tab.cliState??null,agentProviderId:u?.id??null,agentSessionId:d,claudeSessionId:d})};e.s(["default",0,u],968326);var d=e.i(968326),c=e.i(7031),p=e.i(181927),f=e.i(846432);let w=(0,i.hoist)(d,"default"),y=(0,i.hoist)(d,"config"),g=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/status",pathname:"/api/cli/tabs/[tabId]/status",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,f.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/status";i=i.replace(/\/index$/,"")||"/";let s=await g.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:o,params:l,prerenderManifest:n,routerServerContext:u}=s;try{let t,a=e.method||"GET",s=(0,c.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==u?void 0:u.isWrappedByNextServer),w=g.instrumentationOnRequestError.bind(g),y=async d=>g.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:g.isDev,page:"/api/cli/tabs/[tabId]/status",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>w(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;d.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",o),t.updateName(e))}else d.updateName(`${a} ${i}`)});f&&d?await y(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:c.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!f))}catch(e){if(g.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,y,"default",0,w,"handler",0,h],928818)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0e6z0u6._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),n=e.i(666126),l=e.i(825265),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),x=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{p.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},I=async e=>{let r;r=b(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else i.push(t)}let s=[];for(let e of t){let t=a.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,r);let{workspaces:a,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(m.__purplemuxWorkspacesContentCache===u)return;e.updatedAt=new Date().toISOString();let d=y+".tmp";try{await t.default.writeFile(d,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(d,y)}catch(e){throw await t.default.unlink(d).catch(()=>{}),e}m.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},W=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(r),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.resolveLayoutFile)(r));let i={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await I(i),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},P=async()=>{try{let e=await t.default.readFile(h,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return p.info("tabs.json → layout.json migration complete"),await W()}catch{return null}},S=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await x();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await P())),!e){let t=k();await I(t),e=t,p.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,l.resolveLayoutFile)(t.id),r=await (0,l.readLayoutFile)(e);if(!r){p.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.writeLayoutFile)(r,e);continue}let i=(0,u.collectAllTabs)(r.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=a.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,l.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(r,e)}catch(e){p.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},A=async()=>{let e=await x();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},$=async()=>{let e=await x();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},_=async e=>{let t=await x();return t?.workspaces.find(t=>t.id===e)},j=async(e,r,a)=>v(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await x()??k(),n=`ws-${(0,i.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(c)){let e=parseInt(r.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,l.createDefaultLayout)(n,e,a);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let f={id:n,name:u,directories:[e]};return o.workspaces.push(f),await I(o),await w(f),p.debug(`Created: ${n} (${u}, ${e})`),f}),L=async e=>v(async()=>{let t=await x()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await I(t),p.info(`Deleted: ${e} (${a.name})`),!0}),q=async(e,t)=>v(async()=>{let r=await x();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await I(r),await w(a),p.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),D=async e=>v(async()=>{let t=await x()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await I(t)}),C=async(e,t)=>v(async()=>{let r=await x();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await I(r),await w(a))}),E=async e=>v(async()=>{let t=await x()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await I(t),!0)}),F=async e=>v(async()=>{let t=await x()??k(),r=b(t),a=e.trim()||`Group ${r.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:a,collapsed:!1};return r.push(s),await I(t),p.debug(`Group created: ${s.id} (${s.name})`),s}),N=async(e,t)=>v(async()=>{let r=await x();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let i=t.trim();return i?(a.name=i,await I(r),{...a}):a}),T=async(e,t)=>v(async()=>{let r=await x();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await I(r),!0))}),R=async e=>v(async()=>{let t=await x();if(!t)return!1;let r=b(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await I(t),p.info(`Group ungrouped: ${e}`),!0}),O=async e=>v(async()=>{let t=await x();if(!t)return!1;let r=b(t),a=new Map(r.map(e=>[e.id,e])),i=[];for(let t of e){let e=a.get(t);if(!e)return!1;i.push(e)}return i.length===r.length&&(t.groups=i,await I(t),!0)}),G=async(e,t)=>v(async()=>{let r=await x();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let i=new Set((r.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(a.groupId??null)===s||(a.groupId=s,await I(r),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,F,"createWorkspace",0,j,"deleteWorkspace",0,L,"getActiveWorkspaceId",0,$,"getWorkspaceById",0,_,"getWorkspaces",0,A,"initWorkspaceStore",0,S,"renameGroup",0,N,"renameWorkspace",0,q,"reorderGroups",0,O,"reorderWorkspaces",0,E,"setGroupCollapsed",0,T,"setWorkspaceGroup",0,G,"ungroupGroup",0,R,"updateActive",0,D,"updateWorkspaceDirectories",0,C,"validateDirectory",0,M],322429)},175662,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(825265),o=e.i(322429);let n=async(e,t)=>{let r=e.query.workspace||await (0,o.getActiveWorkspaceId)(),a=e.query.paneId;if("DELETE"===e.method){if(!r){let r=e.body?.sessions??[];return await (0,s.deletePane)(a,r),t.status(204).end()}let i=await (0,s.closePaneInLayout)(r,a);return i?t.status(200).json(i):t.status(404).json({error:"Pane not found"})}if("PATCH"===e.method){if(!r)return t.status(400).json({error:"No workspace found"});let{activeTabId:i}=e.body??{},o=await (0,s.patchPane)(r,a,{activeTabId:i});return o?t.status(200).json(o):t.status(404).json({error:"Target not found"})}return t.setHeader("Allow","DELETE, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,n],578980);var l=e.i(578980),u=e.i(7031),d=e.i(181927),p=e.i(846432);let c=(0,i.hoist)(l,"default"),w=(0,i.hoist)(l,"config"),f=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/layout/pane/[paneId]/index",pathname:"/api/layout/pane/[paneId]",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function y(e,r,a){a.requestMeta&&(0,p.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/pane/[paneId]/index";i=i.replace(/\/index$/,"")||"/";let s=await f.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:o,params:n,prerenderManifest:l,routerServerContext:c}=s;try{let t,a=e.method||"GET",s=(0,u.getTracer)(),p=s.getActiveScopeSpan(),w=!!(null==c?void 0:c.isWrappedByNextServer),y=f.instrumentationOnRequestError.bind(f),g=async u=>f.render(e,r,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:f.isDev,page:"/api/layout/pane/[paneId]/index",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;u.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",o),t.updateName(e))}else u.updateName(`${a} ${i}`)});w&&p?await g(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(d.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!w))}catch(e){if(f.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,w,"default",0,c,"handler",0,y],175662)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0erq9rf._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),l=e.i(666126),n=e.i(825265),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),x=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{p.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},W=async e=>{let r;r=b(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else i.push(t)}let s=[];for(let e of t){let t=a.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,r);let{workspaces:a,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(m.__purplemuxWorkspacesContentCache===u)return;e.updatedAt=new Date().toISOString();let d=y+".tmp";try{await t.default.writeFile(d,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(d,y)}catch(e){throw await t.default.unlink(d).catch(()=>{}),e}m.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},I=async()=>{let e=await (0,n.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,n.resolveLayoutDir)(r),{recursive:!0}),await (0,n.writeLayoutFile)(e,(0,n.resolveLayoutFile)(r));let i={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await W(i),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},S=async()=>{try{let e=await t.default.readFile(h,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return p.info("tabs.json → layout.json migration complete"),await I()}catch{return null}},P=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await x();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await I():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await S())),!e){let t=k();await W(t),e=t,p.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,n.resolveLayoutFile)(t.id),r=await (0,n.readLayoutFile)(e);if(!r){p.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,n.createDefaultLayout)(t.id,t.directories[0]),await (0,n.writeLayoutFile)(r,e);continue}let i=(0,u.collectAllTabs)(r.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=a.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,n.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,n.writeLayoutFile)(r,e)}catch(e){p.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},$=async()=>{let e=await x();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},_=async()=>{let e=await x();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},A=async e=>{let t=await x();return t?.workspaces.find(t=>t.id===e)},j=async(e,r,a)=>v(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await x()??k(),l=`ws-${(0,i.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(c)){let e=parseInt(r.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,n.createDefaultLayout)(l,e,a);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(d,(0,n.resolveLayoutFile)(l));let f={id:l,name:u,directories:[e]};return o.workspaces.push(f),await W(o),await w(f),p.debug(`Created: ${l} (${u}, ${e})`),f}),q=async e=>v(async()=>{let t=await x()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,n.readLayoutFile)((0,n.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,n.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await W(t),p.info(`Deleted: ${e} (${a.name})`),!0}),D=async(e,t)=>v(async()=>{let r=await x();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await W(r),await w(a),p.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),L=async e=>v(async()=>{let t=await x()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await W(t)}),C=async(e,t)=>v(async()=>{let r=await x();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await W(r),await w(a))}),F=async e=>v(async()=>{let t=await x()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await W(t),!0)}),N=async e=>v(async()=>{let t=await x()??k(),r=b(t),a=e.trim()||`Group ${r.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:a,collapsed:!1};return r.push(s),await W(t),p.debug(`Group created: ${s.id} (${s.name})`),s}),E=async(e,t)=>v(async()=>{let r=await x();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let i=t.trim();return i?(a.name=i,await W(r),{...a}):a}),R=async(e,t)=>v(async()=>{let r=await x();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await W(r),!0))}),G=async e=>v(async()=>{let t=await x();if(!t)return!1;let r=b(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await W(t),p.info(`Group ungrouped: ${e}`),!0}),T=async e=>v(async()=>{let t=await x();if(!t)return!1;let r=b(t),a=new Map(r.map(e=>[e.id,e])),i=[];for(let t of e){let e=a.get(t);if(!e)return!1;i.push(e)}return i.length===r.length&&(t.groups=i,await W(t),!0)}),O=async(e,t)=>v(async()=>{let r=await x();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let i=new Set((r.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(a.groupId??null)===s||(a.groupId=s,await W(r),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,N,"createWorkspace",0,j,"deleteWorkspace",0,q,"getActiveWorkspaceId",0,_,"getWorkspaceById",0,A,"getWorkspaces",0,$,"initWorkspaceStore",0,P,"renameGroup",0,E,"renameWorkspace",0,D,"reorderGroups",0,T,"reorderWorkspaces",0,F,"setGroupCollapsed",0,R,"setWorkspaceGroup",0,O,"ungroupGroup",0,G,"updateActive",0,L,"updateWorkspaceDirectories",0,C,"validateDirectory",0,M],322429)},950322,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(322429);let o=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.directory;if(!r)return t.status(400).json({error:"directory parameter required"});let a=await (0,s.validateDirectory)(r);return t.status(200).json(a)};e.s(["default",0,o],471501);var l=e.i(471501),n=e.i(7031),u=e.i(181927),d=e.i(846432);let p=(0,i.hoist)(l,"default"),c=(0,i.hoist)(l,"config"),w=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/workspace/validate",pathname:"/api/workspace/validate",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/workspace/validate";i=i.replace(/\/index$/,"")||"/";let s=await w.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:o,params:l,prerenderManifest:p,routerServerContext:c}=s;try{let t,a=e.method||"GET",s=(0,n.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==c?void 0:c.isWrappedByNextServer),y=w.instrumentationOnRequestError.bind(w),g=async n=>w.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:p.preview,propagateError:!1,dev:w.isDev,page:"/api/workspace/validate",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!n)return;n.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),n.updateName(e),t&&t!==n&&(t.setAttribute("http.route",o),t.updateName(e))}else n.updateName(`${a} ${i}`)});f&&d?await g(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:n.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!f))}catch(e){if(w.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,c,"default",0,p,"handler",0,f],950322)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0f-1scw._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),l=e.i(666126),n=e.i(825265),d=e.i(804767),u=e.i(282992);let c=(0,o.createLogger)("workspace"),p="Workspace ",w=async e=>{let t=[];for(let r of(0,u.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),m=r.default.join(f,"layout.json"),g=r.default.join(f,"tabs.json"),h=globalThis;h.__purplemuxWorkspaceLock||(h.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=h.__purplemuxWorkspaceLock;h.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),x=e=>(e.groups||(e.groups=[]),e.groups),b=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{c.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},I=async e=>{let r;r=x(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else i.push(t)}let s=[];for(let e of t){let t=a.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,r);let{workspaces:a,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n}=e,d=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(h.__purplemuxWorkspacesContentCache===d)return;e.updatedAt=new Date().toISOString();let u=y+".tmp";try{await t.default.writeFile(u,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(u,y)}catch(e){throw await t.default.unlink(u).catch(()=>{}),e}h.__purplemuxWorkspacesContentCache=d,(0,l.broadcastSync)({type:"workspace"})},P=async()=>{let e=await (0,n.readLayoutFile)(m);if(!e)return null;let r="ws-default";await t.default.mkdir((0,n.resolveLayoutDir)(r),{recursive:!0}),await (0,n.writeLayoutFile)(e,(0,n.resolveLayoutFile)(r));let i={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await I(i),c.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},S=async()=>{try{let e=await t.default.readFile(g,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=m+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,m)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return c.info("tabs.json → layout.json migration complete"),await P()}catch{return null}},A=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await b();if(!e&&(await t.default.access(m).then(()=>!0).catch(()=>!1)?e=await P():await t.default.access(g).then(()=>!0).catch(()=>!1)&&(e=await S())),!e){let t=k();await I(t),e=t,c.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,n.resolveLayoutFile)(t.id),r=await (0,n.readLayoutFile)(e);if(!r){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,n.createDefaultLayout)(t.id,t.directories[0]),await (0,n.writeLayoutFile)(r,e);continue}let i=(0,d.collectAllTabs)(r.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=a.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,n.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,n.writeLayoutFile)(r,e)}catch(e){c.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},W=async()=>{let e=await b();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},$=async()=>{let e=await b();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},_=async e=>{let t=await b();return t?.workspaces.find(t=>t.id===e)},j=async(e,r,a)=>v(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await b()??k(),l=`ws-${(0,i.nanoid)(6)}`,d=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(p)){let e=parseInt(r.name.slice(p.length),10);e>t&&(t=e)}return`${p}${t+1}`})(o.workspaces),u=await (0,n.createDefaultLayout)(l,e,a);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(u,(0,n.resolveLayoutFile)(l));let f={id:l,name:d,directories:[e]};return o.workspaces.push(f),await I(o),await w(f),c.debug(`Created: ${l} (${d}, ${e})`),f}),C=async e=>v(async()=>{let t=await b()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,n.readLayoutFile)((0,n.resolveLayoutFile)(e));if(i)for(let e of(0,d.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,n.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await I(t),c.info(`Deleted: ${e} (${a.name})`),!0}),D=async(e,t)=>v(async()=>{let r=await b();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await I(r),await w(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),L=async e=>v(async()=>{let t=await b()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await I(t)}),q=async(e,t)=>v(async()=>{let r=await b();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await I(r),await w(a))}),F=async e=>v(async()=>{let t=await b()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await I(t),!0)}),N=async e=>v(async()=>{let t=await b()??k(),r=x(t),a=e.trim()||`Group ${r.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:a,collapsed:!1};return r.push(s),await I(t),c.debug(`Group created: ${s.id} (${s.name})`),s}),T=async(e,t)=>v(async()=>{let r=await b();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let i=t.trim();return i?(a.name=i,await I(r),{...a}):a}),E=async(e,t)=>v(async()=>{let r=await b();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await I(r),!0))}),R=async e=>v(async()=>{let t=await b();if(!t)return!1;let r=x(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await I(t),c.info(`Group ungrouped: ${e}`),!0}),O=async e=>v(async()=>{let t=await b();if(!t)return!1;let r=x(t),a=new Map(r.map(e=>[e.id,e])),i=[];for(let t of e){let e=a.get(t);if(!e)return!1;i.push(e)}return i.length===r.length&&(t.groups=i,await I(t),!0)}),G=async(e,t)=>v(async()=>{let r=await b();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let i=new Set((r.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(a.groupId??null)===s||(a.groupId=s,await I(r),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,N,"createWorkspace",0,j,"deleteWorkspace",0,C,"getActiveWorkspaceId",0,$,"getWorkspaceById",0,_,"getWorkspaces",0,W,"initWorkspaceStore",0,A,"renameGroup",0,T,"renameWorkspace",0,D,"reorderGroups",0,O,"reorderWorkspaces",0,F,"setGroupCollapsed",0,E,"setWorkspaceGroup",0,G,"ungroupGroup",0,R,"updateActive",0,L,"updateWorkspaceDirectories",0,q,"validateDirectory",0,M],322429)},319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},853932,e=>{"use strict";var t=e.i(282992);let r={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},a={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},i=async(e,i)=>{let s=(0,t.listProviders)(),o=s.length>0;for(let t of s){let r=await t.detectActiveSession(e,i);if("running"===r.status)return{provider:t,info:r};"not-installed"!==r.status&&(o=!1)}return{provider:null,info:o?a:r}};e.s(["detectAnyActiveSession",0,i])},462180,e=>{"use strict";var t=e.i(798415),r=e.i(751905),a=e.i(282992);e.i(853932),(0,a.registerProvider)(t.claudeProvider),(0,a.registerProvider)(r.codexProvider),e.s([])},338823,e=>{"use strict";e.i(462180);var t=e.i(282992);let r=async e=>{let r=(0,t.getProviderByPanelType)(e);if(!r)return{ok:!0,provider:null};let a=await r.preflight();if(a.installed)return{ok:!0,provider:r};let i="claude"===r.id&&!!a.binaryPath;return{ok:!1,status:409,code:i?"agent-path-missing":"agent-not-installed",providerId:r.id,providerDisplayName:r.displayName,panelType:r.panelType,suggestedCommand:i?"claude-path":"claude"===r.id?"claude":null}};e.s(["checkAgentAvailabilityForPanelType",0,r,"toAgentAvailabilityError",0,e=>({error:e.code,providerId:e.providerId,providerDisplayName:e.providerDisplayName,panelType:e.panelType,suggestedCommand:e.suggestedCommand})])},324488,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(751905),o=e.i(338823),l=e.i(322429);let n=(0,e.i(25146).createLogger)("codex-launch-command"),d=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let r=e.body,a="string"==typeof r?.workspaceId&&r.workspaceId.trim()?r.workspaceId.trim():null,i="string"==typeof r?.resumeSessionId&&r.resumeSessionId.trim()?r.resumeSessionId.trim():null,d=a??await (0,l.getActiveWorkspaceId)();try{let e=await (0,o.checkAgentAvailabilityForPanelType)(s.codexProvider.panelType);if(!e.ok)return t.status(e.status).json((0,o.toAgentAvailabilityError)(e));let r=i?await s.codexProvider.buildResumeCommand(i,{workspaceId:d??void 0}):await s.codexProvider.buildLaunchCommand({workspaceId:d??void 0});return t.status(200).json({command:r})}catch(e){return n.error(`codex launch command build failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to build Codex launch command"})}};e.s(["default",0,d],841681);var u=e.i(841681),c=e.i(7031),p=e.i(181927),w=e.i(846432);let f=(0,i.hoist)(u,"default"),y=(0,i.hoist)(u,"config"),m=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/codex/launch-command",pathname:"/api/codex/launch-command",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function g(e,r,a){a.requestMeta&&(0,w.setRequestMeta)(e,a.requestMeta),m.isDev&&(0,w.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/codex/launch-command";i=i.replace(/\/index$/,"")||"/";let s=await m.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:o,params:l,prerenderManifest:n,routerServerContext:d}=s;try{let t,a=e.method||"GET",s=(0,c.getTracer)(),u=s.getActiveScopeSpan(),w=!!(null==d?void 0:d.isWrappedByNextServer),f=m.instrumentationOnRequestError.bind(m),y=async u=>m.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:m.isDev,page:"/api/codex/launch-command",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;u.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",o),t.updateName(e))}else u.updateName(`${a} ${i}`)});w&&u?await y(u):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:c.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!w))}catch(e){if(m.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,y,"default",0,f,"handler",0,g],324488)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0f0-oim._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),n=e.i(666126),l=e.i(825265),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",f=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},w=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(w,"workspaces.json"),g=r.default.join(w,"layout.json"),h=r.default.join(w,"tabs.json"),v=globalThis;v.__purplemuxWorkspaceLock||(v.__purplemuxWorkspaceLock=Promise.resolve());let m=async e=>{let t,r=new Promise(e=>{t=e}),a=v.__purplemuxWorkspaceLock;v.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),I=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{p.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},x=async e=>{let r;r=b(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else i.push(t)}let s=[];for(let e of t){let t=a.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,r);let{workspaces:a,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(v.__purplemuxWorkspacesContentCache===u)return;e.updatedAt=new Date().toISOString();let d=y+".tmp";try{await t.default.writeFile(d,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(d,y)}catch(e){throw await t.default.unlink(d).catch(()=>{}),e}v.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},P=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(r),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.resolveLayoutFile)(r));let i={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await x(i),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},S=async()=>{try{let e=await t.default.readFile(h,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return p.info("tabs.json → layout.json migration complete"),await P()}catch{return null}},W=async()=>{await t.default.mkdir(r.default.join(w,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await P():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await S())),!e){let t=k();await x(t),e=t,p.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,l.resolveLayoutFile)(t.id),r=await (0,l.readLayoutFile)(e);if(!r){p.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.writeLayoutFile)(r,e);continue}let i=(0,u.collectAllTabs)(r.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=a.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,l.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(r,e)}catch(e){p.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},T=async()=>{let e=await I();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},_=async()=>{let e=await I();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},j=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},A=async(e,r,a)=>m(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await I()??k(),n=`ws-${(0,i.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(c)){let e=parseInt(r.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,l.createDefaultLayout)(n,e,a);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let w={id:n,name:u,directories:[e]};return o.workspaces.push(w),await x(o),await f(w),p.debug(`Created: ${n} (${u}, ${e})`),w}),q=async e=>m(async()=>{let t=await I()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await x(t),p.info(`Deleted: ${e} (${a.name})`),!0}),$=async(e,t)=>m(async()=>{let r=await I();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await x(r),await f(a),p.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),L=async e=>m(async()=>{let t=await I()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await x(t)}),C=async(e,t)=>m(async()=>{let r=await I();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await x(r),await f(a))}),F=async e=>m(async()=>{let t=await I()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await x(t),!0)}),D=async e=>m(async()=>{let t=await I()??k(),r=b(t),a=e.trim()||`Group ${r.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:a,collapsed:!1};return r.push(s),await x(t),p.debug(`Group created: ${s.id} (${s.name})`),s}),E=async(e,t)=>m(async()=>{let r=await I();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let i=t.trim();return i?(a.name=i,await x(r),{...a}):a}),N=async(e,t)=>m(async()=>{let r=await I();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await x(r),!0))}),B=async e=>m(async()=>{let t=await I();if(!t)return!1;let r=b(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await x(t),p.info(`Group ungrouped: ${e}`),!0}),R=async e=>m(async()=>{let t=await I();if(!t)return!1;let r=b(t),a=new Map(r.map(e=>[e.id,e])),i=[];for(let t of e){let e=a.get(t);if(!e)return!1;i.push(e)}return i.length===r.length&&(t.groups=i,await x(t),!0)}),G=async(e,t)=>m(async()=>{let r=await I();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let i=new Set((r.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(a.groupId??null)===s||(a.groupId=s,await x(r),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,D,"createWorkspace",0,A,"deleteWorkspace",0,q,"getActiveWorkspaceId",0,_,"getWorkspaceById",0,j,"getWorkspaces",0,T,"initWorkspaceStore",0,W,"renameGroup",0,E,"renameWorkspace",0,$,"reorderGroups",0,R,"reorderWorkspaces",0,F,"setGroupCollapsed",0,N,"setWorkspaceGroup",0,G,"ungroupGroup",0,B,"updateActive",0,L,"updateWorkspaceDirectories",0,C,"validateDirectory",0,M],322429)},319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},853932,e=>{"use strict";var t=e.i(282992);let r={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},a={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},i=async(e,i)=>{let s=(0,t.listProviders)(),o=s.length>0;for(let t of s){let r=await t.detectActiveSession(e,i);if("running"===r.status)return{provider:t,info:r};"not-installed"!==r.status&&(o=!1)}return{provider:null,info:o?a:r}};e.s(["detectAnyActiveSession",0,i])},462180,e=>{"use strict";var t=e.i(798415),r=e.i(751905),a=e.i(282992);e.i(853932),(0,a.registerProvider)(t.claudeProvider),(0,a.registerProvider)(r.codexProvider),e.s([])},871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),a=e.i(814747),i=e.i(446786);let s=a.default.join(i.default.homedir(),".purplemux","cli-token"),o=globalThis;e.s(["verifyCliToken",0,e=>{let i=e.headers["x-pmux-token"];var n="string"==typeof i?i:void 0;if(!n)return!1;let l=(()=>{if(o.__ptCliToken)return o.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(s,"utf-8").trim()||null}catch{return null}})();if(e)return o.__ptCliToken=e,e;let i=(0,t.randomBytes)(32).toString("hex");o.__ptCliToken=i;try{r.default.mkdirSync(a.default.dirname(s),{recursive:!0}),r.default.writeFileSync(s,i,{mode:384})}catch{}return i})();return n.length===l.length&&(0,t.timingSafeEqual)(Buffer.from(n),Buffer.from(l))}])},200523,e=>{"use strict";var t=e.i(825265),r=e.i(804767),a=e.i(322429),i=e.i(871911);let s=async(e,i)=>{if(!await (0,a.getWorkspaceById)(e))return null;let s=await (0,t.getLayout)(e);for(let t of(0,r.collectPanes)(s.root)){let r=t.tabs.find(e=>e.id===i);if(r)return{workspaceId:e,paneId:t.id,tab:r}}return null},o=async e=>{let a=await (0,t.getLayout)(e);return(0,r.getFirstPaneId)(a.root)||null},n=async(e,t,r,a)=>{if(e.method!==r){t.setHeader("Allow",r),t.status(405).json({error:"Method not allowed"});return}if(!(0,i.verifyCliToken)(e))return void t.status(403).json({error:"Forbidden"});let o=e.query.tabId,n="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!n)return void t.status(400).json({error:"workspaceId is required"});let l=await s(n,o);if(!l)return void t.status(404).json({error:"Tab not found"});if("web-browser"!==l.tab.panelType)return void t.status(400).json({error:"Tab is not a web-browser panel"});let u=globalThis.__ptBrowserBridge??null;u?await a({tabId:o,bridge:u}):t.status(503).json({error:"Browser bridge unavailable (Electron-only feature)"})};e.s(["findTab",0,s,"resolveFirstPaneId",0,o,"withBrowserTab",0,n],200523)},500208,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(871911),o=e.i(200523),n=e.i(825265);e.i(462180);var l=e.i(282992);let u=async(e,t)=>{if(!(0,s.verifyCliToken)(e))return t.status(403).json({error:"Forbidden"});let r=e.query.tabId,a="string"==typeof e.query.workspaceId?e.query.workspaceId:void 0;if(!a)return t.status(400).json({error:"workspaceId is required"});if("GET"===e.method){let e=await (0,o.findTab)(a,r);if(!e)return t.status(404).json({error:"Tab not found"});let i=(0,l.getProviderByPanelType)(e.tab.panelType);return t.status(200).json({tabId:e.tab.id,workspaceId:e.workspaceId,paneId:e.paneId,name:e.tab.name,sessionName:e.tab.sessionName,panelType:e.tab.panelType,agentProviderId:i?.id??null,agentSessionId:i?.readSessionId(e.tab)??null})}if("DELETE"===e.method){let e=await (0,o.findTab)(a,r);if(!e)return t.status(404).json({error:"Tab not found"});let i=await (0,n.removeTabFromPane)(a,e.paneId,r);return t.status(200).json({ok:i})}return t.setHeader("Allow","GET, DELETE"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,u],287635);var d=e.i(287635),p=e.i(7031),c=e.i(181927),f=e.i(846432);let w=(0,i.hoist)(d,"default"),y=(0,i.hoist)(d,"config"),g=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/cli/tabs/[tabId]/index",pathname:"/api/cli/tabs/[tabId]",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,f.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/cli/tabs/[tabId]/index";i=i.replace(/\/index$/,"")||"/";let s=await g.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:o,params:n,prerenderManifest:l,routerServerContext:u}=s;try{let t,a=e.method||"GET",s=(0,p.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==u?void 0:u.isWrappedByNextServer),w=g.instrumentationOnRequestError.bind(g),y=async d=>g.render(e,r,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:g.isDev,page:"/api/cli/tabs/[tabId]/index",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>w(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;d.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",o),t.updateName(e))}else d.updateName(`${a} ${i}`)});f&&d?await y(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(c.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:p.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!f))}catch(e){if(g.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,y,"default",0,w,"handler",0,h],500208)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0fdh07q._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},921517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},524836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),i=e.i(446786);let a=r.default.join(i.default.homedir(),".purplemux","logs"),s=process.env.LOG_LEVEL||"info",o=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,i]=r.split("=").map(e=>e.trim());e&&i&&(t[e]=i)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],n=globalThis;if(!n.__ptRootLogger){let e=[s,...Object.values(o)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");n.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(a,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let p=n.__ptRootLogger;e.s(["createLogger",0,e=>{let t=p.child({module:e});return t.level=o[e]??s,t}])},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},206892,e=>{"use strict";var t=e.i(926747),r=e.i(190406),i=e.i(244898),a=e.i(262950),s=e.i(228448);let o=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=await (0,s.getVAPIDKeys)();return t.status(200).json({publicKey:r.publicKey})};e.s(["default",0,o],24648);var l=e.i(24648),n=e.i(7031),p=e.i(181927),u=e.i(846432);let d=(0,a.hoist)(l,"default"),x=(0,a.hoist)(l,"config"),c=new i.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/push/vapid-key",pathname:"/api/push/vapid-key",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function m(e,r,i){i.requestMeta&&(0,u.setRequestMeta)(e,i.requestMeta),c.isDev&&(0,u.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/push/vapid-key";a=a.replace(/\/index$/,"")||"/";let s=await c.prepare(e,r,{srcPage:a});if(!s){r.statusCode=400,r.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve());return}let{query:o,params:l,prerenderManifest:d,routerServerContext:x}=s;try{let t,i=e.method||"GET",s=(0,n.getTracer)(),u=s.getActiveScopeSpan(),m=!!(null==x?void 0:x.isWrappedByNextServer),f=c.instrumentationOnRequestError.bind(c),h=async n=>c.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:d.preview,propagateError:!1,dev:c.isDev,page:"/api/push/vapid-key",internalRevalidate:null==x?void 0:x.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!n)return;n.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${i} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),n.updateName(e),t&&t!==n&&(t.setAttribute("http.route",o),t.updateName(e))}else n.updateName(`${i} ${a}`)});m&&u?await h(u):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${i} ${a}`,kind:n.SpanKind.SERVER,attributes:{"http.method":i,"http.target":e.url}},h),void 0,!m))}catch(e){if(c.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==i.waitUntil||i.waitUntil.call(i,Promise.resolve())}}e.s(["config",0,x,"default",0,d,"handler",0,m],206892)}];
1
+ module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},921517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},524836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),i=e.i(446786);let a=r.default.join(i.default.homedir(),".purplemux","logs"),s=process.env.LOG_LEVEL||"info",o=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,i]=r.split("=").map(e=>e.trim());e&&i&&(t[e]=i)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],n=globalThis;if(!n.__ptRootLogger){let e=[s,...Object.values(o)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");n.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(a,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let p=n.__ptRootLogger;e.s(["createLogger",0,e=>{let t=p.child({module:e});return t.level=o[e]??s,t}])},206892,e=>{"use strict";var t=e.i(926747),r=e.i(190406),i=e.i(244898),a=e.i(262950),s=e.i(228448);let o=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=await (0,s.getVAPIDKeys)();return t.status(200).json({publicKey:r.publicKey})};e.s(["default",0,o],24648);var l=e.i(24648),n=e.i(7031),p=e.i(181927),u=e.i(846432);let d=(0,a.hoist)(l,"default"),x=(0,a.hoist)(l,"config"),c=new i.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/push/vapid-key",pathname:"/api/push/vapid-key",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function m(e,r,i){i.requestMeta&&(0,u.setRequestMeta)(e,i.requestMeta),c.isDev&&(0,u.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/push/vapid-key";a=a.replace(/\/index$/,"")||"/";let s=await c.prepare(e,r,{srcPage:a});if(!s){r.statusCode=400,r.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve());return}let{query:o,params:l,prerenderManifest:d,routerServerContext:x}=s;try{let t,i=e.method||"GET",s=(0,n.getTracer)(),u=s.getActiveScopeSpan(),m=!!(null==x?void 0:x.isWrappedByNextServer),f=c.instrumentationOnRequestError.bind(c),h=async n=>c.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:d.preview,propagateError:!1,dev:c.isDev,page:"/api/push/vapid-key",internalRevalidate:null==x?void 0:x.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!n)return;n.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${i} ${o}`;n.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),n.updateName(e),t&&t!==n&&(t.setAttribute("http.route",o),t.updateName(e))}else n.updateName(`${i} ${a}`)});m&&u?await h(u):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${i} ${a}`,kind:n.SpanKind.SERVER,attributes:{"http.method":i,"http.target":e.url}},h),void 0,!m))}catch(e){if(c.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==i.waitUntil||i.waitUntil.call(i,Promise.resolve())}}e.s(["config",0,x,"default",0,d,"handler",0,m],206892)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__00o93bf._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0fe0pqx._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),n=e.i(666126),l=e.i(825265),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),m=r.default.join(f,"tabs.json"),v=globalThis;v.__purplemuxWorkspaceLock||(v.__purplemuxWorkspaceLock=Promise.resolve());let h=async e=>{let t,r=new Promise(e=>{t=e}),a=v.__purplemuxWorkspaceLock;v.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),I=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{p.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},x=async e=>{let r;r=b(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else i.push(t)}let s=[];for(let e of t){let t=a.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,r);let{workspaces:a,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:l});if(v.__purplemuxWorkspacesContentCache===u)return;e.updatedAt=new Date().toISOString();let d=y+".tmp";try{await t.default.writeFile(d,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(d,y)}catch(e){throw await t.default.unlink(d).catch(()=>{}),e}v.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},P=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(r),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.resolveLayoutFile)(r));let i={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await x(i),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},S=async()=>{try{let e=await t.default.readFile(m,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return p.info("tabs.json → layout.json migration complete"),await P()}catch{return null}},A=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await I();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await P():await t.default.access(m).then(()=>!0).catch(()=>!1)&&(e=await S())),!e){let t=k();await x(t),e=t,p.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,l.resolveLayoutFile)(t.id),r=await (0,l.readLayoutFile)(e);if(!r){p.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.writeLayoutFile)(r,e);continue}let i=(0,u.collectAllTabs)(r.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=a.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,l.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(r,e)}catch(e){p.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},W=async()=>{let e=await I();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},T=async()=>{let e=await I();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},$=async e=>{let t=await I();return t?.workspaces.find(t=>t.id===e)},j=async(e,r,a)=>h(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await I()??k(),n=`ws-${(0,i.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(c)){let e=parseInt(r.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,l.createDefaultLayout)(n,e,a);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let f={id:n,name:u,directories:[e]};return o.workspaces.push(f),await x(o),await w(f),p.debug(`Created: ${n} (${u}, ${e})`),f}),N=async e=>h(async()=>{let t=await I()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await x(t),p.info(`Deleted: ${e} (${a.name})`),!0}),q=async(e,t)=>h(async()=>{let r=await I();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await x(r),await w(a),p.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),D=async e=>h(async()=>{let t=await I()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await x(t)}),L=async(e,t)=>h(async()=>{let r=await I();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await x(r),await w(a))}),_=async e=>h(async()=>{let t=await I()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await x(t),!0)}),C=async e=>h(async()=>{let t=await I()??k(),r=b(t),a=e.trim()||`Group ${r.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:a,collapsed:!1};return r.push(s),await x(t),p.debug(`Group created: ${s.id} (${s.name})`),s}),F=async(e,t)=>h(async()=>{let r=await I();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let i=t.trim();return i?(a.name=i,await x(r),{...a}):a}),E=async(e,t)=>h(async()=>{let r=await I();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await x(r),!0))}),R=async e=>h(async()=>{let t=await I();if(!t)return!1;let r=b(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await x(t),p.info(`Group ungrouped: ${e}`),!0}),M=async e=>h(async()=>{let t=await I();if(!t)return!1;let r=b(t),a=new Map(r.map(e=>[e.id,e])),i=[];for(let t of e){let e=a.get(t);if(!e)return!1;i.push(e)}return i.length===r.length&&(t.groups=i,await x(t),!0)}),O=async(e,t)=>h(async()=>{let r=await I();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let i=new Set((r.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(a.groupId??null)===s||(a.groupId=s,await x(r),!0)}),G=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,C,"createWorkspace",0,j,"deleteWorkspace",0,N,"getActiveWorkspaceId",0,T,"getWorkspaceById",0,$,"getWorkspaces",0,W,"initWorkspaceStore",0,A,"renameGroup",0,F,"renameWorkspace",0,q,"reorderGroups",0,M,"reorderWorkspaces",0,_,"setGroupCollapsed",0,E,"setWorkspaceGroup",0,O,"ungroupGroup",0,R,"updateActive",0,D,"updateWorkspaceDirectories",0,L,"validateDirectory",0,G],322429)},319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},853932,e=>{"use strict";var t=e.i(282992);let r={status:"not-running",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},a={status:"not-installed",sessionId:null,jsonlPath:null,pid:null,startedAt:null,cwd:null},i=async(e,i)=>{let s=(0,t.listProviders)(),o=s.length>0;for(let t of s){let r=await t.detectActiveSession(e,i);if("running"===r.status)return{provider:t,info:r};"not-installed"!==r.status&&(o=!1)}return{provider:null,info:o?a:r}};e.s(["detectAnyActiveSession",0,i])},462180,e=>{"use strict";var t=e.i(798415),r=e.i(751905),a=e.i(282992);e.i(853932),(0,a.registerProvider)(t.claudeProvider),(0,a.registerProvider)(r.codexProvider),e.s([])},338823,e=>{"use strict";e.i(462180);var t=e.i(282992);let r=async e=>{let r=(0,t.getProviderByPanelType)(e);if(!r)return{ok:!0,provider:null};let a=await r.preflight();if(a.installed)return{ok:!0,provider:r};let i="claude"===r.id&&!!a.binaryPath;return{ok:!1,status:409,code:i?"agent-path-missing":"agent-not-installed",providerId:r.id,providerDisplayName:r.displayName,panelType:r.panelType,suggestedCommand:i?"claude-path":"claude"===r.id?"claude":null}};e.s(["checkAgentAvailabilityForPanelType",0,r,"toAgentAvailabilityError",0,e=>({error:e.code,providerId:e.providerId,providerDisplayName:e.providerDisplayName,panelType:e.panelType,suggestedCommand:e.suggestedCommand})])},667250,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(825265),o=e.i(322429),n=e.i(964759);e.i(462180);var l=e.i(282992),u=e.i(338823),d=e.i(459015);let p=(0,e.i(25146).createLogger)("layout"),c=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let r=e.query.workspace||await (0,o.getActiveWorkspaceId)();if(!r)return t.status(400).json({error:"No workspace found"});let a=e.query.paneId,{name:i,cwd:c,panelType:w,command:f,resumeSessionId:y}=e.body??{},g=y?(0,l.getProviderByPanelType)(w??"claude-code"):null;if(y){if(!g)return t.status(400).json({error:"Unknown panel type for resume"});if(!g.isValidSessionId(y))return t.status(400).json({error:"Invalid session ID format"})}let m=await (0,u.checkAgentAvailabilityForPanelType)(g?.panelType??w);if(!m.ok)return t.status(m.status).json((0,u.toAgentAvailabilityError)(m));try{let e=await (0,s.addTabToPane)(r,a,i,c,w,f);if(!e)return t.status(404).json({error:"Pane not found"});if(y&&g&&!f&&(g.writeSessionId(e,y),await (0,s.updateTabAgentSessionId)(e.sessionName,g,y)),"web-browser"!==e.panelType){let t=(0,l.getProviderByPanelType)(e.panelType);(0,n.getStatusManager)().registerTab(e.id,{cliState:"inactive",workspaceId:r,tabName:e.name,tmuxSession:e.sessionName,panelType:e.panelType,agentProviderId:t?.id,agentSessionId:t?.readSessionId(e)??null,lastEvent:null,eventSeq:0}),f&&(0,n.getStatusManager)().markAgentLaunch(e.id)}return y&&g&&!f&&setTimeout(async()=>{try{let t=await g.buildResumeCommand(y,{workspaceId:r});await (0,d.sendKeys)(e.sessionName,t),(0,n.getStatusManager)().markAgentLaunch(e.id)}catch(e){p.warn(`resume sendKeys failed: ${e instanceof Error?e.message:e}`)}},500),t.status(200).json(e)}catch(e){return p.error(`tab creation failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to create tab"})}};e.s(["default",0,c],170096);var w=e.i(170096),f=e.i(7031),y=e.i(181927),g=e.i(846432);let m=(0,i.hoist)(w,"default"),v=(0,i.hoist)(w,"config"),h=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/layout/pane/[paneId]/tabs/index",pathname:"/api/layout/pane/[paneId]/tabs",bundlePath:"",filename:""},userland:w,distDir:".next",relativeProjectDir:""});async function k(e,r,a){a.requestMeta&&(0,g.setRequestMeta)(e,a.requestMeta),h.isDev&&(0,g.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/pane/[paneId]/tabs/index";i=i.replace(/\/index$/,"")||"/";let s=await h.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:o,params:n,prerenderManifest:l,routerServerContext:u}=s;try{let t,a=e.method||"GET",s=(0,f.getTracer)(),d=s.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),c=h.instrumentationOnRequestError.bind(h),w=async d=>h.render(e,r,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:h.isDev,page:"/api/layout/pane/[paneId]/tabs/index",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==y.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;d.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",o),t.updateName(e))}else d.updateName(`${a} ${i}`)});p&&d?await w(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(y.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:f.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},w),void 0,!p))}catch(e){if(h.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,v,"default",0,m,"handler",0,k],667250)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0fjtk0d._.js.map
@@ -0,0 +1,3 @@
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"))},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"],u=globalThis;if(!u.__ptRootLogger){let t=[n,...Object.values(s)].reduce((t,e)=>l.indexOf(e)<l.indexOf(t)?e:t,"fatal");u.__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 o=u.__ptRootLogger;t.s(["createLogger",0,t=>{let e=o.child({module:t});return e.level=s[t]??n,e}])},130146,(t,e,r)=>{e.exports=t.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},224361,(t,e,r)=>{e.exports=t.x("util",()=>require("util"))},666680,(t,e,r)=>{e.exports=t.x("node:crypto",()=>require("node:crypto"))},233405,(t,e,r)=>{e.exports=t.x("child_process",()=>require("child_process"))},44014,t=>{"use strict";let e,r;var a=t.i(666680);t.s(["nanoid",0,function(t=21){var i=t|=0;if(i<0||i>1024)throw RangeError("Wrong ID size");!e||e.length<i?(e=Buffer.allocUnsafe(128*i),a.webcrypto.getRandomValues(e),r=0):r+i>e.length&&(a.webcrypto.getRandomValues(e),r=0),r+=i;let n="";for(let a=r-t;a<r;a++)n+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&e[a]];return n}],44014)},459015,965898,597789,333184,t=>{"use strict";var e=t.i(233405),r=t.i(924868),a=t.i(224361),i=t.i(814747),n=t.i(44014);let s=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(s?JSON.parse(s):{...process.env});s||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),t.s(["PRISTINE_ENV",0,l],965898);let u=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),o=["LC_"],c=t=>u.has(t)||o.some(e=>t.startsWith(e)),p={TERM:"xterm-256color",COLORTERM:"truecolor"},m=()=>{let t={};for(let[e,r]of Object.entries(l))void 0!==r&&c(e)&&(t[e]=r);return{...t,...p}},d=t=>`'${t.replace(/'/g,"'\\''")}'`,y=()=>l.SHELL||"/bin/bash",f=()=>{let t=Object.entries({...m(),PATH:"/usr/bin:/bin:/usr/sbin:/sbin"}).map(([t,e])=>`${t}=${d(e)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${t} ${d(y())} -l`};t.s(["buildShellEnv",0,()=>m(),"buildShellLaunchCommand",0,f,"defaultShell",0,y],597789);var w=t.i(25146);process.platform;let h="linux"===process.platform,g=(0,a.promisify)(e.execFile),S=async t=>{try{let{stdout:e}=await g("pgrep",["-P",String(t)]);return e.trim().split("\n").map(t=>parseInt(t,10)).filter(t=>!Number.isNaN(t))}catch{return[]}},x=async t=>{if(h)try{return await r.default.readlink(`/proc/${t}/cwd`)}catch{return null}try{let{stdout:e}=await g("lsof",["-a","-p",String(t),"-d","cwd","-Fn"]),r=e.split("\n").find(t=>t.startsWith("n/"));return r?r.slice(1):null}catch{return null}},_=async(t,e)=>{try{let{stdout:r}=await g("ps",["-p",String(t),"-o","args="],e?.timeoutMs?{timeout:e.timeoutMs}:{});return r.trim()}catch{return null}},L=async(t,e)=>{try{let{stdout:r}=await g("ps",["-p",String(t),"-o","lstart="],e?.timeoutMs?{timeout:e.timeoutMs}:{}),a=Date.parse(r.trim().replace(/\s+/g," "));return Number.isFinite(a)?a:null}catch{return null}};t.s(["getChildPids",0,S,"getProcessArgs",0,_,"getProcessCwd",0,x,"getProcessStartTimeMs",0,L,"isProcessRunning",0,t=>new Promise(r=>{(0,e.execFile)("ps",["-p",String(t)],t=>{r(!t)})}),"parseSemanticVersion",0,t=>t.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null],333184);let P=(0,w.createLogger)("terminal"),I=(0,a.promisify)(e.execFile),N="purple",E=i.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),b=async()=>{try{let{stdout:t}=await I("tmux",["-L",N,"ls","-F","#{session_name}"],{timeout:5e3});return t.trim().split("\n").map(t=>t.trim()).filter(t=>t.startsWith("pt-"))}catch{return[]}},M=async(t,e,r,a)=>{let i=f();await I("tmux",["-u","-L",N,"-f",E,"new-session","-d","-s",t,"-x",String(e),"-y",String(r),i],{timeout:5e3,cwd:a||l.HOME||"/"}),await D(),P.debug(`tmux session created: ${t} (cols: ${e}, rows: ${r})`)},T=t=>new Promise(e=>setTimeout(e,t)),$=async t=>{if(!await k(t))return;P.debug(`killSession start: ${t}`);let e=await H(t);if(e)try{P.debug(`SIGTERM → process group ${e}: ${t}`),process.kill(-e,"SIGTERM")}catch{}try{await I("tmux",["-L",N,"kill-session","-t",t],{timeout:5e3})}catch{}for(let e=0;e<5;e++){if(!await k(t))return void P.debug(`killSession done (SIGTERM): ${t}`);await T(200)}if(P.warn(`session survived SIGTERM, escalating to SIGKILL: ${t}`),e)try{P.debug(`SIGKILL → process group ${e}: ${t}`),process.kill(-e,"SIGKILL")}catch{}try{await I("tmux",["-L",N,"kill-session","-t",t],{timeout:5e3})}catch{}for(let e=0;e<3;e++){if(!await k(t))return void P.debug(`killSession done (SIGKILL): ${t}`);await T(200)}P.warn(`tmux session still alive after kill: ${t}`)},v=async t=>{let e=l.HOME||"/";if(!t)return e;let a=t;for(;;){try{if((await r.default.stat(a)).isDirectory())return a}catch{}let t=i.default.dirname(a);if(t===a)return e;a=t}},k=async t=>{try{return await I("tmux",["-L",N,"has-session","-t",t],{timeout:5e3}),!0}catch{return!1}},R=async()=>{},C=async()=>{await R();let t=await b();t.length>0&&t.forEach(t=>{P.debug(`existing tmux session found: ${t}`)})},O=async t=>{if(h)try{return await r.default.readlink(`/proc/${t}/cwd`)}catch{return null}try{let{stdout:e}=await I("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}},A=async t=>{let e=await H(t);if(e){let t=await O(e);if(t)return t}try{let{stdout:e}=await I("tmux",["-L",N,"display-message","-p","-t",t,"#{pane_current_path}"],{timeout:5e3});return e.trim()||null}catch{return null}},H=async t=>{try{let{stdout:e}=await I("tmux",["-L",N,"display-message","-p","-t",t,"#{pane_pid}"],{timeout:5e3}),r=parseInt(e.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},D=async()=>{try{await I("tmux",["-L",N,"source-file",E],{timeout:5e3})}catch{}},F=async t=>{try{let{stdout:e}=await I("tmux",["-L",N,"list-panes","-t",t,"-F","#{pane_current_command}"],{timeout:5e3});return e.trim()||null}catch{return null}},G=async()=>{try{let{stdout:t}=await I("tmux",["-L",N,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),e=new Map;for(let r of t.trim().split("\n")){if(!r)continue;let[t,a,i,n,s]=r.split(" ");if(t&&a){let r=parseInt(n,10),l=parseInt(s,10);e.set(t,{command:a,path:i||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return e}catch{return new Map}},U=new Set(["bash","zsh","fish","sh","dash"]),j=async t=>{let e=await F(t);return e?{isSafe:U.has(e),processName:e}:{isSafe:!1,processName:"unknown"}},q=async t=>{try{let{stdout:e}=await I("tmux",["-L",N,"display-message","-p","-t",t,"#{pane_title}"],{timeout:5e3});return e.trim()||null}catch{return null}},K=async t=>{await I("tmux",["-L",N,"copy-mode","-q","-t",t],{timeout:5e3}).catch(()=>{})},X=async(t,e)=>{await K(t),await I("tmux",["-L",N,"send-keys","-t",t,e,"Enter"],{timeout:5e3})},V=async(t,e)=>{await K(t),await I("tmux",["-L",N,"send-keys","-t",t,e],{timeout:5e3}),await T(50),await I("tmux",["-L",N,"send-keys","-t",t,"Enter"],{timeout:5e3})},W=async(t,e)=>{await K(t),await I("tmux",["-L",N,"send-keys","-t",t,e],{timeout:5e3})},z=async(t,e)=>{await K(t),await I("tmux",["-L",N,"send-keys","-t",t,"-l",`\x1b[200~${e}\x1b[201~`],{timeout:5e3}),await I("tmux",["-L",N,"send-keys","-t",t,"Enter"],{timeout:5e3}),await new Promise(t=>setTimeout(t,600)),await I("tmux",["-L",N,"send-keys","-t",t,"Enter"],{timeout:5e3})},Y=async t=>{try{let{stdout:e}=await I("tmux",["-L",N,"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}}},B=new Set(["node","python","python3","ruby","perl","deno","bun"]),J=async()=>{try{await I("tmux",["-L",N,"kill-server"],{timeout:5e3}),P.debug("tmux server killed")}catch{}},Z=async t=>{try{let{stdout:e}=await I("tmux",["-L",N,"capture-pane","-p","-t",t],{timeout:5e3});return e}catch{return null}},Q=async(t,e)=>{try{let{stdout:r}=await I("tmux",["-L",N,"capture-pane","-p","-S",`-${e}`,"-t",t],{timeout:5e3});return r}catch{return null}},tt=async t=>{if(h){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 I("pgrep",["-P",t.join(",")],{timeout:5e3});return e.trim().split("\n").map(t=>parseInt(t,10)).filter(t=>!Number.isNaN(t))}catch{return[]}},te=async t=>{let e=[],r=[t];for(;r.length>0;){let t=await tt(r);if(0===t.length)break;e.push(...t),r=t}return e},tr=async t=>{try{let e=new Set(t),{stdout:r}=await I("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let t of r.split("\n")){let r=t.match(/pid=(\d+)/g);if(!r||!r.some(t=>e.has(parseInt(t.replace("pid=",""),10))))continue;let i=t.match(/:(\d+)\s/);i&&a.add(parseInt(i[1],10))}return[...a].sort((t,e)=>t-e)}catch{return[]}},ta=async t=>{let e=await te(t);if(0===e.length)return[];if(h)return tr(e);try{let{stdout:t}=await I("lsof",["-a","-p",e.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let e of t.split("\n"))if(e.startsWith("n")){let t=e.match(/:(\d+)$/);t&&r.add(parseInt(t[1],10))}return[...r].sort((t,e)=>t-e)}catch{return[]}},ti=async t=>{let e=await H(t);if(!e)return null;try{let{stdout:t}=await I("pgrep",["-n","-P",String(e)],{timeout:5e3}),r=t.trim();if(!r)return null;let a=await _(r,{timeoutMs:5e3});if(!a)return null;let n=a.split(/\s+/);if(0===n.length)return a;if(n[0]=i.default.basename(n[0]),B.has(n[0])&&n.length>1){let t=i.default.basename(n[1]).replace(/\.(c|m)?js$/,"");n.splice(0,2,t)}return n.join(" ")}catch{return null}};t.s(["SAFE_SHELLS",0,U,"applyConfig",0,D,"capturePaneContent",0,Z,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,j,"createSession",0,M,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,K,"getAllPanesInfo",0,G,"getLastCommand",0,ti,"getListeningPorts",0,ta,"getPaneCurrentCommand",0,F,"getPaneDetailInfo",0,Y,"getPaneTitle",0,q,"getSessionCwd",0,A,"getSessionPanePid",0,H,"hasSession",0,k,"killServer",0,J,"killSession",0,$,"listSessions",0,b,"resolveExistingDir",0,v,"scanSessions",0,C,"sendBracketedPaste",0,z,"sendKeys",0,X,"sendKeysSeparated",0,V,"sendRawKeys",0,W,"workspaceSessionName",0,(t,e,r)=>`pt-${t}-${e}-${r}`],459015)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0g-v44c._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),i=e.i(814747),a=e.i(446786);let s=i.default.join(a.default.homedir(),".purplemux","cli-token"),n=globalThis;e.s(["verifyCliToken",0,e=>{let a=e.headers["x-pmux-token"];var l="string"==typeof a?a:void 0;if(!l)return!1;let o=(()=>{if(n.__ptCliToken)return n.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(s,"utf-8").trim()||null}catch{return null}})();if(e)return n.__ptCliToken=e,e;let a=(0,t.randomBytes)(32).toString("hex");n.__ptCliToken=a;try{r.default.mkdirSync(i.default.dirname(s),{recursive:!0}),r.default.writeFileSync(s,a,{mode:384})}catch{}return a})();return l.length===o.length&&(0,t.timingSafeEqual)(Buffer.from(l),Buffer.from(o))}])},284345,e=>{"use strict";var t=e.i(926747),r=e.i(190406),i=e.i(244898),a=e.i(262950),s=e.i(713915),n=e.i(845994),l=e.i(772601),o=e.i(871911);let u=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});if(!await (0,n.needsSetup)()&&!((0,o.verifyCliToken)(e)||await (0,l.verifyRequestSession)(e.headers.cookie)))return t.status(401).json({error:"Unauthorized"});let r=await (0,s.getCachedPreflightStatus)();return t.status(200).json(r)};e.s(["default",0,u],16083);var p=e.i(16083),d=e.i(7031),h=e.i(181927),f=e.i(846432);let c=(0,a.hoist)(p,"default"),v=(0,a.hoist)(p,"config"),x=new i.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/auth/preflight",pathname:"/api/auth/preflight",bundlePath:"",filename:""},userland:p,distDir:".next",relativeProjectDir:""});async function m(e,r,i){i.requestMeta&&(0,f.setRequestMeta)(e,i.requestMeta),x.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/auth/preflight";a=a.replace(/\/index$/,"")||"/";let s=await x.prepare(e,r,{srcPage:a});if(!s){r.statusCode=400,r.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve());return}let{query:n,params:l,prerenderManifest:o,routerServerContext:u}=s;try{let t,i=e.method||"GET",s=(0,d.getTracer)(),p=s.getActiveScopeSpan(),f=!!(null==u?void 0:u.isWrappedByNextServer),c=x.instrumentationOnRequestError.bind(x),v=async p=>x.render(e,r,{query:{...n,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:x.isDev,page:"/api/auth/preflight",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!p)return;p.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=e.get("next.route");if(n){let e=`${i} ${n}`;p.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),p.updateName(e),t&&t!==p&&(t.setAttribute("http.route",n),t.updateName(e))}else p.updateName(`${i} ${a}`)});f&&p?await v(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(h.BaseServerSpan.handleRequest,{spanName:`${i} ${a}`,kind:d.SpanKind.SERVER,attributes:{"http.method":i,"http.target":e.url}},v),void 0,!f))}catch(e){if(x.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==i.waitUntil||i.waitUntil.call(i,Promise.resolve())}}e.s(["config",0,v,"default",0,c,"handler",0,m],284345)},981532,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_0kkbnw5._.js"].map(t=>e.l(t))).then(()=>t(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0gm~y1a._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,s)=>{t.exports=e.x("fs",()=>require("fs"))},688947,(e,t,s)=>{t.exports=e.x("stream",()=>require("stream"))},406461,(e,t,s)=>{t.exports=e.x("zlib",()=>require("zlib"))},254799,(e,t,s)=>{t.exports=e.x("crypto",()=>require("crypto"))},524836,(e,t,s)=>{t.exports=e.x("https",()=>require("https"))},921517,(e,t,s)=>{t.exports=e.x("http",()=>require("http"))},504446,(e,t,s)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,s)=>{t.exports=e.x("tls",()=>require("tls"))},792509,(e,t,s)=>{t.exports=e.x("url",()=>require("url"))},500874,(e,t,s)=>{t.exports=e.x("buffer",()=>require("buffer"))},427699,(e,t,s)=>{t.exports=e.x("events",()=>require("events"))},175609,(e,t,s)=>{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,e.i(825265),(0,e.i(25146).createLogger)("terminal"),new TextDecoder;let s=globalThis,r=s.__purplemux_terminal_connections??=new Map;s.__purplemux_terminal_output_ts??=new Map;let n=(e,t,s)=>{for(let n of r.values())if(n.sessionName===e&&!n.cleaned)return void n.pty.resize(t,s)},i=e=>new Promise(t=>setTimeout(t,e)),o=async(e,s,o)=>{let a=(e=>{for(let t of r.values())if(t.sessionName===e&&!t.cleaned)return{cols:t.currentCols,rows:t.currentRows};return null})(e);if(a&&a.cols>50&&a.rows>=o)return(0,t.capturePaneContentWithHistory)(e,50);let u=(e=>{for(let t of r.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{return n(e,Math.max(a?.cols??0,s),Math.max(a?.rows??0,o)),await i(300),await (0,t.capturePaneContent)(e)}finally{n(e,u.cols,u.rows),await i(300),(e=>{for(let t of r.values())if(t.sessionName===e&&!t.cleaned){if(!t.capturePaused)return;t.capturePaused=!1;return}})(e)}};e.s(["capturePaneAtWidth",0,o],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"],s=/^\s*(?:[❯›>]\s+)?(.+)$/,r=/^\s*[❯›>]\s+/,n=/^(\d+)\.\s+/,i=/^\s*([❯›>])?\s*(?:[↓↑]\s*)?(\d+)\.?\s*(\S.*)$/,o=/^[\s─━\-]+$/,a=e=>e.replace(n,""),u=(e,t)=>e.some(e=>a(e).startsWith(t)),l=e=>e.match(/^\s*/)?.[0].length??0,p=e=>e.trim().replace(/^[☐☑]\s*/,"").trim(),c=e=>/^[\s]*[☐☑]\s*\S/.test(e),d=/^(Yes,\s*and\s+don[\u2019']?t\s+ask)\s*:\s*(.+)$/,m=e=>{let t=e.match(d);return t?`${t[1]} again for: ${t[2].trim()}`:/^Yes(?![,\s]|$)/.test(e)?"Yes":/^No(?![,\s]|$)/.test(e)?"No":e},f=e=>!(e.length<2)&&(u(e,"Yes")&&u(e,"No")||u(e,"Accept")&&u(e,"Decline")||u(e,"Open System Settings")||u(e,"Use this")&&u(e,"Continue without")||u(e,"Resume from summary")&&u(e,"Resume full session")||u(e,"Continue this conversation")&&u(e,"Send message as")),h=(e,t,s)=>({...e,...((e,t)=>{if(t<=0)return{};let s=t-1;for(;s>=0&&(!e[s].trim()||o.test(e[s]));)s-=1;let r=[];for(;s>=0&&e[s].trim()&&!o.test(e[s]);)r.unshift(p(e[s])),s-=1;for(;s>=0&&(!e[s].trim()||o.test(e[s]));)s-=1;let n=[],i=[];for(;s>=0&&e[s].trim()&&!o.test(e[s]);)i.unshift(e[s]),n.unshift(p(e[s])),s-=1;let a=r.join("\n").trim(),u=i.some(c)?n.join("\n").trim():"";return{...u&&{title:u},...a&&{request:a}}})(t,s)});e.s(["parseChoiceOptions",0,e=>{let t=e.split("\n"),s=[],r=[],n=-1,a=0,u=-1,l=()=>{r.length>=2&&n>=0&&s.push({options:r.slice(),focusedIndex:n,optionStartIndex:u}),r=[],n=-1,a=0,u=-1};for(let e=0;e<t.length;e+=1){let s=t[e];if(!s.trim()||o.test(s))continue;let p=s.match(i);if(p){let t=p[1],s=Number(p[2]),i=p[3].trim();if(r.length>0&&s<=a&&l(),i.length>0){0===r.length&&(u=e),t&&(n=r.length),r.push(`${s}. ${m(i)}`),a=s;continue}}r.length>0&&!/^\s+\S/.test(s)&&l()}l();let p=s[s.length-1];return p?h({options:p.options,focusedIndex:p.focusedIndex},t,p.optionStartIndex):{options:[],focusedIndex:0}},"parsePermissionOptions",0,e=>{let n=e.split("\n"),o=(e=>{let t=[],s=[],r=0,n=1,o=0,a=-1,u=()=>{s.length>=2&&t.push({rawOptions:s.slice(),focusedIndex:r,optionStartIndex:a}),s=[],r=0,n=1,o=0,a=-1};for(let t=0;t<e.length;t+=1){let p=e[t];if(!p.trim())continue;let c=p.match(i);if(c){let e=c[1],i=Number(c[2]),d=c[3].trim();if(d.length>0){if(1===i){u(),s.push(d),e&&(r=0),o=l(p),a=t,n=2;continue}if(i===n){e&&(r=s.length),s.push(d),o=l(p),n+=1;continue}}}if(s.length>0){if(l(p)>o){s[s.length-1]+=p.trimStart();continue}if(/^\s+\S/.test(p))continue;u()}}u();let p=t[t.length-1];return p?{...h({options:p.rawOptions.map((e,t)=>`${t+1}. ${m(e)}`),focusedIndex:p.focusedIndex},e,p.optionStartIndex)}:{options:[],focusedIndex:0}})(n);if(o.options.length>=2&&f(o.options))return o;let u=(e=>{let n=[],i=0,o=-1,u=!1;for(let l=0;l<e.length;l+=1){let p=e[l];if(!p.trim()){if(u)break;continue}let c=r.test(p),d=/^\s+\S/.test(p);if(!c&&!d){if(u)break;continue}let m=p.match(s);if(!m)continue;let f=m[1].trim(),h=a(f);t.some(e=>h.startsWith(e))&&(0===n.length&&(o=l),c&&(i=n.length),n.push(f),u=!0)}return h({options:n,focusedIndex:i},e,o)})(n);return f(u.options)?u:{options:[],focusedIndex:0}}])},454549,e=>{"use strict";var t=e.i(926747),s=e.i(190406),r=e.i(244898),n=e.i(262950),i=e.i(459015),o=e.i(971780),a=e.i(25146),u=e.i(443571);let l=(0,a.createLogger)("tmux"),p=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let s=e.query.session;if(!s)return t.status(400).json({error:"session parameter required"});if(!await (0,i.hasSession)(s))return t.status(404).json({error:"Session not found"});try{let e=await (0,o.capturePaneAtWidth)(s,120,50);if(!e)return t.status(200).json({options:[]});let r=(0,u.parsePermissionOptions)(e),n=r.options.length>0?r:(0,u.parseChoiceOptions)(e),i=e.includes("Bypass Permissions");return t.status(200).json({...n,...i&&{isBypassPrompt:!0}})}catch(e){return l.error(`permission-options query failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Terminal capture failed"})}};e.s(["default",0,p],96110);var c=e.i(96110),d=e.i(7031),m=e.i(181927),f=e.i(846432);let h=(0,n.hoist)(c,"default"),x=(0,n.hoist)(c,"config"),g=new r.PagesAPIRouteModule({definition:{kind:s.RouteKind.PAGES_API,page:"/api/tmux/permission-options",pathname:"/api/tmux/permission-options",bundlePath:"",filename:""},userland:c,distDir:".next",relativeProjectDir:""});async function v(e,s,r){r.requestMeta&&(0,f.setRequestMeta)(e,r.requestMeta),g.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/tmux/permission-options";n=n.replace(/\/index$/,"")||"/";let i=await g.prepare(e,s,{srcPage:n});if(!i){s.statusCode=400,s.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:o,params:a,prerenderManifest:u,routerServerContext:l}=i;try{let t,r=e.method||"GET",i=(0,d.getTracer)(),p=i.getActiveScopeSpan(),c=!!(null==l?void 0:l.isWrappedByNextServer),f=g.instrumentationOnRequestError.bind(g),h=async p=>g.render(e,s,{query:{...o,...a},params:a,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:u.preview,propagateError:!1,dev:g.isDev,page:"/api/tmux/permission-options",internalRevalidate:null==l?void 0:l.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!p)return;p.setAttributes({"http.status_code":s.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${r} ${o}`;p.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),p.updateName(e),t&&t!==p&&(t.setAttribute("http.route",o),t.updateName(e))}else p.updateName(`${r} ${n}`)});c&&p?await h(p):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(m.BaseServerSpan.handleRequest,{spanName:`${r} ${n}`,kind:d.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},h),void 0,!c))}catch(e){if(g.isDev)throw e;(0,t.sendError)(s,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,x,"default",0,h,"handler",0,v],454549)},981532,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_0kkbnw5._.js"].map(t=>e.l(t))).then(()=>t(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0h-9m0e._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),l=e.i(666126),n=e.i(825265),u=e.i(804767),p=e.i(282992);let c=(0,o.createLogger)("workspace"),d="Workspace ",f=async e=>{let t=[];for(let r of(0,p.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},m=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(m,"workspaces.json"),h=r.default.join(m,"layout.json"),w=r.default.join(m,"tabs.json"),g=globalThis;g.__purplemuxWorkspaceLock||(g.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=g.__purplemuxWorkspaceLock;g.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),_=e=>(e.groups||(e.groups=[]),e.groups),b=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{c.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},x=async e=>{let r;r=_(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,i=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else i.push(t)}let s=[];for(let e of t){let t=a.get(e.id);t&&s.push(...t)}return s.push(...i),s})(e.workspaces,r);let{workspaces:a,groups:i,activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n}=e,u=JSON.stringify({workspaces:a,groups:i??[],activeWorkspaceId:s,sidebarCollapsed:o,sidebarWidth:n});if(g.__purplemuxWorkspacesContentCache===u)return;e.updatedAt=new Date().toISOString();let p=y+".tmp";try{await t.default.writeFile(p,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(p,y)}catch(e){throw await t.default.unlink(p).catch(()=>{}),e}g.__purplemuxWorkspacesContentCache=u,(0,l.broadcastSync)({type:"workspace"})},S=async()=>{let e=await (0,n.readLayoutFile)(h);if(!e)return null;let r="ws-default";await t.default.mkdir((0,n.resolveLayoutDir)(r),{recursive:!0}),await (0,n.writeLayoutFile)(e,(0,n.resolveLayoutFile)(r));let i={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await x(i),c.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},P=async()=>{try{let e=await t.default.readFile(w,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=h+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,h)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return c.info("tabs.json → layout.json migration complete"),await S()}catch{return null}},A=async()=>{await t.default.mkdir(r.default.join(m,"workspaces"),{recursive:!0});let e=await b();if(!e&&(await t.default.access(h).then(()=>!0).catch(()=>!1)?e=await S():await t.default.access(w).then(()=>!0).catch(()=>!1)&&(e=await P())),!e){let t=k();await x(t),e=t,c.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,n.resolveLayoutFile)(t.id),r=await (0,n.readLayoutFile)(e);if(!r){c.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,n.createDefaultLayout)(t.id,t.directories[0]),await (0,n.writeLayoutFile)(r,e);continue}let i=(0,u.collectAllTabs)(r.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=a.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,n.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,n.writeLayoutFile)(r,e)}catch(e){c.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},I=async()=>{let e=await b();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},W=async()=>{let e=await b();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},q=async e=>{let t=await b();return t?.workspaces.find(t=>t.id===e)},$=async(e,r,a)=>v(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await b()??k(),l=`ws-${(0,i.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(d)){let e=parseInt(r.name.slice(d.length),10);e>t&&(t=e)}return`${d}${t+1}`})(o.workspaces),p=await (0,n.createDefaultLayout)(l,e,a);await t.default.mkdir((0,n.resolveLayoutDir)(l),{recursive:!0}),await (0,n.writeLayoutFile)(p,(0,n.resolveLayoutFile)(l));let m={id:l,name:u,directories:[e]};return o.workspaces.push(m),await x(o),await f(m),c.debug(`Created: ${l} (${u}, ${e})`),m}),C=async e=>v(async()=>{let t=await b()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],i=await (0,n.readLayoutFile)((0,n.resolveLayoutFile)(e));if(i)for(let e of(0,u.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,n.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await x(t),c.info(`Deleted: ${e} (${a.name})`),!0}),j=async(e,t)=>v(async()=>{let r=await b();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await x(r),await f(a),c.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),R=async e=>v(async()=>{let t=await b()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await x(t)}),T=async(e,t)=>v(async()=>{let r=await b();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await x(r),await f(a))}),L=async e=>v(async()=>{let t=await b()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),i=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),i.push(e)}return i.length===t.workspaces.length&&(t.workspaces=i,await x(t),!0)}),N=async e=>v(async()=>{let t=await b()??k(),r=_(t),a=e.trim()||`Group ${r.length+1}`,s={id:`grp-${(0,i.nanoid)(6)}`,name:a,collapsed:!1};return r.push(s),await x(t),c.debug(`Group created: ${s.id} (${s.name})`),s}),E=async(e,t)=>v(async()=>{let r=await b();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let i=t.trim();return i?(a.name=i,await x(r),{...a}):a}),O=async(e,t)=>v(async()=>{let r=await b();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await x(r),!0))}),D=async e=>v(async()=>{let t=await b();if(!t)return!1;let r=_(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await x(t),c.info(`Group ungrouped: ${e}`),!0}),F=async e=>v(async()=>{let t=await b();if(!t)return!1;let r=_(t),a=new Map(r.map(e=>[e.id,e])),i=[];for(let t of e){let e=a.get(t);if(!e)return!1;i.push(e)}return i.length===r.length&&(t.groups=i,await x(t),!0)}),M=async(e,t)=>v(async()=>{let r=await b();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let i=new Set((r.groups??[]).map(e=>e.id)),s=t&&i.has(t)?t:null;return(a.groupId??null)===s||(a.groupId=s,await x(r),!0)}),B=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,N,"createWorkspace",0,$,"deleteWorkspace",0,C,"getActiveWorkspaceId",0,W,"getWorkspaceById",0,q,"getWorkspaces",0,I,"initWorkspaceStore",0,A,"renameGroup",0,E,"renameWorkspace",0,j,"reorderGroups",0,F,"reorderWorkspaces",0,L,"setGroupCollapsed",0,O,"setWorkspaceGroup",0,M,"ungroupGroup",0,D,"updateActive",0,R,"updateWorkspaceDirectories",0,T,"validateDirectory",0,B],322429)},871911,e=>{"use strict";var t=e.i(254799),r=e.i(522734),a=e.i(814747),i=e.i(446786);let s=a.default.join(i.default.homedir(),".purplemux","cli-token"),o=globalThis;e.s(["verifyCliToken",0,e=>{let i=e.headers["x-pmux-token"];var l="string"==typeof i?i:void 0;if(!l)return!1;let n=(()=>{if(o.__ptCliToken)return o.__ptCliToken;let e=(()=>{try{return r.default.readFileSync(s,"utf-8").trim()||null}catch{return null}})();if(e)return o.__ptCliToken=e,e;let i=(0,t.randomBytes)(32).toString("hex");o.__ptCliToken=i;try{r.default.mkdirSync(a.default.dirname(s),{recursive:!0}),r.default.writeFileSync(s,i,{mode:384})}catch{}return i})();return l.length===n.length&&(0,t.timingSafeEqual)(Buffer.from(l),Buffer.from(n))}])},716018,e=>{"use strict";e.i(446786);let t=["127.0.0.0/8","::1/128"],r=["100.64.0.0/10","fd7a:115c:a1e0::/48"],a=["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","169.254.0.0/16","fc00::/7","fe80::/10"],i=e=>{let t=e.startsWith("::ffff:")?e.slice(7):e;if(t.includes(".")&&!t.includes(":")){let e=t.split(".").map(e=>Number(e));return 4!==e.length||e.some(e=>!Number.isInteger(e)||e<0||e>255)?null:Buffer.from(e)}return s(t)},s=e=>{let t,r=e.indexOf("%"),a=r>=0?e.slice(0,r):e,i=null,s=a,o=a.lastIndexOf(":"),l=o>=0?a.slice(o+1):"";if(l.includes(".")){let e=l.split(".").map(e=>Number(e));if(4!==e.length||e.some(e=>!Number.isInteger(e)||e<0||e>255))return null;i=Buffer.from(e),s=a.slice(0,o)}let n=s.indexOf("::");if(n>=0){let e=s.slice(0,n)?s.slice(0,n).split(":"):[],r=s.slice(n+2)?s.slice(n+2).split(":"):[],a=(i?6:8)-e.length-r.length;if(a<0)return null;t=[...e,...Array(a).fill("0"),...r]}else t=s?s.split(":"):[];let u=i?6:8;if(t.length!==u)return null;let p=Buffer.alloc(16);for(let e=0;e<t.length;e++){let r=parseInt(t[e],16);if(!Number.isFinite(r)||r<0||r>65535)return null;p.writeUInt16BE(r,2*e)}return i&&i.copy(p,12),p},o=e=>{let[t,r]=e.split("/"),a=i(t);if(!a)return null;let s=8*a.length,o=void 0===r?s:Number(r);return!Number.isInteger(o)||o<0||o>s?null:{addr:a,prefix:o}},l=e=>{let i=e.trim().toLowerCase();return i?"all"===i||"*"===i||"0.0.0.0"===i?"all":"localhost"===i?t:"tailscale"===i?r:"lan"===i?a:null:[]},n=e=>{switch(e){case"localhost":return"localhost";case"tailscale":return"localhost,tailscale";case"all":return"all"}},u=["localhost","tailscale","all"],p=null,c="";e.s(["isBoundToLocalhostOnly",0,()=>"127.0.0.1"===(process.env.__PMUX_BOUND_HOST??"0.0.0.0"),"isRequestAllowed",0,e=>{let t;var r=((t=(()=>{let e=process.env.HOST?.trim();if(e)return e;let t=process.env.__PMUX_NETWORK_ACCESS;return t&&u.includes(t)?n(t):n("all")})())===c&&p||(c=t,p=(e=>{let t=[],r=!1;for(let a of e.split(",")){let e=a.trim();if(!e)continue;let i=l(e);if("all"===i){r=!0;continue}if(null===i){let r=o(e);r&&t.push(r);continue}for(let e of i){let r=o(e);r&&t.push(r)}}return{raw:e,cidrs:t,allowAll:r}})(t)),p),a=e;if(r.allowAll)return!0;if(!a)return!1;let s=i(a);return!!s&&r.cidrs.some(e=>((e,t)=>{if(e.addr.length!==t.length)return!1;let r=Math.floor(e.prefix/8),a=e.prefix%8;for(let a=0;a<r;a++)if(e.addr[a]!==t[a])return!1;if(0===a)return!0;let i=255<<8-a&255;return(e.addr[r]&i)==(t[r]&i)})(e,s))},"updateAccessFromConfig",0,e=>{process.env.HOST?.trim()||(process.env.__PMUX_NETWORK_ACCESS=e,p=null,c="")}],716018)},34717,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(871911),o=e.i(964759),l=e.i(25146),n=e.i(716018);let u=new Set(["session-start","prompt-submit","notification","stop","interrupt","pre-compact","post-compact"]),p=e=>{switch(e.hook_event_name){case"SessionStart":return{kind:"session-start"};case"UserPromptSubmit":case"PreToolUse":case"PostToolUse":return{kind:"prompt-submit"};case"Stop":return{kind:"stop"};case"PermissionRequest":return{kind:"notification",notificationType:"permission_prompt"};default:return null}},c=e=>"string"==typeof e?e:void 0,d=new Set(["modify","create","delete"]),f=/^\*\*\*\s+(Add|Update|Delete)\s+File:\s+(.+?)\s*$/i,m=e=>e&&"object"==typeof e&&!Array.isArray(e)?e:null,y=e=>"string"==typeof e&&e.trim()?e.trim().toLowerCase():null,h=e=>"add"===e.toLowerCase()?"create":"delete"===e.toLowerCase()?"delete":"modify",w=e=>{if(!e||"object"!=typeof e)return null;let t=c(e.path),r=c(e.operation);if(!t||!r||!d.has(r))return null;let a={path:t,operation:r},i=c(e.diff);i&&(a.diff=i);let s=c(e.content);return s&&(a.content=s),a};var g=e.i(145095);let v=(0,l.createLogger)("hooks"),k=async(e,t)=>"POST"!==e.method?(t.setHeader("Allow","POST"),t.status(405).json({error:"method not allowed"})):(0,s.verifyCliToken)(e)&&(0,n.isRequestAllowed)(e.socket.remoteAddress)?"codex"===("string"==typeof e.query.provider?e.query.provider:"claude")?((e,t)=>{let r,a,i,s,l=e.query.tmuxSession;if("string"!=typeof l||!l)return v.warn({event:e.body?.hook_event_name},"codex hook missing tmuxSession"),t.status(400).json({error:"missing tmuxSession"});let n=e.body??{};v.debug({tmuxSession:l,event:n.hook_event_name,source:n.source},`codex ${n.hook_event_name??"unknown"}`);let u=(0,o.getStatusManager)(),{result:d,translation:k}=(r={sessionId:n.session_id??null},n.transcript_path&&(r.jsonlPath=n.transcript_path),"UserPromptSubmit"===n.hook_event_name&&"string"==typeof n.prompt&&n.prompt&&(r.lastUserMessage=n.prompt,r.agentSummary=n.prompt.slice(0,80)),"PermissionRequest"===n.hook_event_name?r.permissionRequest=(e=>{if("PermissionRequest"!==e.hook_event_name)return null;let t=c(e.request_type);if("RequestPermissions"===t||!t&&!e.exec_command&&!e.apply_patch){let t=(e=>{let t=e.requested_permissions;if(!Array.isArray(t))return null;let r=t.filter(e=>"string"==typeof e&&e.length>0);if(0===r.length)return null;let a={type:"RequestPermissions",permissions:r},i=c(e.call_id);return i&&(a.callId=i),a})(e);if(t)return t}if("ApplyPatchApprovalRequest"===t||e.apply_patch){let t=(e=>{let t=e.apply_patch;if(!t||"object"!=typeof t)return null;let r=t.patches;if(!Array.isArray(r))return null;let a=r.map(w).filter(e=>null!==e);if(0===a.length)return null;let i={type:"ApplyPatchApprovalRequest",patches:a},s=c(e.call_id)??c(t.call_id);return s&&(i.callId=s),i})(e);if(t)return t}if("ExecApprovalRequest"===t||e.exec_command){let t=(e=>{let t=e.exec_command;if(!t||"object"!=typeof t)return null;let r=c(t.command);if(!r)return null;let a={type:"ExecApprovalRequest",command:r},i=c(e.call_id)??c(t.call_id);i&&(a.callId=i);let s=c(t.cwd)??c(e.cwd);s&&(a.cwd=s);let o=(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return;let t={};for(let[r,a]of Object.entries(e))"string"==typeof a&&(t[r]=a);return Object.keys(t).length>0?t:void 0})(t.env);return o&&(a.env=o),a})(e);if(t)return t}let r=(e=>{let t=y(e.tool_name),r=m(e.tool_input);if("apply_patch"!==t||!r)return null;let a=c(r.command);return a?{type:"ApplyPatchApprovalRequest",patches:(e=>{let t=[];for(let r of e.split("\n")){let a=r.match(f);a&&t.push({operation:h(a[1]),path:a[2],diff:e})}return t.length>0?t:[{operation:"modify",path:"apply_patch",diff:e}]})(a)}:null})(e);if(r)return r;let a=(e=>{let t=y(e.tool_name),r=m(e.tool_input);if(!t||!r||"bash"!==t&&"exec_command"!==t)return null;let a=c(r.command);if(!a)return null;let i={type:"ExecApprovalRequest",command:a},s=c(e.cwd);return s&&(i.cwd=s),i})(e);return a||null})(n):"Stop"===n.hook_event_name&&(r.permissionRequest=null),(a="SessionStart"===n.hook_event_name&&"clear"===n.source)&&(r.clearMessages=!0),i={meta:r},"SessionStart"===n.hook_event_name&&(i.sessionInfo={status:"running",sessionId:n.session_id??null,jsonlPath:n.transcript_path??null,pid:null,startedAt:null,cwd:n.cwd??null},i.clearSession=a),(i.event=s=p(n),s)?{result:{ok:!0},translation:i}:{result:{ok:!1,reason:"unknown-event"},translation:i}),_=k.meta?u.applyAgentHookMeta("codex",l,k.meta):null;return _?(k.sessionInfo&&(g.codexHookEvents.emit("session-info",l,k.sessionInfo),k.clearSession&&g.codexHookEvents.emit("session-clear",l)),d.ok||v.debug({tmuxSession:l,event:n.hook_event_name,reason:d.reason},"codex hook skipped"),k.event&&((e,t)=>{let r=p(e);if(!r)return!1;if("session-start"===r.kind){let r;return"clear"===("startup"===(r=e.source)||"resume"===r||"clear"===r?e.source:"startup")||"inactive"===t||"unknown"===t}return!0})(n,_.cliState)&&u.handleProviderEvent("codex",l,k.event)):v.debug({tmuxSession:l,event:n.hook_event_name,reason:"unknown-session"},"codex hook skipped"),t.status(204).end()})(e,t):((e,t)=>{let{event:r,session:a,notificationType:i}=e.body??{};if("string"==typeof r&&"poll"!==r&&"string"==typeof a&&a){let e="string"==typeof i&&i?i:void 0;v.debug({event:r,session:a,notificationType:e},`received ${r}${e?`(${e})`:""}`);let t=u.has(r)?"notification"===r?e?{kind:"notification",notificationType:e}:{kind:"notification"}:{kind:r}:null;t?(0,o.getStatusManager)().handleProviderEvent("claude",a,t):v.debug({event:r,session:a,notificationType:e},"unknown claude hook event, ignoring")}else v.debug({body:e.body},"poll trigger"),(0,o.getStatusManager)().poll().catch(e=>{v.error({err:e},"Poll trigger failed")});return t.status(204).end()})(e,t):t.status(403).json({error:"forbidden"});e.s(["default",0,k],860464);var _=e.i(860464),b=e.i(7031),x=e.i(181927),S=e.i(846432);let P=(0,i.hoist)(_,"default"),A=(0,i.hoist)(_,"config"),I=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/status/hook",pathname:"/api/status/hook",bundlePath:"",filename:""},userland:_,distDir:".next",relativeProjectDir:""});async function W(e,r,a){a.requestMeta&&(0,S.setRequestMeta)(e,a.requestMeta),I.isDev&&(0,S.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/status/hook";i=i.replace(/\/index$/,"")||"/";let s=await I.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:o,params:l,prerenderManifest:n,routerServerContext:u}=s;try{let t,a=e.method||"GET",s=(0,b.getTracer)(),p=s.getActiveScopeSpan(),c=!!(null==u?void 0:u.isWrappedByNextServer),d=I.instrumentationOnRequestError.bind(I),f=async p=>I.render(e,r,{query:{...o,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:n.preview,propagateError:!1,dev:I.isDev,page:"/api/status/hook",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>d(e,...t)}).finally(()=>{if(!p)return;p.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==x.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;p.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),p.updateName(e),t&&t!==p&&(t.setAttribute("http.route",o),t.updateName(e))}else p.updateName(`${a} ${i}`)});c&&p?await f(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(x.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:b.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},f),void 0,!c))}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,A,"default",0,P,"handler",0,W],34717)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(e=>Promise.resolve().then(()=>e(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0i0mb1-._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},746514,e=>{"use strict";let t;var r=e.i(924868),s=e.i(522734),a=e.i(814747),i=e.i(319668),n=e.i(511748),l=e.i(459015),o=e.i(25146);let u=(e,t)=>`${e}:${t}`,d=(0,o.createLogger)("session-list"),c=a.default.join(process.env.HOME||process.env.USERPROFILE||"/",".claude","projects"),p=(t=new Map,{get:(e,r)=>{let s=u(e,r),a=t.get(s);if(a)return Date.now()-a.cachedAt>3e4?void t.delete(s):a.meta},set:(e,r,s,a)=>{t.set(u(e,r),{meta:s,mtime:a,cachedAt:Date.now()})},isStale:(e,r,s)=>{let a=u(e,r),i=t.get(a);return!i||(Date.now()-i.cachedAt>3e4?(t.delete(a),!0):i.mtime!==s)},clear:()=>{t.clear()}}),m=e=>{let t=(0,n.toClaudeProjectName)(e);return a.default.join(c,t)},f=async(e,t)=>{let r=Array(e.length),s=0,a=async()=>{for(;s<e.length;){let t=s++;try{let s=await e[t]();r[t]={status:"fulfilled",value:s}}catch(e){r[t]={status:"rejected",reason:e}}}},i=Array.from({length:Math.min(t,e.length)},()=>a());return await Promise.all(i),r},h=e=>e.length<=200?e:e.slice(0,200)+"…",x=async e=>{let t=(0,s.createReadStream)(e,{encoding:"utf-8"}),r=i.default.createInterface({input:t,crlfDelay:1/0}),a=null,n="",l=0,o=!0;try{for await(let e of r){if(o&&(o=!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')&&(l++,!n))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)n=h(e);else if(Array.isArray(e.content)){let t=e.content.find(e=>"text"===e.type&&e.text);t&&(n=h(t.text))}else"string"==typeof e.content&&(n=h(e.content))}}catch{}}}finally{r.close(),t.destroy()}return{startedAt:a,firstMessage:n,turnCount:l}},y=async e=>{try{let t=await r.default.stat(e),s=a.default.basename(e,".jsonl"),i=p.get("claude",s);if(i&&!p.isStale("claude",s,t.mtimeMs))return i;let{startedAt:n,firstMessage:l,turnCount:o}=await x(e),u=n||t.birthtime.toISOString(),d=t.mtime.toISOString(),c={sessionId:s,startedAt:u,lastActivityAt:d,firstMessage:l,turnCount:o};return p.set("claude",s,c,t.mtimeMs),c}catch(t){return d.warn({err:t},`failed to parse session meta: ${e}`),null}},g=async(e,t)=>{let s,i=t||await (0,l.getSessionCwd)(e);if(!i)throw Error("cwd-lookup-failed");let n=m(i);try{s=(await r.default.readdir(n)).filter(e=>e.endsWith(".jsonl"))}catch{return[]}let o=s.map(e=>()=>y(a.default.join(n,e))),u=await f(o,10),d=[];for(let e of u)"fulfilled"===e.status&&e.value&&d.push(e.value);return d.sort((e,t)=>new Date(t.lastActivityAt).getTime()-new Date(e.lastActivityAt).getTime()),d};e.s(["cwdToProjectPath",0,m,"listSessions",0,g],746514)},220536,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),a=e.i(262950),i=e.i(459015),n=e.i(746514);let l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.tmuxSession;if(!r)return t.status(400).json({error:"missing-param",message:"tmuxSession parameter required"});if(!await (0,i.hasSession)(r))return t.status(404).json({error:"tmux-session-not-found",message:`tmux session '${r}' not found`});let s=Math.max(1,parseInt(e.query.limit,10)||50),a=Math.max(0,parseInt(e.query.offset,10)||0),l=e.query.cwd;try{let e=await (0,n.listSessions)(r,l),i=e.length,o=e.slice(a,a+s),u=a+s<i;return t.status(200).json({sessions:o,total:i,hasMore:u})}catch(r){let e=r instanceof Error?r.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 o=e.i(96225),u=e.i(7031),d=e.i(181927),c=e.i(846432);let p=(0,a.hoist)(o,"default"),m=(0,a.hoist)(o,"config"),f=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/timeline/sessions",pathname:"/api/timeline/sessions",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function h(e,r,s){s.requestMeta&&(0,c.setRequestMeta)(e,s.requestMeta),f.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/timeline/sessions";a=a.replace(/\/index$/,"")||"/";let i=await f.prepare(e,r,{srcPage:a});if(!i){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:n,params:l,prerenderManifest:o,routerServerContext:p}=i;try{let t,s=e.method||"GET",i=(0,u.getTracer)(),c=i.getActiveScopeSpan(),m=!!(null==p?void 0:p.isWrappedByNextServer),h=f.instrumentationOnRequestError.bind(f),x=async u=>f.render(e,r,{query:{...n,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:f.isDev,page:"/api/timeline/sessions",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=e.get("next.route");if(n){let e=`${s} ${n}`;u.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",n),t.updateName(e))}else u.updateName(`${s} ${a}`)});m&&c?await x(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(d.BaseServerSpan.handleRequest,{spanName:`${s} ${a}`,kind:u.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},x),void 0,!m))}catch(e){if(f.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==s.waitUntil||s.waitUntil.call(s,Promise.resolve())}}e.s(["config",0,m,"default",0,p,"handler",0,h],220536)},981532,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_0kkbnw5._.js"].map(t=>e.l(t))).then(()=>t(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0j3kgjw._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},282992,e=>{"use strict";let t=globalThis;t.__ptAgentProviders||(t.__ptAgentProviders=new Map);let r=t.__ptAgentProviders;e.s(["getProvider",0,e=>r.get(e)??null,"getProviderByPanelType",0,e=>{if(!e)return null;for(let t of r.values())if(t.panelType===e)return t;return null},"getProviderByProcessName",0,(e,t)=>{for(let a of r.values())if(a.matchesProcess(e,t))return a;return null},"listProviders",0,()=>Array.from(r.values()),"registerProvider",0,e=>{r.set(e.id,e)}])},322429,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),s=e.i(44014),i=e.i(459015),o=e.i(25146),n=e.i(666126),l=e.i(825265),u=e.i(804767),d=e.i(282992);let p=(0,o.createLogger)("workspace"),c="Workspace ",w=async e=>{let t=[];for(let r of(0,d.listProviders)()){let a=r.writeWorkspacePrompt?.(e);a&&t.push(a)}await Promise.all(t)},f=r.default.join(a.default.homedir(),".purplemux"),y=r.default.join(f,"workspaces.json"),g=r.default.join(f,"layout.json"),h=r.default.join(f,"tabs.json"),m=globalThis;m.__purplemuxWorkspaceLock||(m.__purplemuxWorkspaceLock=Promise.resolve());let v=async e=>{let t,r=new Promise(e=>{t=e}),a=m.__purplemuxWorkspaceLock;m.__purplemuxWorkspaceLock=r,await a;try{return await e()}finally{t()}},k=()=>({workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),b=e=>(e.groups||(e.groups=[]),e.groups),x=async()=>{let e;try{e=await t.default.readFile(y,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory),delete e.order;for(let e of(Array.isArray(t.groups)||(t.groups=[]),t.groups))delete e.order;let r=new Set(t.groups.map(e=>e.id));for(let e of t.workspaces)e.groupId&&!r.has(e.groupId)&&(e.groupId=null);return t}catch{p.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(y,y.replace(/\.json$/,".json.bak"))}catch{}return null}},I=async e=>{let r;r=b(e),e.workspaces=((e,t)=>{let r=new Set(t.map(e=>e.id)),a=new Map,s=[];for(let t of e){let e=t.groupId??null;if(e&&r.has(e)){let r=a.get(e)??[];r.push(t),a.set(e,r)}else s.push(t)}let i=[];for(let e of t){let t=a.get(e.id);t&&i.push(...t)}return i.push(...s),i})(e.workspaces,r);let{workspaces:a,groups:s,activeWorkspaceId:i,sidebarCollapsed:o,sidebarWidth:l}=e,u=JSON.stringify({workspaces:a,groups:s??[],activeWorkspaceId:i,sidebarCollapsed:o,sidebarWidth:l});if(m.__purplemuxWorkspacesContentCache===u)return;e.updatedAt=new Date().toISOString();let d=y+".tmp";try{await t.default.writeFile(d,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(d,y)}catch(e){throw await t.default.unlink(d).catch(()=>{}),e}m.__purplemuxWorkspacesContentCache=u,(0,n.broadcastSync)({type:"workspace"})},W=async()=>{let e=await (0,l.readLayoutFile)(g);if(!e)return null;let r="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(r),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.resolveLayoutFile)(r));let s={workspaces:[{id:r,name:"default",directories:[a.default.homedir()]}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await I(s),p.info("Phase 4 layout.json → Workspace 'default' migration complete"),s},S=async()=>{try{let e=await t.default.readFile(h,"utf-8"),r=JSON.parse(e);if(!Array.isArray(r.tabs)||0===r.tabs.length)return null;let a=`pane-${(0,s.nanoid)(6)}`,i={root:{type:"pane",id:a,tabs:r.tabs,activeTabId:r.activeTabId??null},activePaneId:a,updatedAt:new Date().toISOString()},o=g+".tmp";try{await t.default.writeFile(o,JSON.stringify(i,null,2),{mode:384}),await t.default.rename(o,g)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return p.info("tabs.json → layout.json migration complete"),await W()}catch{return null}},P=async()=>{await t.default.mkdir(r.default.join(f,"workspaces"),{recursive:!0});let e=await x();if(!e&&(await t.default.access(g).then(()=>!0).catch(()=>!1)?e=await W():await t.default.access(h).then(()=>!0).catch(()=>!1)&&(e=await S())),!e){let t=k();await I(t),e=t,p.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let a=await (0,i.listSessions)();for(let t of e.workspaces){let e=(0,l.resolveLayoutFile)(t.id),r=await (0,l.readLayoutFile)(e);if(!r){p.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),r=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.writeLayoutFile)(r,e);continue}let s=(0,u.collectAllTabs)(r.root).map(e=>e.sessionName),i=`pt-${t.id}-`,o=a.filter(e=>s.includes(e)||e.startsWith(i));try{await (0,l.crossCheckLayout)(r,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(r,e)}catch(e){p.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},j=async()=>{let e=await x();return e?{workspaces:e.workspaces,groups:e.groups??[],activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],groups:[],sidebarCollapsed:!1,sidebarWidth:220}},A=async()=>{let e=await x();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},$=async e=>{let t=await x();return t?.workspaces.find(t=>t.id===e)},_=async(e,r,a)=>v(async()=>{let i;try{i=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!i.isDirectory())throw Error("Please enter a directory path, not a file");let o=await x()??k(),n=`ws-${(0,s.nanoid)(6)}`,u=r?.trim()||(e=>{let t=0;for(let r of e)if(r.name.startsWith(c)){let e=parseInt(r.name.slice(c.length),10);e>t&&(t=e)}return`${c}${t+1}`})(o.workspaces),d=await (0,l.createDefaultLayout)(n,e,a);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(d,(0,l.resolveLayoutFile)(n));let f={id:n,name:u,directories:[e]};return o.workspaces.push(f),await I(o),await w(f),p.debug(`Created: ${n} (${u}, ${e})`),f}),q=async e=>v(async()=>{let t=await x()??k(),r=t.workspaces.findIndex(t=>t.id===e);if(-1===r)return!1;let a=t.workspaces[r],s=await (0,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(s)for(let e of(0,u.collectAllTabs)(s.root))try{await (0,i.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(r,1),await I(t),p.info(`Deleted: ${e} (${a.name})`),!0}),L=async(e,t)=>v(async()=>{let r=await x();if(!r)return null;let a=r.workspaces.find(t=>t.id===e);return a?(a.name=t,await I(r),await w(a),p.debug(`Renamed: ${e} → "${t}"`),{...a}):null}),D=async e=>v(async()=>{let t=await x()??k();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await I(t)}),C=async(e,t)=>v(async()=>{let r=await x();if(!r)return;let a=r.workspaces.find(t=>t.id===e);a&&JSON.stringify(a.directories)!==JSON.stringify(t)&&(a.directories=t,await I(r),await w(a))}),E=async e=>v(async()=>{let t=await x()??k(),r=new Map(t.workspaces.map(e=>[e.id,e])),a=new Set((t.groups??[]).map(e=>e.id)),s=[];for(let t of e){let e=r.get(t.id);if(!e)return!1;void 0!==t.groupId&&(e.groupId=t.groupId&&a.has(t.groupId)?t.groupId:null),s.push(e)}return s.length===t.workspaces.length&&(t.workspaces=s,await I(t),!0)}),F=async e=>v(async()=>{let t=await x()??k(),r=b(t),a=e.trim()||`Group ${r.length+1}`,i={id:`grp-${(0,s.nanoid)(6)}`,name:a,collapsed:!1};return r.push(i),await I(t),p.debug(`Group created: ${i.id} (${i.name})`),i}),G=async(e,t)=>v(async()=>{let r=await x();if(!r)return null;let a=(r.groups??[]).find(t=>t.id===e);if(!a)return null;let s=t.trim();return s?(a.name=s,await I(r),{...a}):a}),N=async(e,t)=>v(async()=>{let r=await x();if(!r)return!1;let a=(r.groups??[]).find(t=>t.id===e);return!!a&&(a.collapsed===t||(a.collapsed=t,await I(r),!0))}),R=async e=>v(async()=>{let t=await x();if(!t)return!1;let r=b(t),a=r.findIndex(t=>t.id===e);if(-1===a)return!1;for(let r of t.workspaces)r.groupId===e&&(r.groupId=null);return r.splice(a,1),await I(t),p.info(`Group ungrouped: ${e}`),!0}),T=async e=>v(async()=>{let t=await x();if(!t)return!1;let r=b(t),a=new Map(r.map(e=>[e.id,e])),s=[];for(let t of e){let e=a.get(t);if(!e)return!1;s.push(e)}return s.length===r.length&&(t.groups=s,await I(t),!0)}),O=async(e,t)=>v(async()=>{let r=await x();if(!r)return!1;let a=r.workspaces.find(t=>t.id===e);if(!a)return!1;let s=new Set((r.groups??[]).map(e=>e.id)),i=t&&s.has(t)?t:null;return(a.groupId??null)===i||(a.groupId=i,await I(r),!0)}),M=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:r.default.basename(e)}};e.s(["createGroup",0,F,"createWorkspace",0,_,"deleteWorkspace",0,q,"getActiveWorkspaceId",0,A,"getWorkspaceById",0,$,"getWorkspaces",0,j,"initWorkspaceStore",0,P,"renameGroup",0,G,"renameWorkspace",0,L,"reorderGroups",0,T,"reorderWorkspaces",0,E,"setGroupCollapsed",0,N,"setWorkspaceGroup",0,O,"ungroupGroup",0,R,"updateActive",0,D,"updateWorkspaceDirectories",0,C,"validateDirectory",0,M],322429)},621034,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),s=e.i(262950),i=e.i(322429);let o=async(e,t)=>{let r=e.query.groupId;if("DELETE"===e.method)return await (0,i.ungroupGroup)(r)?t.status(204).end():t.status(404).json({error:"Group not found"});if("PATCH"===e.method){let{name:a,collapsed:s}=e.body??{};if(void 0!==s){if("boolean"!=typeof s)return t.status(400).json({error:"collapsed must be boolean"});if(!await (0,i.setGroupCollapsed)(r,s))return t.status(404).json({error:"Group not found"});if(void 0===a)return t.status(200).json({ok:!0})}if(void 0!==a){if("string"!=typeof a||!a.trim())return t.status(400).json({error:"name required"});let e=await (0,i.renameGroup)(r,a.trim());return e?t.status(200).json(e):t.status(404).json({error:"Group not found"})}return t.status(400).json({error:"name or collapsed required"})}return t.setHeader("Allow","DELETE, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,o],869181);var n=e.i(869181),l=e.i(7031),u=e.i(181927),d=e.i(846432);let p=(0,s.hoist)(n,"default"),c=(0,s.hoist)(n,"config"),w=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/workspace/group/[groupId]",pathname:"/api/workspace/group/[groupId]",bundlePath:"",filename:""},userland:n,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),w.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/workspace/group/[groupId]";s=s.replace(/\/index$/,"")||"/";let i=await w.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:o,params:n,prerenderManifest:p,routerServerContext:c}=i;try{let t,a=e.method||"GET",i=(0,l.getTracer)(),d=i.getActiveScopeSpan(),f=!!(null==c?void 0:c.isWrappedByNextServer),y=w.instrumentationOnRequestError.bind(w),g=async l=>w.render(e,r,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:p.preview,propagateError:!1,dev:w.isDev,page:"/api/workspace/group/[groupId]",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!l)return;l.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${a} ${o}`;l.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),l.updateName(e),t&&t!==l&&(t.setAttribute("http.route",o),t.updateName(e))}else l.updateName(`${a} ${s}`)});f&&d?await g(d):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${s}`,kind:l.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!f))}catch(e){if(w.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,c,"default",0,p,"handler",0,f],621034)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0jqcz6h._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},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"))},902067,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),a=e.i(262950),i=e.i(924868),n=e.i(814747),o=e.i(44014),l=e.i(825265),u=e.i(25146);let d=(0,u.createLogger)("message-history"),p=globalThis;p.__ptMessageHistoryLocks||(p.__ptMessageHistoryLocks=new Map);let c=async(e,t)=>{let r,s=new Promise(e=>{r=e}),a=p.__ptMessageHistoryLocks.get(e)??Promise.resolve();p.__ptMessageHistoryLocks.set(e,s),await a;try{return await t()}finally{r(),p.__ptMessageHistoryLocks.get(e)===s&&p.__ptMessageHistoryLocks.delete(e)}},h=e=>n.default.join((0,l.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&&d.warn({err:e},"failed to read"),[]}},f=async(e,t)=>{let r=n.default.dirname(e);await i.default.mkdir(r,{recursive:!0});let s=e+".tmp";try{await i.default.writeFile(s,JSON.stringify(t,null,2),{mode:384}),await i.default.rename(s,e)}catch(e){throw await i.default.unlink(s).catch(()=>{}),e}},g=async e=>y(h(e)),m=async(e,t)=>c(e,async()=>{let r=h(e),s=await y(r),a=s.findIndex(e=>e.message===t);-1!==a&&s.splice(a,1);let i={id:(0,o.nanoid)(),message:t,sentAt:new Date().toISOString()};return s.unshift(i),s.length>500&&(s.length=500),await f(r,{entries:s}),i}),w=async(e,t)=>c(e,async()=>{let r=h(e),s=(await y(r)).filter(e=>e.id!==t);return await f(r,{entries:s}),!0}),v=(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 s=await g(r);return t.status(200).json({entries:s})}if("POST"===e.method){let{wsId:r,message:s}=e.body;if(!r)return t.status(400).json({error:"wsId is required"});if(!s?.trim())return t.status(400).json({error:"message is required"});try{let e=await m(r,s);return t.status(201).json({entry:e})}catch(e){return v.error({err:e},"write failed"),t.status(500).json({error:"Failed to save"})}}if("DELETE"===e.method){let{wsId:r,id:s}=e.body;if(!r)return t.status(400).json({error:"wsId is required"});if(!s)return t.status(400).json({error:"id is required"});try{let e=await w(r,s);return t.status(200).json({success:e})}catch(e){return v.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 q=e.i(217026),_=e.i(7031),b=e.i(181927),E=e.i(846432);let S=(0,a.hoist)(q,"default"),j=(0,a.hoist)(q,"config"),P=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/message-history",pathname:"/api/message-history",bundlePath:"",filename:""},userland:q,distDir:".next",relativeProjectDir:""});async function k(e,r,s){s.requestMeta&&(0,E.setRequestMeta)(e,s.requestMeta),P.isDev&&(0,E.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/message-history";a=a.replace(/\/index$/,"")||"/";let i=await P.prepare(e,r,{srcPage:a});if(!i){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:n,params:o,prerenderManifest:l,routerServerContext:u}=i;try{let t,s=e.method||"GET",i=(0,_.getTracer)(),d=i.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),c=P.instrumentationOnRequestError.bind(P),h=async d=>P.render(e,r,{query:{...n,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:P.isDev,page:"/api/message-history",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==b.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=e.get("next.route");if(n){let e=`${s} ${n}`;d.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",n),t.updateName(e))}else d.updateName(`${s} ${a}`)});p&&d?await h(d):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(b.BaseServerSpan.handleRequest,{spanName:`${s} ${a}`,kind:_.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},h),void 0,!p))}catch(e){if(P.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==s.waitUntil||s.waitUntil.call(s,Promise.resolve())}}e.s(["config",0,j,"default",0,S,"handler",0,k],902067)},981532,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_0kkbnw5._.js"].map(t=>e.l(t))).then(()=>t(322429)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))},245061,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(t=>e.l(t))).then(()=>t(785128)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0lp1y.v._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[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"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),s=e.i(446786);let i=r.default.join(s.default.homedir(),".purplemux","logs"),o=process.env.LOG_LEVEL||"info",l=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,s]=r.split("=").map(e=>e.trim());e&&s&&(t[e]=s)}return t})(process.env.LOG_LEVELS),n=["trace","debug","info","warn","error","fatal"],a=globalThis;if(!a.__ptRootLogger){let e=[o,...Object.values(l)].reduce((e,t)=>n.indexOf(t)<n.indexOf(e)?t:e,"fatal");a.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=a.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=l[e]??o,t}])},716018,e=>{"use strict";e.i(446786);let t=["127.0.0.0/8","::1/128"],r=["100.64.0.0/10","fd7a:115c:a1e0::/48"],s=["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","169.254.0.0/16","fc00::/7","fe80::/10"],i=e=>{let t=e.startsWith("::ffff:")?e.slice(7):e;if(t.includes(".")&&!t.includes(":")){let e=t.split(".").map(e=>Number(e));return 4!==e.length||e.some(e=>!Number.isInteger(e)||e<0||e>255)?null:Buffer.from(e)}return o(t)},o=e=>{let t,r=e.indexOf("%"),s=r>=0?e.slice(0,r):e,i=null,o=s,l=s.lastIndexOf(":"),n=l>=0?s.slice(l+1):"";if(n.includes(".")){let e=n.split(".").map(e=>Number(e));if(4!==e.length||e.some(e=>!Number.isInteger(e)||e<0||e>255))return null;i=Buffer.from(e),o=s.slice(0,l)}let a=o.indexOf("::");if(a>=0){let e=o.slice(0,a)?o.slice(0,a).split(":"):[],r=o.slice(a+2)?o.slice(a+2).split(":"):[],s=(i?6:8)-e.length-r.length;if(s<0)return null;t=[...e,...Array(s).fill("0"),...r]}else t=o?o.split(":"):[];let u=i?6:8;if(t.length!==u)return null;let d=Buffer.alloc(16);for(let e=0;e<t.length;e++){let r=parseInt(t[e],16);if(!Number.isFinite(r)||r<0||r>65535)return null;d.writeUInt16BE(r,2*e)}return i&&i.copy(d,12),d},l=e=>{let[t,r]=e.split("/"),s=i(t);if(!s)return null;let o=8*s.length,l=void 0===r?o:Number(r);return!Number.isInteger(l)||l<0||l>o?null:{addr:s,prefix:l}},n=e=>{let i=e.trim().toLowerCase();return i?"all"===i||"*"===i||"0.0.0.0"===i?"all":"localhost"===i?t:"tailscale"===i?r:"lan"===i?s:null:[]},a=e=>{switch(e){case"localhost":return"localhost";case"tailscale":return"localhost,tailscale";case"all":return"all"}},u=["localhost","tailscale","all"],d=null,p="";e.s(["isBoundToLocalhostOnly",0,()=>"127.0.0.1"===(process.env.__PMUX_BOUND_HOST??"0.0.0.0"),"isRequestAllowed",0,e=>{let t;var r=((t=(()=>{let e=process.env.HOST?.trim();if(e)return e;let t=process.env.__PMUX_NETWORK_ACCESS;return t&&u.includes(t)?a(t):a("all")})())===p&&d||(p=t,d=(e=>{let t=[],r=!1;for(let s of e.split(",")){let e=s.trim();if(!e)continue;let i=n(e);if("all"===i){r=!0;continue}if(null===i){let r=l(e);r&&t.push(r);continue}for(let e of i){let r=l(e);r&&t.push(r)}}return{raw:e,cidrs:t,allowAll:r}})(t)),d),s=e;if(r.allowAll)return!0;if(!s)return!1;let o=i(s);return!!o&&r.cidrs.some(e=>((e,t)=>{if(e.addr.length!==t.length)return!1;let r=Math.floor(e.prefix/8),s=e.prefix%8;for(let s=0;s<r;s++)if(e.addr[s]!==t[s])return!1;if(0===s)return!0;let i=255<<8-s&255;return(e.addr[r]&i)==(t[r]&i)})(e,o))},"updateAccessFromConfig",0,e=>{process.env.HOST?.trim()||(process.env.__PMUX_NETWORK_ACCESS=e,d=null,p="")}],716018)},671207,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),i=e.i(262950),o=e.i(845994),l=e.i(716018);let n=["code-server","vscode","vscode-insiders","cursor","windsurf","zed","custom","off"],a=["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right"],u=e=>"string"==typeof e&&a.includes(e),d=["appTheme","terminalTheme","customCSS","dangerouslySkipPermissions","claudeShowTerminal","gitAskProvider","noteSummaryProvider","editorUrl","editorPreset","authPassword","notificationsEnabled","toastOnCompleteEnabled","toastDuration","toastPositionDesktop","toastPositionMobile","locale","fontSize","lineHeight","lineHeightCustom","terminalKeyBar","systemResourcesEnabled","networkAccess"],p=["localhost","tailscale","all"],c=["claude","codex"],f=["claude","codex"],m=async(e,t)=>{if("GET"===e.method){let{authPassword:e,authSecret:r,...s}=await (0,o.getConfig)(),i="string"==typeof process.env.HOST&&process.env.HOST.trim().length>0;return t.status(200).json({...s,hasAuthPassword:!!e,hostEnvLocked:i,bindHostIsLocal:(0,l.isBoundToLocalhostOnly)()})}if("PATCH"===e.method){let r,s,i,a,m,h=e.body??{},g={};for(let e of d)e in h&&(g[e]=h[e]);if("editorUrl"in g&&"string"!=typeof g.editorUrl)return t.status(400).json({error:"editorUrl must be a string."});if("editorPreset"in g&&!("string"==typeof(r=g.editorPreset)&&n.includes(r)))return t.status(400).json({error:"editorPreset is invalid."});if("networkAccess"in g&&!("string"==typeof(s=g.networkAccess)&&p.includes(s)))return t.status(400).json({error:"networkAccess must be one of: localhost, tailscale, all."});if("gitAskProvider"in g&&!("string"==typeof(i=g.gitAskProvider)&&c.includes(i)))return t.status(400).json({error:"gitAskProvider must be one of: claude, codex."});if("noteSummaryProvider"in g&&!("string"==typeof(a=g.noteSummaryProvider)&&f.includes(a)))return t.status(400).json({error:"noteSummaryProvider must be one of: claude, codex."});if("toastPositionDesktop"in g&&!u(g.toastPositionDesktop))return t.status(400).json({error:"toastPositionDesktop is invalid."});if("toastPositionMobile"in g&&!u(g.toastPositionMobile))return t.status(400).json({error:"toastPositionMobile is invalid."});if("toastDuration"in g&&!("number"==typeof(m=g.toastDuration)&&Number.isFinite(m)&&m>=1e3&&m<=6e4))return t.status(400).json({error:"toastDuration must be a number between 1000 and 60000."});if("string"==typeof g.authPassword&&g.authPassword){let e=await (0,o.hashPassword)(g.authPassword),t=(0,o.generateSecret)();g.authPassword=e,g.authSecret=t,await (0,o.updateConfig)(g),process.env.AUTH_PASSWORD=e,process.env.NEXTAUTH_SECRET=t}else delete g.authPassword,await (0,o.updateConfig)(g);return"networkAccess"in g&&(0,l.updateAccessFromConfig)(g.networkAccess),t.status(200).json({ok:!0})}return t.setHeader("Allow","GET, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,m],183329);var h=e.i(183329),g=e.i(7031),v=e.i(181927),x=e.i(846432);let P=(0,i.hoist)(h,"default"),b=(0,i.hoist)(h,"config"),w=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/config",pathname:"/api/config",bundlePath:"",filename:""},userland:h,distDir:".next",relativeProjectDir:""});async function y(e,r,s){s.requestMeta&&(0,x.setRequestMeta)(e,s.requestMeta),w.isDev&&(0,x.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/config";i=i.replace(/\/index$/,"")||"/";let o=await w.prepare(e,r,{srcPage:i});if(!o){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:l,params:n,prerenderManifest:a,routerServerContext:u}=o;try{let t,s=e.method||"GET",o=(0,g.getTracer)(),d=o.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),c=w.instrumentationOnRequestError.bind(w),f=async d=>w.render(e,r,{query:{...l,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:a.preview,propagateError:!1,dev:w.isDev,page:"/api/config",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=o.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 l=e.get("next.route");if(l){let e=`${s} ${l}`;d.setAttributes({"next.route":l,"http.route":l,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",l),t.updateName(e))}else d.updateName(`${s} ${i}`)});p&&d?await f(d):(t=o.getActiveScopeSpan(),await o.withPropagatedContext(e.headers,()=>o.trace(v.BaseServerSpan.handleRequest,{spanName:`${s} ${i}`,kind:g.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},f),void 0,!p))}catch(e){if(w.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==s.waitUntil||s.waitUntil.call(s,Promise.resolve())}}e.s(["config",0,b,"default",0,P,"handler",0,y],671207)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0m9hms3._.js.map