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
@@ -24,6 +24,12 @@
24
24
  "fontSizeNormal": "正常",
25
25
  "fontSizeLarge": "大",
26
26
  "fontSizeXLarge": "特大",
27
+ "lineSpacing": "行距",
28
+ "lineSpacingDescription": "調整終端機的行距。",
29
+ "lineSpacingTight": "緊湊",
30
+ "lineSpacingNormal": "正常",
31
+ "lineSpacingRelaxed": "寬鬆",
32
+ "lineSpacingCustom": "自訂",
27
33
  "keyboardShortcuts": "鍵盤快捷鍵",
28
34
  "keyboardShortcutsDescription": "檢視並自訂所有鍵盤快捷鍵。",
29
35
  "openShortcuts": "開啟"
@@ -40,7 +46,14 @@
40
46
  },
41
47
  "terminal": {
42
48
  "theme": "終端機主題",
43
- "themeDescription": "為各模式選擇終端機色彩主題。"
49
+ "themeDescription": "為各模式選擇終端機色彩主題。",
50
+ "keyBar": "快捷鍵列",
51
+ "keyBarDescription": "在終端機下方顯示螢幕按鍵列(Tab、Esc、Ctrl、方向鍵),在觸控裝置上很方便。",
52
+ "keyBarOptions": {
53
+ "auto": "自動",
54
+ "always": "一律顯示",
55
+ "never": "永不"
56
+ }
44
57
  },
45
58
  "editor": {
46
59
  "preset": "編輯器",
@@ -120,7 +133,13 @@
120
133
  "bottom-left": "左下",
121
134
  "bottom-center": "底部置中",
122
135
  "bottom-right": "右下"
123
- }
136
+ },
137
+ "devicesSection": "已註冊裝置",
138
+ "devicesSectionDescription": "已訂閱推播通知的裝置。請移除不再使用的裝置。",
139
+ "deviceThis": "目前裝置",
140
+ "deviceRemove": "移除裝置",
141
+ "deviceRemoved": "已移除裝置",
142
+ "deviceRemoveFailed": "移除裝置失敗"
124
143
  },
125
144
  "agent": {
126
145
  "enableMenu": "啟用代理選單",
@@ -23,8 +23,8 @@
23
23
  "codeEdited": "已編輯程式碼",
24
24
  "commandsRunning": "正在執行 {count} 個指令...",
25
25
  "commandsExecuted": "已執行 {count} 個指令",
26
- "permissionRequired": "需要權限",
27
- "permissionLoading": "正在載入權限提示...",
26
+ "permissionRequired": "需要輸入",
27
+ "permissionLoading": "正在載入選項...",
28
28
  "permissionParseFailed": "無法載入選項。請在終端機標籤頁中直接回應。",
29
29
  "taskProgress": "任務進度",
30
30
  "toolUsageCount": "使用了 {count} 個工具",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "purplemux",
3
- "version": "0.3.2",
3
+ "version": "0.4.2",
4
4
  "description": "Manage multiple Claude Code sessions from your browser",
5
5
  "license": "MIT",
6
6
  "author": "subicura",
@@ -22,7 +22,7 @@
22
22
  "engines": {
23
23
  "node": ">=20.0.0"
24
24
  },
25
- "packageManager": "pnpm@10.32.1",
25
+ "packageManager": "pnpm@11.5.2",
26
26
  "main": "dist-electron/main.js",
27
27
  "bin": {
28
28
  "purplemux": "./bin/purplemux.js",
@@ -77,7 +77,7 @@
77
77
  "lucide-react": "^1.7.0",
78
78
  "motion": "^12.38.0",
79
79
  "nanoid": "^5.1.7",
80
- "next": "16.2.5",
80
+ "next": "16.2.6",
81
81
  "next-intl": "^4.11.0",
82
82
  "next-themes": "^0.4.6",
83
83
  "node-pty": "1.2.0-beta.12",
@@ -127,20 +127,5 @@
127
127
  "tsx": "^4.21.0",
128
128
  "typescript": "^5.9.3",
129
129
  "vitest": "^4.1.4"
130
- },
131
- "pnpm": {
132
- "onlyBuiltDependencies": [
133
- "electron",
134
- "node-pty"
135
- ],
136
- "overrides": {
137
- "hono": ">=4.12.14",
138
- "@hono/node-server": ">=1.19.13",
139
- "lodash": ">=4.18.0",
140
- "@xmldom/xmldom": "^0.8.13",
141
- "picomatch@>=2.0.0 <3.0.0": ">=2.3.2",
142
- "picomatch@>=4.0.0 <5.0.0": ">=4.0.4",
143
- "postcss": "8.5.14"
144
- }
145
130
  }
146
131
  }
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{"NEXT_PUBLIC_COMMIT_HASH":"70cbe6f"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":{"locales":["en","ko","ja","zh-CN","es","de","fr","pt-BR","zh-TW","ru","tr"],"defaultLocale":"en","localeDetection":false},"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":true,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/purplemux/purplemux","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["react-icons","lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":true,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["./release/**","./CLAUDE.md","./AGENTS.md","./README*.md","./docs/**","./.specs/**","./.claude/**","./tests/**"]},"turbopack":{"root":"/home/runner/work/purplemux/purplemux"},"distDirRoot":".next"}
12
+ const nextConfig = {"env":{"NEXT_PUBLIC_COMMIT_HASH":"3509564"},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":{"locales":["en","ko","ja","zh-CN","es","de","fr","pt-BR","zh-TW","ru","tr"],"defaultLocale":"en","localeDetection":false},"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":true,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/purplemux/purplemux","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["react-icons","lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":true,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["./release/**","./CLAUDE.md","./AGENTS.md","./README*.md","./docs/**","./.specs/**","./.claude/**","./tests/**"]},"turbopack":{"root":"/home/runner/work/purplemux/purplemux"},"distDirRoot":".next"}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
package/dist/server.js CHANGED
@@ -1378,6 +1378,9 @@ var require_sender = __commonJS({
1378
1378
  "use strict";
1379
1379
  var { Duplex } = require("stream");
1380
1380
  var { randomFillSync } = require("crypto");
1381
+ var {
1382
+ types: { isUint8Array }
1383
+ } = require("util");
1381
1384
  var PerMessageDeflate2 = require_permessage_deflate();
1382
1385
  var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants();
1383
1386
  var { isBlob, isValidStatusCode } = require_validation();
@@ -1531,8 +1534,10 @@ var require_sender = __commonJS({
1531
1534
  buf.writeUInt16BE(code, 0);
1532
1535
  if (typeof data === "string") {
1533
1536
  buf.write(data, 2);
1534
- } else {
1537
+ } else if (isUint8Array(data)) {
1535
1538
  buf.set(data, 2);
1539
+ } else {
1540
+ throw new TypeError("Second argument must be a string or a Uint8Array");
1536
1541
  }
1537
1542
  }
1538
1543
  const options = {
@@ -3691,6 +3696,7 @@ var init_url_alphabet = __esm({
3691
3696
 
3692
3697
  // node_modules/nanoid/index.js
3693
3698
  function fillPool(bytes) {
3699
+ if (bytes < 0 || bytes > 1024) throw new RangeError("Wrong ID size");
3694
3700
  if (!pool || pool.length < bytes) {
3695
3701
  pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
3696
3702
  import_node_crypto.webcrypto.getRandomValues(pool);
@@ -3720,7 +3726,7 @@ var init_nanoid = __esm({
3720
3726
  });
3721
3727
 
3722
3728
  // src/lib/shell-env.ts
3723
- var INHERITED_KEYS, INHERITED_PREFIXES, isInherited, FORCED_OVERRIDES, collectShellEnv, buildShellEnv, shQuote, defaultShell, buildShellLaunchCommand;
3729
+ var INHERITED_KEYS, INHERITED_PREFIXES, isInherited, FORCED_OVERRIDES, LOGIN_SHELL_BASE_PATH, collectShellEnv, buildShellEnv, shQuote, defaultShell, buildShellLaunchCommand;
3724
3730
  var init_shell_env = __esm({
3725
3731
  "src/lib/shell-env.ts"() {
3726
3732
  "use strict";
@@ -3749,6 +3755,7 @@ var init_shell_env = __esm({
3749
3755
  TERM: "xterm-256color",
3750
3756
  COLORTERM: "truecolor"
3751
3757
  };
3758
+ LOGIN_SHELL_BASE_PATH = "/usr/bin:/bin:/usr/sbin:/sbin";
3752
3759
  collectShellEnv = () => {
3753
3760
  const env = {};
3754
3761
  for (const [key, value] of Object.entries(PRISTINE_ENV)) {
@@ -3762,7 +3769,7 @@ var init_shell_env = __esm({
3762
3769
  shQuote = (s) => `'${s.replace(/'/g, `'\\''`)}'`;
3763
3770
  defaultShell = () => PRISTINE_ENV.SHELL || (process.platform === "darwin" ? "/bin/zsh" : "/bin/bash");
3764
3771
  buildShellLaunchCommand = () => {
3765
- const env = collectShellEnv();
3772
+ const env = { ...collectShellEnv(), PATH: LOGIN_SHELL_BASE_PATH };
3766
3773
  const envArgs = Object.entries(env).map(([k, v]) => `${k}=${shQuote(v)}`).join(" ");
3767
3774
  const tmuxVars = 'TMUX="$TMUX" TMUX_PANE="$TMUX_PANE"';
3768
3775
  return `env -i ${tmuxVars} ${envArgs} ${shQuote(defaultShell())} -l`;
@@ -33241,19 +33248,22 @@ var POST_RESTORE_DELAY_MS = 300;
33241
33248
  var sleep2 = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
33242
33249
  var capturePaneAtWidth = async (sessionName, cols, rows) => {
33243
33250
  const current = getActiveSessionSize(sessionName);
33244
- if (current && current.cols > NARROW_COLS_THRESHOLD) {
33251
+ if (current && current.cols > NARROW_COLS_THRESHOLD && current.rows >= rows) {
33245
33252
  return capturePaneContentWithHistory(sessionName, SCROLLBACK_LINES);
33246
33253
  }
33247
33254
  const orig = pauseSession(sessionName);
33248
33255
  if (!orig) return capturePaneContent(sessionName);
33249
33256
  try {
33250
- resizeSessionPty(sessionName, cols, rows);
33257
+ resizeSessionPty(
33258
+ sessionName,
33259
+ Math.max(current?.cols ?? 0, cols),
33260
+ Math.max(current?.rows ?? 0, rows)
33261
+ );
33251
33262
  await sleep2(PRE_CAPTURE_DELAY_MS);
33252
- const result = await capturePaneContent(sessionName);
33263
+ return await capturePaneContent(sessionName);
33264
+ } finally {
33253
33265
  resizeSessionPty(sessionName, orig.cols, orig.rows);
33254
33266
  await sleep2(POST_RESTORE_DELAY_MS);
33255
- return result;
33256
- } finally {
33257
33267
  resumeSession(sessionName);
33258
33268
  }
33259
33269
  };
@@ -33450,11 +33460,14 @@ var OPTION_KEYWORDS = [
33450
33460
  ];
33451
33461
  var INDICATOR_RE = /^\s*(?:[❯›>]\s+)?(.+)$/;
33452
33462
  var FOCUSED_RE = /^\s*[❯›>]\s+/;
33453
- var NUMBER_PREFIX_RE = /^\d+\.\s+/;
33454
- var NUMBERED_LINE_RE = /^\s*([❯›>])?\s*(\d+)\.?\s*(\S.*)$/;
33455
- var stripPrefix = (o) => o.replace(NUMBER_PREFIX_RE, "");
33456
- var hasOption = (options, prefix) => options.some((o) => stripPrefix(o).startsWith(prefix));
33463
+ var NUMBER_PREFIX_RE = /^(\d+)\.\s+/;
33464
+ var NUMBERED_LINE_RE = /^\s*([❯›>])?\s*(?:[↓↑]\s*)?(\d+)\.?\s*(\S.*)$/;
33465
+ var SEPARATOR_LINE_RE = /^[\s─━\-]+$/;
33466
+ var stripNumberPrefix = (label) => label.replace(NUMBER_PREFIX_RE, "");
33467
+ var hasOption = (options, prefix) => options.some((o) => stripNumberPrefix(o).startsWith(prefix));
33457
33468
  var leadingSpaces = (line) => line.match(/^\s*/)?.[0].length ?? 0;
33469
+ var cleanPromptLine = (line) => line.trim().replace(/^[☐☑]\s*/, "").trim();
33470
+ var isPromptTitleLine = (line) => /^[\s]*[☐☑]\s*\S/.test(line);
33458
33471
  var DAMAGED_DONT_ASK_RE = /^(Yes,\s*and\s+don[\u2019']?t\s+ask)\s*:\s*(.+)$/;
33459
33472
  var normalizeOption = (text) => {
33460
33473
  const damaged = text.match(DAMAGED_DONT_ASK_RE);
@@ -33467,22 +33480,53 @@ var isKnownPromptPattern = (options) => {
33467
33480
  if (options.length < 2) return false;
33468
33481
  return hasOption(options, "Yes") && hasOption(options, "No") || hasOption(options, "Accept") && hasOption(options, "Decline") || hasOption(options, "Open System Settings") || hasOption(options, "Use this") && hasOption(options, "Continue without") || hasOption(options, "Resume from summary") && hasOption(options, "Resume full session") || hasOption(options, "Continue this conversation") && hasOption(options, "Send message as");
33469
33482
  };
33483
+ var extractPromptText = (lines, optionStartIndex) => {
33484
+ if (optionStartIndex <= 0) return {};
33485
+ let cursor = optionStartIndex - 1;
33486
+ while (cursor >= 0 && (!lines[cursor].trim() || SEPARATOR_LINE_RE.test(lines[cursor]))) cursor -= 1;
33487
+ const requestLines = [];
33488
+ while (cursor >= 0 && lines[cursor].trim() && !SEPARATOR_LINE_RE.test(lines[cursor])) {
33489
+ requestLines.unshift(cleanPromptLine(lines[cursor]));
33490
+ cursor -= 1;
33491
+ }
33492
+ while (cursor >= 0 && (!lines[cursor].trim() || SEPARATOR_LINE_RE.test(lines[cursor]))) cursor -= 1;
33493
+ const titleLines = [];
33494
+ const rawTitleLines = [];
33495
+ while (cursor >= 0 && lines[cursor].trim() && !SEPARATOR_LINE_RE.test(lines[cursor])) {
33496
+ rawTitleLines.unshift(lines[cursor]);
33497
+ titleLines.unshift(cleanPromptLine(lines[cursor]));
33498
+ cursor -= 1;
33499
+ }
33500
+ const request = requestLines.join("\n").trim();
33501
+ const title = rawTitleLines.some(isPromptTitleLine) ? titleLines.join("\n").trim() : "";
33502
+ return {
33503
+ ...title && { title },
33504
+ ...request && { request }
33505
+ };
33506
+ };
33507
+ var withPromptText = (parsed, lines, optionStartIndex) => ({
33508
+ ...parsed,
33509
+ ...extractPromptText(lines, optionStartIndex)
33510
+ });
33470
33511
  var parseNumberedOptions = (lines) => {
33471
33512
  const blocks = [];
33472
33513
  let rawOptions = [];
33473
33514
  let focusedIndex = 0;
33474
33515
  let expected = 1;
33475
33516
  let lastOptionIndent = 0;
33517
+ let optionStartIndex = -1;
33476
33518
  const flush = () => {
33477
33519
  if (rawOptions.length >= 2) {
33478
- blocks.push({ rawOptions: rawOptions.slice(), focusedIndex });
33520
+ blocks.push({ rawOptions: rawOptions.slice(), focusedIndex, optionStartIndex });
33479
33521
  }
33480
33522
  rawOptions = [];
33481
33523
  focusedIndex = 0;
33482
33524
  expected = 1;
33483
33525
  lastOptionIndent = 0;
33526
+ optionStartIndex = -1;
33484
33527
  };
33485
- for (const line of lines) {
33528
+ for (let i = 0; i < lines.length; i += 1) {
33529
+ const line = lines[i];
33486
33530
  if (!line.trim()) continue;
33487
33531
  const match = line.match(NUMBERED_LINE_RE);
33488
33532
  if (match) {
@@ -33495,6 +33539,7 @@ var parseNumberedOptions = (lines) => {
33495
33539
  rawOptions.push(rest);
33496
33540
  if (marker) focusedIndex = 0;
33497
33541
  lastOptionIndent = leadingSpaces(line);
33542
+ optionStartIndex = i;
33498
33543
  expected = 2;
33499
33544
  continue;
33500
33545
  }
@@ -33520,15 +33565,19 @@ var parseNumberedOptions = (lines) => {
33520
33565
  const best = blocks[blocks.length - 1];
33521
33566
  if (!best) return { options: [], focusedIndex: 0 };
33522
33567
  return {
33523
- options: best.rawOptions.map((raw, i) => `${i + 1}. ${normalizeOption(raw)}`),
33524
- focusedIndex: best.focusedIndex
33568
+ ...withPromptText({
33569
+ options: best.rawOptions.map((raw, i) => `${i + 1}. ${normalizeOption(raw)}`),
33570
+ focusedIndex: best.focusedIndex
33571
+ }, lines, best.optionStartIndex)
33525
33572
  };
33526
33573
  };
33527
33574
  var parseKeywordOptions = (lines) => {
33528
33575
  const options = [];
33529
33576
  let focusedIndex = 0;
33577
+ let optionStartIndex = -1;
33530
33578
  let foundFirst = false;
33531
- for (const line of lines) {
33579
+ for (let i = 0; i < lines.length; i += 1) {
33580
+ const line = lines[i];
33532
33581
  if (!line.trim()) {
33533
33582
  if (foundFirst) break;
33534
33583
  continue;
@@ -33542,15 +33591,16 @@ var parseKeywordOptions = (lines) => {
33542
33591
  const match = line.match(INDICATOR_RE);
33543
33592
  if (!match) continue;
33544
33593
  const label = match[1].trim();
33545
- const stripped = stripPrefix(label);
33594
+ const stripped = stripNumberPrefix(label);
33546
33595
  const isKeyword = OPTION_KEYWORDS.some((kw) => stripped.startsWith(kw));
33547
33596
  if (isKeyword) {
33597
+ if (options.length === 0) optionStartIndex = i;
33548
33598
  if (isFocused) focusedIndex = options.length;
33549
33599
  options.push(label);
33550
33600
  foundFirst = true;
33551
33601
  }
33552
33602
  }
33553
- return { options, focusedIndex };
33603
+ return withPromptText({ options, focusedIndex }, lines, optionStartIndex);
33554
33604
  };
33555
33605
  var parsePermissionOptions = (paneContent) => {
33556
33606
  const lines = paneContent.split("\n");
@@ -36523,7 +36573,7 @@ init_logger();
36523
36573
  // package.json
36524
36574
  var package_default = {
36525
36575
  name: "purplemux",
36526
- version: "0.3.2",
36576
+ version: "0.4.2",
36527
36577
  description: "Manage multiple Claude Code sessions from your browser",
36528
36578
  license: "MIT",
36529
36579
  author: "subicura",
@@ -36545,7 +36595,7 @@ var package_default = {
36545
36595
  engines: {
36546
36596
  node: ">=20.0.0"
36547
36597
  },
36548
- packageManager: "pnpm@10.32.1",
36598
+ packageManager: "pnpm@11.5.2",
36549
36599
  main: "dist-electron/main.js",
36550
36600
  bin: {
36551
36601
  purplemux: "./bin/purplemux.js",
@@ -36600,7 +36650,7 @@ var package_default = {
36600
36650
  "lucide-react": "^1.7.0",
36601
36651
  motion: "^12.38.0",
36602
36652
  nanoid: "^5.1.7",
36603
- next: "16.2.5",
36653
+ next: "16.2.6",
36604
36654
  "next-intl": "^4.11.0",
36605
36655
  "next-themes": "^0.4.6",
36606
36656
  "node-pty": "1.2.0-beta.12",
@@ -36650,21 +36700,6 @@ var package_default = {
36650
36700
  tsx: "^4.21.0",
36651
36701
  typescript: "^5.9.3",
36652
36702
  vitest: "^4.1.4"
36653
- },
36654
- pnpm: {
36655
- onlyBuiltDependencies: [
36656
- "electron",
36657
- "node-pty"
36658
- ],
36659
- overrides: {
36660
- hono: ">=4.12.14",
36661
- "@hono/node-server": ">=1.19.13",
36662
- lodash: ">=4.18.0",
36663
- "@xmldom/xmldom": "^0.8.13",
36664
- "picomatch@>=2.0.0 <3.0.0": ">=2.3.2",
36665
- "picomatch@>=4.0.0 <5.0.0": ">=4.0.4",
36666
- postcss: "8.5.14"
36667
- }
36668
36703
  }
36669
36704
  };
36670
36705
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "purplemux",
3
- "version": "0.3.2",
3
+ "version": "0.4.2",
4
4
  "description": "Manage multiple Claude Code sessions from your browser",
5
5
  "license": "MIT",
6
6
  "author": "subicura",
@@ -22,7 +22,7 @@
22
22
  "engines": {
23
23
  "node": ">=20.0.0"
24
24
  },
25
- "packageManager": "pnpm@10.32.1",
25
+ "packageManager": "pnpm@11.5.2",
26
26
  "main": "dist-electron/main.js",
27
27
  "bin": {
28
28
  "purplemux": "./bin/purplemux.js",
@@ -77,7 +77,7 @@
77
77
  "lucide-react": "^1.7.0",
78
78
  "motion": "^12.38.0",
79
79
  "nanoid": "^5.1.7",
80
- "next": "16.2.5",
80
+ "next": "16.2.6",
81
81
  "next-intl": "^4.11.0",
82
82
  "next-themes": "^0.4.6",
83
83
  "node-pty": "1.2.0-beta.12",
@@ -127,20 +127,5 @@
127
127
  "tsx": "^4.21.0",
128
128
  "typescript": "^5.9.3",
129
129
  "vitest": "^4.1.4"
130
- },
131
- "pnpm": {
132
- "onlyBuiltDependencies": [
133
- "electron",
134
- "node-pty"
135
- ],
136
- "overrides": {
137
- "hono": ">=4.12.14",
138
- "@hono/node-server": ">=1.19.13",
139
- "lodash": ">=4.18.0",
140
- "@xmldom/xmldom": "^0.8.13",
141
- "picomatch@>=2.0.0 <3.0.0": ">=2.3.2",
142
- "picomatch@>=4.0.0 <5.0.0": ">=4.0.4",
143
- "postcss": "8.5.14"
144
- }
145
130
  }
146
131
  }
@@ -1,3 +0,0 @@
1
- module.exports=[446786,(e,r,t)=>{r.exports=e.x("os",()=>require("os"))},814747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},270406,(e,r,t)=>{r.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},254799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},522734,(e,r,t)=>{r.exports=e.x("fs",()=>require("fs"))}];
2
-
3
- //# sourceMappingURL=%5Bexternals%5D__07eo6bi._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[175609,(e,t,r)=>{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 r=globalThis,s=r.__purplemux_terminal_connections??=new Map;r.__purplemux_terminal_output_ts??=new Map;let a=(e,t,r)=>{for(let a of s.values())if(a.sessionName===e&&!a.cleaned)return void a.pty.resize(t,r)},n=e=>new Promise(t=>setTimeout(t,e)),i=async(e,r,i)=>{let o=(e=>{for(let t of s.values())if(t.sessionName===e&&!t.cleaned)return{cols:t.currentCols,rows:t.currentRows};return null})(e);if(o&&o.cols>50)return(0,t.capturePaneContentWithHistory)(e,50);let l=(e=>{for(let t of s.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(!l)return(0,t.capturePaneContent)(e);try{a(e,r,i),await n(300);let s=await (0,t.capturePaneContent)(e);return a(e,l.cols,l.rows),await n(300),s}finally{(e=>{for(let t of s.values())if(t.sessionName===e&&!t.cleaned){if(!t.capturePaused)return;t.capturePaused=!1;return}})(e)}};e.s(["capturePaneAtWidth",0,i],971780)},8372,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),a=e.i(262950),n=e.i(459015),i=e.i(971780);let o=(0,e.i(25146).createLogger)("tmux"),l=/^\s*(?:[❯›>]\s+)?(?:\d+\.\s+)?(.+)$/,u=["Yes,","Yes ","No,","No ","Tell Claude"],p=e=>/^\s+\S/.test(e)||/^\s*[❯›>]/.test(e),d=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.session;if(!r)return t.status(400).json({error:"session parameter required"});if(!await (0,n.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let e=await (0,i.capturePaneAtWidth)(r,120,50);if(!e)return t.status(200).json({options:[]});let s=(e=>{let t=e.split("\n"),r=[],s=!1;for(let e of t){if(!e.trim()||!p(e)){if(s)break;continue}let t=e.match(l);if(!t)continue;let a=t[1].trim();if(s)if(u.some(e=>a.startsWith(e)))r.push(a);else break;else u.some(e=>a.startsWith(e))&&(r.push(a),s=!0)}return r})(e);return t.status(200).json({options:s})}catch(e){return o.error(`plan-options query failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Terminal capture failed"})}};e.s(["default",0,d],875757);var c=e.i(875757),f=e.i(7031),m=e.i(181927),h=e.i(846432);let v=(0,a.hoist)(c,"default"),w=(0,a.hoist)(c,"config"),x=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/plan-options",pathname:"/api/tmux/plan-options",bundlePath:"",filename:""},userland:c,distDir:".next",relativeProjectDir:""});async function g(e,r,s){s.requestMeta&&(0,h.setRequestMeta)(e,s.requestMeta),x.isDev&&(0,h.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/tmux/plan-options";a=a.replace(/\/index$/,"")||"/";let n=await x.prepare(e,r,{srcPage:a});if(!n){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:i,params:o,prerenderManifest:l,routerServerContext:u}=n;try{let t,s=e.method||"GET",n=(0,f.getTracer)(),p=n.getActiveScopeSpan(),d=!!(null==u?void 0:u.isWrappedByNextServer),c=x.instrumentationOnRequestError.bind(x),h=async p=>x.render(e,r,{query:{...i,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:x.isDev,page:"/api/tmux/plan-options",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=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=e.get("next.route");if(i){let e=`${s} ${i}`;p.setAttributes({"next.route":i,"http.route":i,"next.span_name":e}),p.updateName(e),t&&t!==p&&(t.setAttribute("http.route",i),t.updateName(e))}else p.updateName(`${s} ${a}`)});d&&p?await h(p):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(m.BaseServerSpan.handleRequest,{spanName:`${s} ${a}`,kind:f.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},h),void 0,!d))}catch(e){if(x.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==s.waitUntil||s.waitUntil.call(s,Promise.resolve())}}e.s(["config",0,w,"default",0,v,"handler",0,g],8372)},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__00blz4b._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[319668,(e,t,r)=>{t.exports=e.x("readline",()=>require("readline"))},746514,e=>{"use strict";let t;var r=e.i(924868),a=e.i(522734),s=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=s.default.join(process.env.HOME||process.env.USERPROFILE||"/",".claude","projects"),p=(t=new Map,{get:(e,r)=>{let a=u(e,r),s=t.get(a);if(s)return Date.now()-s.cachedAt>3e4?void t.delete(a):s.meta},set:(e,r,a,s)=>{t.set(u(e,r),{meta:a,mtime:s,cachedAt:Date.now()})},isStale:(e,r,a)=>{let s=u(e,r),i=t.get(s);return!i||(Date.now()-i.cachedAt>3e4?(t.delete(s),!0):i.mtime!==a)},clear:()=>{t.clear()}}),m=e=>{let t=(0,n.toClaudeProjectName)(e);return s.default.join(c,t)},f=async(e,t)=>{let r=Array(e.length),a=0,s=async()=>{for(;a<e.length;){let t=a++;try{let a=await e[t]();r[t]={status:"fulfilled",value:a}}catch(e){r[t]={status:"rejected",reason:e}}}},i=Array.from({length:Math.min(t,e.length)},()=>s());return await Promise.all(i),r},h=e=>e.length<=200?e:e.slice(0,200)+"…",g=async e=>{let t=(0,a.createReadStream)(e,{encoding:"utf-8"}),r=i.default.createInterface({input:t,crlfDelay:1/0}),s=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&&(s=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:s,firstMessage:n,turnCount:l}},y=async e=>{try{let t=await r.default.stat(e),a=s.default.basename(e,".jsonl"),i=p.get("claude",a);if(i&&!p.isStale("claude",a,t.mtimeMs))return i;let{startedAt:n,firstMessage:l,turnCount:o}=await g(e),u=n||t.birthtime.toISOString(),d=t.mtime.toISOString(),c={sessionId:a,startedAt:u,lastActivityAt:d,firstMessage:l,turnCount:o};return p.set("claude",a,c,t.mtimeMs),c}catch(t){return d.warn({err:t},`failed to parse session meta: ${e}`),null}},w=async(e,t)=>{let a,i=t||await (0,l.getSessionCwd)(e);if(!i)throw Error("cwd-lookup-failed");let n=m(i);try{a=(await r.default.readdir(n)).filter(e=>e.endsWith(".jsonl"))}catch{return[]}let o=a.map(e=>()=>y(s.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,w],746514)},220536,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),s=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 a=Math.max(1,parseInt(e.query.limit,10)||50),s=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(s,s+a),u=s+a<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,s.hoist)(o,"default"),m=(0,s.hoist)(o,"config"),f=new a.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,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),f.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/timeline/sessions";s=s.replace(/\/index$/,"")||"/";let i=await f.prepare(e,r,{srcPage:s});if(!i){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:n,params:l,prerenderManifest:o,routerServerContext:p}=i;try{let t,a=e.method||"GET",i=(0,u.getTracer)(),c=i.getActiveScopeSpan(),m=!!(null==p?void 0:p.isWrappedByNextServer),h=f.instrumentationOnRequestError.bind(f),g=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=`${a} ${n}`;u.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",n),t.updateName(e))}else u.updateName(`${a} ${s}`)});m&&c?await g(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(d.BaseServerSpan.handleRequest,{spanName:`${a} ${s}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},g),void 0,!m))}catch(e){if(f.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,m,"default",0,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__00erel2._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[319668,(t,e,r)=>{e.exports=t.x("readline",()=>require("readline"))},990294,(t,e,r)=>{t.e,e.exports=function(){"use strict";var t="millisecond",e="second",r="minute",n="hour",s="week",i="month",a="quarter",u="year",o="date",c="Invalid Date",d=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,l=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h=function(t,e,r){var n=String(t);return!n||n.length>=e?t:""+Array(e+1-n.length).join(r)+t},f="en",$={};$[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],r=t%100;return"["+t+(e[(r-20)%10]||e[r]||e[0])+"]"}};var p="$isDayjsObject",v=function(t){return t instanceof M||!(!t||!t[p])},m=function t(e,r,n){var s;if(!e)return f;if("string"==typeof e){var i=e.toLowerCase();$[i]&&(s=i),r&&($[i]=r,s=i);var a=e.split("-");if(!s&&a.length>1)return t(a[0])}else{var u=e.name;$[u]=e,s=u}return!n&&s&&(f=s),s||!n&&f},y=function(t,e){if(v(t))return t.clone();var r="object"==typeof e?e:{};return r.date=t,r.args=arguments,new M(r)},g={s:h,z:function(t){var e=-t.utcOffset(),r=Math.abs(e);return(e<=0?"+":"-")+h(Math.floor(r/60),2,"0")+":"+h(r%60,2,"0")},m:function t(e,r){if(e.date()<r.date())return-t(r,e);var n=12*(r.year()-e.year())+(r.month()-e.month()),s=e.clone().add(n,i),a=r-s<0,u=e.clone().add(n+(a?-1:1),i);return+(-(n+(r-s)/(a?s-u:u-s))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(c){return({M:i,y:u,w:s,d:"day",D:o,h:n,m:r,s:e,ms:t,Q:a})[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}};g.l=m,g.i=v,g.w=function(t,e){return y(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var M=function(){function h(t){this.$L=m(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var f=h.prototype;return f.parse=function(t){this.$d=function(t){var e=t.date,r=t.utc;if(null===e)return new Date(NaN);if(g.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var n=e.match(d);if(n){var s=n[2]-1||0,i=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)):new Date(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)}}return new Date(e)}(t),this.init()},f.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},f.$utils=function(){return g},f.isValid=function(){return this.$d.toString()!==c},f.isSame=function(t,e){var r=y(t);return this.startOf(e)<=r&&r<=this.endOf(e)},f.isAfter=function(t,e){return y(t)<this.startOf(e)},f.isBefore=function(t,e){return this.endOf(e)<y(t)},f.$g=function(t,e,r){return g.u(t)?this[e]:this.set(r,t)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(t,a){var c=this,d=!!g.u(a)||a,l=g.p(t),h=function(t,e){var r=g.w(c.$u?Date.UTC(c.$y,e,t):new Date(c.$y,e,t),c);return d?r:r.endOf("day")},f=function(t,e){return g.w(c.toDate()[t].apply(c.toDate("s"),(d?[0,0,0,0]:[23,59,59,999]).slice(e)),c)},$=this.$W,p=this.$M,v=this.$D,m="set"+(this.$u?"UTC":"");switch(l){case u:return d?h(1,0):h(31,11);case i:return d?h(1,p):h(0,p+1);case s:var y=this.$locale().weekStart||0,M=($<y?$+7:$)-y;return h(d?v-M:v+(6-M),p);case"day":case o:return f(m+"Hours",0);case n:return f(m+"Minutes",1);case r:return f(m+"Seconds",2);case e:return f(m+"Milliseconds",3);default:return this.clone()}},f.endOf=function(t){return this.startOf(t,!1)},f.$set=function(s,a){var c,d=g.p(s),l="set"+(this.$u?"UTC":""),h=((c={}).day=l+"Date",c[o]=l+"Date",c[i]=l+"Month",c[u]=l+"FullYear",c[n]=l+"Hours",c[r]=l+"Minutes",c[e]=l+"Seconds",c[t]=l+"Milliseconds",c)[d],f="day"===d?this.$D+(a-this.$W):a;if(d===i||d===u){var $=this.clone().set(o,1);$.$d[h](f),$.init(),this.$d=$.set(o,Math.min(this.$D,$.daysInMonth())).$d}else h&&this.$d[h](f);return this.init(),this},f.set=function(t,e){return this.clone().$set(t,e)},f.get=function(t){return this[g.p(t)]()},f.add=function(t,a){var o,c=this;t=Number(t);var d=g.p(a),l=function(e){var r=y(c);return g.w(r.date(r.date()+Math.round(e*t)),c)};if(d===i)return this.set(i,this.$M+t);if(d===u)return this.set(u,this.$y+t);if("day"===d)return l(1);if(d===s)return l(7);var h=((o={})[r]=6e4,o[n]=36e5,o[e]=1e3,o)[d]||1,f=this.$d.getTime()+t*h;return g.w(f,this)},f.subtract=function(t,e){return this.add(-1*t,e)},f.format=function(t){var e=this,r=this.$locale();if(!this.isValid())return r.invalidDate||c;var n=t||"YYYY-MM-DDTHH:mm:ssZ",s=g.z(this),i=this.$H,a=this.$m,u=this.$M,o=r.weekdays,d=r.months,h=r.meridiem,f=function(t,r,s,i){return t&&(t[r]||t(e,n))||s[r].slice(0,i)},$=function(t){return g.s(i%12||12,t,"0")},p=h||function(t,e,r){var n=t<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(l,function(t,n){return n||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return g.s(e.$y,4,"0");case"M":return u+1;case"MM":return g.s(u+1,2,"0");case"MMM":return f(r.monthsShort,u,d,3);case"MMMM":return f(d,u);case"D":return e.$D;case"DD":return g.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return f(r.weekdaysMin,e.$W,o,2);case"ddd":return f(r.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(i);case"HH":return g.s(i,2,"0");case"h":return $(1);case"hh":return $(2);case"a":return p(i,a,!0);case"A":return p(i,a,!1);case"m":return String(a);case"mm":return g.s(a,2,"0");case"s":return String(e.$s);case"ss":return g.s(e.$s,2,"0");case"SSS":return g.s(e.$ms,3,"0");case"Z":return s}return null}(t)||s.replace(":","")})},f.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},f.diff=function(t,o,c){var d,l=this,h=g.p(o),f=y(t),$=(f.utcOffset()-this.utcOffset())*6e4,p=this-f,v=function(){return g.m(l,f)};switch(h){case u:d=v()/12;break;case i:d=v();break;case a:d=v()/3;break;case s:d=(p-$)/6048e5;break;case"day":d=(p-$)/864e5;break;case n:d=p/36e5;break;case r:d=p/6e4;break;case e:d=p/1e3;break;default:d=p}return c?d:g.a(d)},f.daysInMonth=function(){return this.endOf(i).$D},f.$locale=function(){return $[this.$L]},f.locale=function(t,e){if(!t)return this.$L;var r=this.clone(),n=m(t,e,!0);return n&&(r.$L=n),r},f.clone=function(){return g.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},h}(),S=M.prototype;return y.prototype=S,[["$ms",t],["$s",e],["$m",r],["$H",n],["$W","day"],["$M",i],["$y",u],["$D",o]].forEach(function(t){S[t[1]]=function(e){return this.$g(e,t[0],t[1])}}),y.extend=function(t,e){return t.$i||(t(e,M,y),t.$i=!0),y},y.locale=m,y.isDayjs=v,y.unix=function(t){return y(1e3*t)},y.en=$[f],y.Ls=$,y.p={},y}()},843866,t=>{"use strict";var e=t.i(926747),r=t.i(190406),n=t.i(244898),s=t.i(262950),i=t.i(7991);let a=async(t,e)=>{if("POST"!==t.method)return e.setHeader("Allow","POST"),e.status(405).json({error:"method-not-allowed"});let{date:r,force:n,locale:s,provider:a}=t.body;if(!r||!/^\d{4}-\d{2}-\d{2}$/.test(r))return e.status(400).json({error:"invalid-date",message:"date must be YYYY-MM-DD"});if(void 0!==a&&"claude"!==a&&"codex"!==a)return e.status(400).json({error:"invalid-provider",message:"provider must be claude or codex"});let u="string"==typeof s&&s.trim()?s:"en";try{let t=await (0,i.generateDailyReport)(r,!!n,u,a);return e.status(200).json(t)}catch(r){let t=r instanceof Error?r.message:"unknown error";return e.status(500).json({error:"generation-failed",message:t})}};t.s(["default",0,a],806436);var u=t.i(806436),o=t.i(7031),c=t.i(181927),d=t.i(846432);let l=(0,s.hoist)(u,"default"),h=(0,s.hoist)(u,"config"),f=new n.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/stats/daily-report/generate",pathname:"/api/stats/daily-report/generate",bundlePath:"",filename:""},userland:u,distDir:".next",relativeProjectDir:""});async function $(t,r,n){n.requestMeta&&(0,d.setRequestMeta)(t,n.requestMeta),f.isDev&&(0,d.addRequestMeta)(t,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/stats/daily-report/generate";s=s.replace(/\/index$/,"")||"/";let i=await f.prepare(t,r,{srcPage:s});if(!i){r.statusCode=400,r.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve());return}let{query:a,params:u,prerenderManifest:l,routerServerContext:h}=i;try{let e,n=t.method||"GET",i=(0,o.getTracer)(),d=i.getActiveScopeSpan(),$=!!(null==h?void 0:h.isWrappedByNextServer),p=f.instrumentationOnRequestError.bind(f),v=async o=>f.render(t,r,{query:{...a,...u},params:u,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:f.isDev,page:"/api/stats/daily-report/generate",internalRevalidate:null==h?void 0:h.revalidate,onError:(...e)=>p(t,...e)}).finally(()=>{if(!o)return;o.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let t=i.getRootSpanAttributes();if(!t)return;if(t.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${t.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=t.get("next.route");if(a){let t=`${n} ${a}`;o.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),o.updateName(t),e&&e!==o&&(e.setAttribute("http.route",a),e.updateName(t))}else o.updateName(`${n} ${s}`)});$&&d?await v(d):(e=i.getActiveScopeSpan(),await i.withPropagatedContext(t.headers,()=>i.trace(c.BaseServerSpan.handleRequest,{spanName:`${n} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":n,"http.target":t.url}},v),void 0,!$))}catch(t){if(f.isDev)throw t;(0,e.sendError)(r,500,"Internal Server Error")}finally{null==n.waitUntil||n.waitUntil.call(n,Promise.resolve())}}t.s(["config",0,h,"default",0,l,"handler",0,$],843866)},981532,t=>{t.v(e=>Promise.all(["server/chunks/src_lib_0kkbnw5._.js"].map(e=>t.l(e))).then(()=>e(322429)))},322522,t=>{t.v(t=>Promise.resolve().then(()=>t(459015)))},245061,t=>{t.v(e=>Promise.all(["server/chunks/src_lib_tab-title_ts_0onatvs._.js"].map(e=>t.l(e))).then(()=>e(785128)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__00keyoc._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[522734,(t,e,r)=>{e.exports=t.x("fs",()=>require("fs"))},688947,(t,e,r)=>{e.exports=t.x("stream",()=>require("stream"))},406461,(t,e,r)=>{e.exports=t.x("zlib",()=>require("zlib"))},254799,(t,e,r)=>{e.exports=t.x("crypto",()=>require("crypto"))},524836,(t,e,r)=>{e.exports=t.x("https",()=>require("https"))},921517,(t,e,r)=>{e.exports=t.x("http",()=>require("http"))},504446,(t,e,r)=>{e.exports=t.x("net",()=>require("net"))},755004,(t,e,r)=>{e.exports=t.x("tls",()=>require("tls"))},792509,(t,e,r)=>{e.exports=t.x("url",()=>require("url"))},500874,(t,e,r)=>{e.exports=t.x("buffer",()=>require("buffer"))},427699,(t,e,r)=>{e.exports=t.x("events",()=>require("events"))},270406,(t,e,r)=>{e.exports=t.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(t,e,r)=>{e.exports=t.x("os",()=>require("os"))},814747,(t,e,r)=>{e.exports=t.x("path",()=>require("path"))},924868,(t,e,r)=>{e.exports=t.x("fs/promises",()=>require("fs/promises"))},130146,(t,e,r)=>{e.exports=t.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,t=>{"use strict";var e=t.i(130146),r=t.i(814747),a=t.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),s=process.env.LOG_LEVEL||"info",n=(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=[s,...Object.values(n)].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=n[t]??s,e}])},666680,(t,e,r)=>{e.exports=t.x("node:crypto",()=>require("node:crypto"))},224361,(t,e,r)=>{e.exports=t.x("util",()=>require("util"))},233405,(t,e,r)=>{e.exports=t.x("child_process",()=>require("child_process"))},44014,t=>{"use strict";let e,r;var a=t.i(666680);t.s(["nanoid",0,function(t=21){var i;i=t|=0,!e||e.length<i?(e=Buffer.allocUnsafe(128*i),a.webcrypto.getRandomValues(e),r=0):r+i>e.length&&(a.webcrypto.getRandomValues(e),r=0),r+=i;let s="";for(let a=r-t;a<r;a++)s+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&e[a]];return s}],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),s=t.i(44014);let n=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(n?JSON.parse(n):{...process.env});n||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),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,"'\\''")}'`,f=()=>l.SHELL||"/bin/bash",y=()=>{let t=Object.entries(m()).map(([t,e])=>`${t}=${d(e)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${t} ${d(f())} -l`};t.s(["buildShellEnv",0,()=>m(),"buildShellLaunchCommand",0,y,"defaultShell",0,f],597789);var h=t.i(25146);process.platform;let w="linux"===process.platform,x=(0,a.promisify)(e.execFile),g=async t=>{try{let{stdout:e}=await x("pgrep",["-P",String(t)]);return e.trim().split("\n").map(t=>parseInt(t,10)).filter(t=>!Number.isNaN(t))}catch{return[]}},S=async t=>{if(w)try{return await r.default.readlink(`/proc/${t}/cwd`)}catch{return null}try{let{stdout:e}=await x("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 x("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 x("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,g,"getProcessArgs",0,_,"getProcessCwd",0,S,"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,h.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=y();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 F(),P.debug(`tmux session created: ${t} (cols: ${e}, rows: ${r})`)},v=t=>new Promise(e=>setTimeout(e,t)),$=async t=>{if(!await k(t))return;P.debug(`killSession start: ${t}`);let e=await A(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 v(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 v(200)}P.warn(`tmux session still alive after kill: ${t}`)},T=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()=>{},q=async()=>{await R();let t=await b();t.length>0&&t.forEach(t=>{P.debug(`existing tmux session found: ${t}`)})},C=async t=>{if(w)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}},O=async t=>{let e=await A(t);if(e){let t=await C(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}},A=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}},F=async()=>{try{await I("tmux",["-L",N,"source-file",E],{timeout:5e3})}catch{}},H=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}},D=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,s,n]=r.split(" ");if(t&&a){let r=parseInt(s,10),l=parseInt(n,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}},G=new Set(["bash","zsh","fish","sh","dash"]),U=async t=>{let e=await H(t);return e?{isSafe:G.has(e),processName:e}:{isSafe:!1,processName:"unknown"}},j=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 v(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,s,n,l]=e.trim().split(" ");return{cwd:r||null,command:a||null,pid:i&&parseInt(i,10)||null,width:s&&parseInt(s,10)||null,height:n&&parseInt(n,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},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(w){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(w)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 A(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 s=a.split(/\s+/);if(0===s.length)return a;if(s[0]=i.default.basename(s[0]),B.has(s[0])&&s.length>1){let t=i.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,t)}return s.join(" ")}catch{return null}};t.s(["SAFE_SHELLS",0,G,"applyConfig",0,F,"capturePaneContent",0,Z,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,U,"createSession",0,M,"defaultSessionName",0,()=>`pt-${(0,s.nanoid)(6)}-${(0,s.nanoid)(6)}-${(0,s.nanoid)(6)}`,"exitCopyMode",0,K,"getAllPanesInfo",0,D,"getLastCommand",0,ti,"getListeningPorts",0,ta,"getPaneCurrentCommand",0,H,"getPaneDetailInfo",0,Y,"getPaneTitle",0,j,"getSessionCwd",0,O,"getSessionPanePid",0,A,"hasSession",0,k,"killServer",0,J,"killSession",0,$,"listSessions",0,b,"resolveExistingDir",0,T,"scanSessions",0,q,"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__00rusjd._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,r)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let n=r.default.join(a.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[i,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(n,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??i,t}])},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},44014,e=>{"use strict";let t,r;var a=e.i(666680);e.s(["nanoid",0,function(e=21){var n;n=e|=0,!t||t.length<n?(t=Buffer.allocUnsafe(128*n),a.webcrypto.getRandomValues(t),r=0):r+n>t.length&&(a.webcrypto.getRandomValues(t),r=0),r+=n;let i="";for(let a=r-e;a<r;a++)i+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[a]];return i}],44014)},459015,965898,597789,333184,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),n=e.i(814747),i=e.i(44014);let s=process.env.__PMUX_PRISTINE_ENV,l=Object.freeze(s?JSON.parse(s):{...process.env});s||(process.env.__PMUX_PRISTINE_ENV=JSON.stringify(l)),e.s(["PRISTINE_ENV",0,l],965898);let o=new Set(["HOME","USER","LOGNAME","SHELL","PATH","TERM","COLORTERM","LANG","TMPDIR","SSH_AUTH_SOCK","SSH_CONNECTION","SSH_TTY","DISPLAY","WAYLAND_DISPLAY","XDG_RUNTIME_DIR","TZ"]),u=["LC_"],c=e=>o.has(e)||u.some(t=>e.startsWith(t)),p={TERM:"xterm-256color",COLORTERM:"truecolor"},d=()=>{let e={};for(let[t,r]of Object.entries(l))void 0!==r&&c(t)&&(e[t]=r);return{...e,...p}},m=e=>`'${e.replace(/'/g,"'\\''")}'`,f=()=>l.SHELL||"/bin/bash",y=()=>{let e=Object.entries(d()).map(([e,t])=>`${e}=${m(t)}`).join(" ");return`env -i TMUX="$TMUX" TMUX_PANE="$TMUX_PANE" ${e} ${m(f())} -l`};e.s(["buildShellEnv",0,()=>d(),"buildShellLaunchCommand",0,y,"defaultShell",0,f],597789);var h=e.i(25146);process.platform;let w="linux"===process.platform,g=(0,a.promisify)(t.execFile),S=async e=>{try{let{stdout:t}=await g("pgrep",["-P",String(e)]);return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},x=async e=>{if(w)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await g("lsof",["-a","-p",String(e),"-d","cwd","-Fn"]),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},_=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","args="],t?.timeoutMs?{timeout:t.timeoutMs}:{});return r.trim()}catch{return null}},v=async(e,t)=>{try{let{stdout:r}=await g("ps",["-p",String(e),"-o","lstart="],t?.timeoutMs?{timeout:t.timeoutMs}:{}),a=Date.parse(r.trim().replace(/\s+/g," "));return Number.isFinite(a)?a:null}catch{return null}};e.s(["getChildPids",0,S,"getProcessArgs",0,_,"getProcessCwd",0,x,"getProcessStartTimeMs",0,v,"isProcessRunning",0,e=>new Promise(r=>{(0,t.execFile)("ps",["-p",String(e)],e=>{r(!e)})}),"parseSemanticVersion",0,e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null],333184);let L=(0,h.createLogger)("terminal"),P=(0,a.promisify)(t.execFile),E="purple",b=n.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),N=async()=>{try{let{stdout:e}=await P("tmux",["-L",E,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},I=async(e,t,r,a)=>{let n=y();await P("tmux",["-u","-L",E,"-f",b,"new-session","-d","-s",e,"-x",String(t),"-y",String(r),n],{timeout:5e3,cwd:a||l.HOME||"/"}),await O(),L.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},$=e=>new Promise(t=>setTimeout(t,e)),R=async e=>{if(!await T(e))return;L.debug(`killSession start: ${e}`);let t=await j(e);if(t)try{L.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await T(e))return void L.debug(`killSession done (SIGTERM): ${e}`);await $(200)}if(L.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{L.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await P("tmux",["-L",E,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await T(e))return void L.debug(`killSession done (SIGKILL): ${e}`);await $(200)}L.warn(`tmux session still alive after kill: ${e}`)},M=async e=>{let t=l.HOME||"/";if(!e)return t;let a=e;for(;;){try{if((await r.default.stat(a)).isDirectory())return a}catch{}let e=n.default.dirname(a);if(e===a)return t;a=e}},T=async e=>{try{return await P("tmux",["-L",E,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},A=async()=>{},k=async()=>{await A();let e=await N();e.length>0&&e.forEach(e=>{L.debug(`existing tmux session found: ${e}`)})},C=async e=>{if(w)try{return await r.default.readlink(`/proc/${e}/cwd`)}catch{return null}try{let{stdout:t}=await P("lsof",["-a","-p",String(e),"-d","cwd","-Fn"],{timeout:5e3}),r=t.split("\n").find(e=>e.startsWith("n/"));return r?r.slice(1):null}catch{return null}},q=async e=>{let t=await j(e);if(t){let e=await C(t);if(e)return e}try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},j=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},O=async()=>{try{await P("tmux",["-L",E,"source-file",b],{timeout:5e3})}catch{}},D=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},H=async()=>{try{let{stdout:e}=await P("tmux",["-L",E,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let r of e.trim().split("\n")){if(!r)continue;let[e,a,n,i,s]=r.split(" ");if(e&&a){let r=parseInt(i,10),l=parseInt(s,10);t.set(e,{command:a,path:n||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},F=new Set(["bash","zsh","fish","sh","dash"]),U=async e=>{let t=await D(e);return t?{isSafe:F.has(t),processName:t}:{isSafe:!1,processName:"unknown"}},G=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},K=async e=>{await P("tmux",["-L",E,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},W=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},V=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t],{timeout:5e3}),await $(50),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3})},X=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,t],{timeout:5e3})},B=async(e,t)=>{await K(e),await P("tmux",["-L",E,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await P("tmux",["-L",E,"send-keys","-t",e,"Enter"],{timeout:5e3})},z=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,n,i,s,l]=t.trim().split(" ");return{cwd:r||null,command:a||null,pid:n&&parseInt(n,10)||null,width:i&&parseInt(i,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},Y=new Set(["node","python","python3","ruby","perl","deno","bun"]),Z=async()=>{try{await P("tmux",["-L",E,"kill-server"],{timeout:5e3}),L.debug("tmux server killed")}catch{}},J=async e=>{try{let{stdout:t}=await P("tmux",["-L",E,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},Q=async(e,t)=>{try{let{stdout:r}=await P("tmux",["-L",E,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},ee=async e=>{if(w){let t=[];return await Promise.all(e.map(async e=>{try{for(let a of(await r.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(a,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await P("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},et=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await ee(r);if(0===e.length)break;t.push(...e),r=e}return t},er=async e=>{try{let t=new Set(e),{stdout:r}=await P("ss",["-tlnp"],{timeout:5e3}),a=new Set;for(let e of r.split("\n")){let r=e.match(/pid=(\d+)/g);if(!r||!r.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let n=e.match(/:(\d+)\s/);n&&a.add(parseInt(n[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},ea=async e=>{let t=await et(e);if(0===t.length)return[];if(w)return er(t);try{let{stdout:e}=await P("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),r=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&r.add(parseInt(e[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},en=async e=>{let t=await j(e);if(!t)return null;try{let{stdout:e}=await P("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let a=await _(r,{timeoutMs:5e3});if(!a)return null;let i=a.split(/\s+/);if(0===i.length)return a;if(i[0]=n.default.basename(i[0]),Y.has(i[0])&&i.length>1){let e=n.default.basename(i[1]).replace(/\.(c|m)?js$/,"");i.splice(0,2,e)}return i.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,F,"applyConfig",0,O,"capturePaneContent",0,J,"capturePaneContentWithHistory",0,Q,"checkTerminalProcess",0,U,"createSession",0,I,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,K,"getAllPanesInfo",0,H,"getLastCommand",0,en,"getListeningPorts",0,ea,"getPaneCurrentCommand",0,D,"getPaneDetailInfo",0,z,"getPaneTitle",0,G,"getSessionCwd",0,q,"getSessionPanePid",0,j,"hasSession",0,T,"killServer",0,Z,"killSession",0,R,"listSessions",0,N,"resolveExistingDir",0,M,"scanSessions",0,k,"sendBracketedPaste",0,B,"sendKeys",0,W,"sendKeysSeparated",0,V,"sendRawKeys",0,X,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},285788,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),n=e.i(262950),i=e.i(233405),s=e.i(224361),l=e.i(924868),o=e.i(814747),u=e.i(459015),c=e.i(25146);let p=(0,s.promisify)(i.execFile),d=(0,c.createLogger)("file-content"),m="WORKTREE",f=/^[A-Za-z0-9][A-Za-z0-9_\-/.^~]{0,200}$/,y={content:"",truncated:!1,binary:!1},h=e=>{if(!e||Array.isArray(e)||"/dev/null"===e||e.includes("\0")||e.startsWith("/"))return null;let t=0;for(let r of e.split("/"))if(""!==r&&"."!==r)if(".."===r){if((t-=1)<0)return null}else t+=1;return e},w=(e,t)=>{let r=Array.isArray(e)?e[0]:e;return r?r===m?m:f.test(r)?r:null:t},g=e=>e.length>1e6?{content:"",truncated:!0,binary:!1}:e.includes(0)?{content:"",truncated:!1,binary:!0}:{content:e.toString("utf8"),truncated:!1,binary:!1},S=async(e,t,r)=>{try{let{stdout:a}=await p("git",["-C",e,"show",`${t}:${r}`],{timeout:1e4,maxBuffer:1001024,encoding:"buffer"});return g(a)}catch{return y}},x=async(e,t)=>{try{let r=(0,o.resolve)(e,t);if(r!==e&&!r.startsWith(e+o.sep))return y;let a=await (0,l.readFile)(r);return g(a)}catch{return y}},_=(e,t,r)=>r?t===m?x(e,r):S(e,t,r):Promise.resolve(y),v=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r="string"==typeof e.query.session?e.query.session:void 0;if(!r)return t.status(400).json({error:"session parameter required"});let a=h(e.query.oldPath),n=h(e.query.newPath),i=w(e.query.oldRef,"HEAD"),s=w(e.query.newRef,m);if(!i||!s)return t.status(400).json({error:"Invalid ref"});if(!a&&!n)return t.status(400).json({error:"oldPath or newPath required"});if(!await (0,u.hasSession)(r))return t.status(404).json({error:"Session not found"});let l=await (0,u.getSessionCwd)(r);if(!l)return t.status(500).json({error:"Failed to get CWD"});try{let[e,r]=await Promise.all([_(l,i,a),_(l,s,n)]),o=e.truncated||r.truncated,u=e.binary||r.binary;return t.status(200).json({oldContent:o||u?"":e.content,newContent:o||u?"":r.content,truncated:o,binary:u})}catch(e){return d.error(`file-content failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to get file content"})}};e.s(["default",0,v],447353);var L=e.i(447353),P=e.i(7031),E=e.i(181927),b=e.i(846432);let N=(0,n.hoist)(L,"default"),I=(0,n.hoist)(L,"config"),$=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/layout/file-content",pathname:"/api/layout/file-content",bundlePath:"",filename:""},userland:L,distDir:".next",relativeProjectDir:""});async function R(e,r,a){a.requestMeta&&(0,b.setRequestMeta)(e,a.requestMeta),$.isDev&&(0,b.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/layout/file-content";n=n.replace(/\/index$/,"")||"/";let i=await $.prepare(e,r,{srcPage:n});if(!i){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:u}=i;try{let t,a=e.method||"GET",i=(0,P.getTracer)(),c=i.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),d=$.instrumentationOnRequestError.bind($),m=async c=>$.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:$.isDev,page:"/api/layout/file-content",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>d(e,...t)}).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==E.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${a} ${s}`;c.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),c.updateName(e),t&&t!==c&&(t.setAttribute("http.route",s),t.updateName(e))}else c.updateName(`${a} ${n}`)});p&&c?await m(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(E.BaseServerSpan.handleRequest,{spanName:`${a} ${n}`,kind:P.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},m),void 0,!p))}catch(e){if($.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,I,"default",0,N,"handler",0,R],285788)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__07d3bxo._.js.map