purplemux 0.1.13 → 0.1.15

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 (165) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +32 -32
  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 +20 -14
  6. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0x_8._i._.js +3 -0
  7. package/.next/standalone/.next/server/chunks/_04vmy2-._.js +1 -1
  8. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0qhmds_.js +1 -1
  9. package/.next/standalone/.next/server/chunks/src_lib_layout-store_ts_0fanx7c._.js +1 -1
  10. package/.next/standalone/.next/server/chunks/src_lib_status-manager_ts_003hlhy._.js +1 -1
  11. package/.next/standalone/.next/server/chunks/ssr/_0-xx2s1._.js +1 -1
  12. package/.next/standalone/.next/server/chunks/ssr/_066q1le._.js +7 -0
  13. package/.next/standalone/.next/server/chunks/ssr/_0camkxl._.js +1 -1
  14. package/.next/standalone/.next/server/chunks/ssr/_0d3u7pr._.js +3 -0
  15. package/.next/standalone/.next/server/chunks/ssr/_0i209pm._.js +1 -1
  16. package/.next/standalone/.next/server/chunks/ssr/_0o1taa_._.js +7 -0
  17. package/.next/standalone/.next/server/chunks/ssr/_0sfa_96._.js +1 -1
  18. package/.next/standalone/.next/server/chunks/ssr/_12uekiq._.js +1 -1
  19. package/.next/standalone/.next/server/chunks/ssr/messages_de_terminal_json_[json]_cjs_05jirtw._.js +1 -1
  20. package/.next/standalone/.next/server/chunks/ssr/messages_en_terminal_json_[json]_cjs_0~ls3g-._.js +1 -1
  21. package/.next/standalone/.next/server/chunks/ssr/messages_es_terminal_json_[json]_cjs_04g2b1_._.js +1 -1
  22. package/.next/standalone/.next/server/chunks/ssr/messages_fr_terminal_json_[json]_cjs_0uhakya._.js +1 -1
  23. package/.next/standalone/.next/server/chunks/ssr/messages_ja_terminal_json_[json]_cjs_0776z4f._.js +1 -1
  24. package/.next/standalone/.next/server/chunks/ssr/messages_ko_terminal_json_[json]_cjs_06611.3._.js +1 -1
  25. package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_terminal_json_[json]_cjs_034yyg9._.js +1 -1
  26. package/.next/standalone/.next/server/chunks/ssr/messages_ru_terminal_json_[json]_cjs_0emk8~n._.js +1 -1
  27. package/.next/standalone/.next/server/chunks/ssr/messages_tr_terminal_json_[json]_cjs_0xpix8g._.js +1 -1
  28. package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_terminal_json_[json]_cjs_12vwl8a._.js +1 -1
  29. package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_terminal_json_[json]_cjs_0spg5z5._.js +1 -1
  30. package/.next/standalone/.next/server/chunks/ssr/src_components_features_mobile_mobile-terminal-page_tsx_02chzch._.js +1 -1
  31. package/.next/standalone/.next/server/chunks/ssr/src_components_features_terminal_terminal-page_tsx_0o~2bsa._.js +1 -1
  32. package/.next/standalone/.next/server/middleware-build-manifest.js +32 -32
  33. package/.next/standalone/.next/server/pages/_app/build-manifest.json +4 -4
  34. package/.next/standalone/.next/server/pages/_app/client-build-manifest.json +1 -1
  35. package/.next/standalone/.next/server/pages/agents/[agentId]/chat/build-manifest.json +3 -3
  36. package/.next/standalone/.next/server/pages/agents/[agentId]/chat/client-build-manifest.json +1 -1
  37. package/.next/standalone/.next/server/pages/agents/[agentId]/memory/build-manifest.json +3 -3
  38. package/.next/standalone/.next/server/pages/agents/[agentId]/memory/client-build-manifest.json +1 -1
  39. package/.next/standalone/.next/server/pages/agents/[agentId]/workspace/build-manifest.json +3 -3
  40. package/.next/standalone/.next/server/pages/agents/[agentId]/workspace/client-build-manifest.json +1 -1
  41. package/.next/standalone/.next/server/pages/agents/build-manifest.json +3 -3
  42. package/.next/standalone/.next/server/pages/agents/client-build-manifest.json +1 -1
  43. package/.next/standalone/.next/server/pages/api/tmux/capture/pages-manifest.json +3 -0
  44. package/.next/standalone/.next/server/pages/api/tmux/capture.js +5 -0
  45. package/.next/standalone/.next/server/pages/api/tmux/capture.js.map +5 -0
  46. package/.next/standalone/.next/server/pages/api/tmux/capture.js.nft.json +1 -0
  47. package/.next/standalone/.next/server/pages/de/404.html +1 -1
  48. package/.next/standalone/.next/server/pages/de/500.html +1 -1
  49. package/.next/standalone/.next/server/pages/en/404.html +1 -1
  50. package/.next/standalone/.next/server/pages/en/500.html +1 -1
  51. package/.next/standalone/.next/server/pages/es/404.html +1 -1
  52. package/.next/standalone/.next/server/pages/es/500.html +1 -1
  53. package/.next/standalone/.next/server/pages/fr/404.html +1 -1
  54. package/.next/standalone/.next/server/pages/fr/500.html +1 -1
  55. package/.next/standalone/.next/server/pages/index/build-manifest.json +4 -4
  56. package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
  57. package/.next/standalone/.next/server/pages/index/react-loadable-manifest.json +5 -5
  58. package/.next/standalone/.next/server/pages/index.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/pages/ja/404.html +1 -1
  60. package/.next/standalone/.next/server/pages/ja/500.html +1 -1
  61. package/.next/standalone/.next/server/pages/ko/404.html +1 -1
  62. package/.next/standalone/.next/server/pages/ko/500.html +1 -1
  63. package/.next/standalone/.next/server/pages/pt-BR/404.html +1 -1
  64. package/.next/standalone/.next/server/pages/pt-BR/500.html +1 -1
  65. package/.next/standalone/.next/server/pages/reports/build-manifest.json +3 -3
  66. package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
  67. package/.next/standalone/.next/server/pages/ru/404.html +1 -1
  68. package/.next/standalone/.next/server/pages/ru/500.html +1 -1
  69. package/.next/standalone/.next/server/pages/stats/build-manifest.json +3 -3
  70. package/.next/standalone/.next/server/pages/stats/client-build-manifest.json +1 -1
  71. package/.next/standalone/.next/server/pages/tr/404.html +1 -1
  72. package/.next/standalone/.next/server/pages/tr/500.html +1 -1
  73. package/.next/standalone/.next/server/pages/webview/build-manifest.json +3 -3
  74. package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
  75. package/.next/standalone/.next/server/pages/zh-CN/404.html +1 -1
  76. package/.next/standalone/.next/server/pages/zh-CN/500.html +1 -1
  77. package/.next/standalone/.next/server/pages/zh-TW/404.html +1 -1
  78. package/.next/standalone/.next/server/pages/zh-TW/500.html +1 -1
  79. package/.next/standalone/.next/server/pages-manifest.json +1 -0
  80. package/.next/standalone/.next/static/chunks/0.4ewrx8k_5gf.js +1 -0
  81. package/.next/standalone/.next/static/chunks/0.afp8gebc17y.js +1 -0
  82. package/.next/standalone/.next/static/chunks/02ircyk~cxhbg.css +1 -0
  83. package/.next/standalone/.next/static/chunks/{08mloizj8v086.js → 02q9pu6q7.l~3.js} +1 -1
  84. package/.next/standalone/.next/static/chunks/033x_thm.-e7u.js +1 -0
  85. package/.next/standalone/.next/static/chunks/0401hdgf~vj4v.js +1 -0
  86. package/.next/standalone/.next/static/chunks/{0e7eht~s9maij.js → 0494~hfmvcw6x.js} +3 -3
  87. package/.next/standalone/.next/static/chunks/04_yg9ypn8qiz.js +1 -0
  88. package/.next/standalone/.next/static/chunks/{04~5g0kns0w-3.js → 06knp51736qfi.js} +4 -4
  89. package/.next/standalone/.next/static/chunks/06mr49_fnc8az.js +5 -0
  90. package/.next/standalone/.next/static/chunks/09-ehcnnfxygo.js +1 -0
  91. package/.next/standalone/.next/static/chunks/0acaolvighqxm.js +1 -0
  92. package/.next/standalone/.next/static/chunks/{12p51x0jwo~g0.js → 0fzmaz0.l4qxg.js} +4 -4
  93. package/.next/standalone/.next/static/chunks/{0c3fuwgxh-35e.js → 0g8xn.nirfxg4.js} +1 -1
  94. package/.next/standalone/.next/static/chunks/{18eatd5x-6wn7.js → 0h3dvtmd39eh~.js} +3 -3
  95. package/.next/standalone/.next/static/chunks/0iz3ffk6bm~6z.js +1 -0
  96. package/.next/standalone/.next/static/chunks/0jkyto637lhqd.js +1 -0
  97. package/.next/standalone/.next/static/chunks/0jpvbtekyubts.js +1 -0
  98. package/.next/standalone/.next/static/chunks/0ki_toswb6bjm.js +1 -0
  99. package/.next/standalone/.next/static/chunks/{0pitqn2--9ly-.js → 0m.akrpaw1ti..js} +3 -3
  100. package/.next/standalone/.next/static/chunks/{0.emlk-pyrq15.js → 0olgy7u1zmj3g.js} +3 -3
  101. package/.next/standalone/.next/static/chunks/0so.kz5bwwczu.js +5 -0
  102. package/.next/standalone/.next/static/chunks/0so7joqaux87c.js +1 -0
  103. package/.next/standalone/.next/static/chunks/0tn0snc61desh.js +1 -0
  104. package/.next/standalone/.next/static/chunks/{05~-~kex871hu.js → 0ui.jv~7_ujbr.js} +3 -3
  105. package/.next/standalone/.next/static/chunks/10pjtfb1e4_fn.js +1 -0
  106. package/.next/standalone/.next/static/chunks/11267j.1xw4gl.js +1 -0
  107. package/.next/standalone/.next/static/chunks/12.uhnc724hct.js +1 -0
  108. package/.next/standalone/.next/static/chunks/{11oe_y_tnk5rs.js → 1549e5e_l87_1.js} +1 -1
  109. package/.next/standalone/.next/static/chunks/{13zscswif89xn.js → 16eopcvsxx.by.js} +3 -3
  110. package/.next/standalone/.next/static/chunks/16gj3fltlcl9b.js +1 -0
  111. package/.next/standalone/.next/static/chunks/{0bu_7.oshhrhc.js → 16gzm3gt9by~l.js} +3 -3
  112. package/.next/standalone/.next/static/chunks/16l~ncr0z2zwu.js +1 -0
  113. package/.next/standalone/.next/static/chunks/17tl405a7vewu.js +1 -0
  114. package/.next/standalone/.next/static/chunks/{turbopack-0g9hcqkf8--nt.js → turbopack-01kk_951fss42.js} +1 -1
  115. package/.next/standalone/.next/static/chunks/{turbopack-0pbs5o5-yw7zn.js → turbopack-0c6yh4-uhi.7m.js} +1 -1
  116. package/.next/standalone/.next/static/chunks/{turbopack-0kxgmh4de86.c.js → turbopack-0e6yrf8bpjzaf.js} +1 -1
  117. package/.next/standalone/.next/static/chunks/{turbopack-0zo4s0e54r18i.js → turbopack-0n1zyq2ca.uwm.js} +1 -1
  118. package/.next/standalone/.next/static/chunks/{turbopack-0v2s_rrv-4zo_.js → turbopack-0okc-y2oz7i70.js} +1 -1
  119. package/.next/standalone/.next/static/chunks/{turbopack-0kc~8bc2j~nm5.js → turbopack-0vqv5ngoud_07.js} +1 -1
  120. package/.next/standalone/.next/static/chunks/{turbopack-0vg_jegb9r64~.js → turbopack-11-ah8-rp_2~x.js} +1 -1
  121. package/.next/standalone/.next/static/chunks/{turbopack-0z94ziwry23f8.js → turbopack-135~24zf~d~qo.js} +1 -1
  122. package/.next/standalone/.next/static/chunks/{turbopack-0qzp5t.v8o4yd.js → turbopack-13l.u~rnqg8t-.js} +1 -1
  123. package/.next/standalone/.next/static/{cUc-iVh9yPvV5U6zlJnRI → n6W5_byTPdXhdLI4PJaMr}/_buildManifest.js +9 -8
  124. package/.next/standalone/messages/de/terminal.json +11 -2
  125. package/.next/standalone/messages/en/terminal.json +11 -2
  126. package/.next/standalone/messages/es/terminal.json +11 -2
  127. package/.next/standalone/messages/fr/terminal.json +11 -2
  128. package/.next/standalone/messages/ja/terminal.json +11 -2
  129. package/.next/standalone/messages/ko/terminal.json +11 -2
  130. package/.next/standalone/messages/pt-BR/terminal.json +11 -2
  131. package/.next/standalone/messages/ru/terminal.json +11 -2
  132. package/.next/standalone/messages/tr/terminal.json +11 -2
  133. package/.next/standalone/messages/zh-CN/terminal.json +11 -2
  134. package/.next/standalone/messages/zh-TW/terminal.json +11 -2
  135. package/.next/standalone/package.json +10 -2
  136. package/.next/standalone/server.js +1 -1
  137. package/dist/server.js +11 -2
  138. package/package.json +10 -2
  139. package/.next/standalone/.next/server/chunks/ssr/_02xys-k._.js +0 -7
  140. package/.next/standalone/.next/server/chunks/ssr/_0r8i4sz._.js +0 -3
  141. package/.next/standalone/.next/server/chunks/ssr/_12sjhza._.js +0 -7
  142. package/.next/standalone/.next/static/chunks/0.6_j_h-u_8~u.js +0 -1
  143. package/.next/standalone/.next/static/chunks/05_uo4o5moo04.js +0 -1
  144. package/.next/standalone/.next/static/chunks/09.nvq4m4q6nw.js +0 -1
  145. package/.next/standalone/.next/static/chunks/0_tchj5ld5cb0.js +0 -5
  146. package/.next/standalone/.next/static/chunks/0a-2nzgsh-~9k.js +0 -1
  147. package/.next/standalone/.next/static/chunks/0cacobjih1-zm.js +0 -1
  148. package/.next/standalone/.next/static/chunks/0cv-p.g_i.2x4.js +0 -1
  149. package/.next/standalone/.next/static/chunks/0efmzxto_4qc3.js +0 -1
  150. package/.next/standalone/.next/static/chunks/0g65_p2-lr~2p.js +0 -1
  151. package/.next/standalone/.next/static/chunks/0g7dnwyslqeva.css +0 -1
  152. package/.next/standalone/.next/static/chunks/0nib3rg.-vev~.js +0 -1
  153. package/.next/standalone/.next/static/chunks/0pd8.t0drvms0.js +0 -1
  154. package/.next/standalone/.next/static/chunks/0ron~pzh_y-kg.js +0 -5
  155. package/.next/standalone/.next/static/chunks/0rs6s1tzjmjev.js +0 -1
  156. package/.next/standalone/.next/static/chunks/0rtjgrowjz8n3.js +0 -1
  157. package/.next/standalone/.next/static/chunks/0uh~v~z-_qx.~.js +0 -1
  158. package/.next/standalone/.next/static/chunks/0uv~o_jk4b1cj.js +0 -1
  159. package/.next/standalone/.next/static/chunks/0vglv5cz.-0qh.js +0 -1
  160. package/.next/standalone/.next/static/chunks/0wbv3pd2oyilv.js +0 -1
  161. package/.next/standalone/.next/static/chunks/0zd2r1o1p44g-.js +0 -1
  162. package/.next/standalone/.next/static/chunks/0~9o7bcqoa_1i.js +0 -1
  163. package/.next/standalone/.next/static/chunks/17rm0jup5m3lg.js +0 -1
  164. /package/.next/standalone/.next/static/{cUc-iVh9yPvV5U6zlJnRI → n6W5_byTPdXhdLI4PJaMr}/_clientMiddlewareManifest.js +0 -0
  165. /package/.next/standalone/.next/static/{cUc-iVh9yPvV5U6zlJnRI → n6W5_byTPdXhdLI4PJaMr}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- cUc-iVh9yPvV5U6zlJnRI
1
+ n6W5_byTPdXhdLI4PJaMr
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "pages": {
3
3
  "/": [
4
- "static/chunks/11oe_y_tnk5rs.js",
4
+ "static/chunks/1549e5e_l87_1.js",
5
5
  "static/chunks/0y1iobvr7xv~m.js",
6
6
  "static/chunks/06wc2umsaus4g.js",
7
- "static/chunks/0rtjgrowjz8n3.js",
7
+ "static/chunks/09-ehcnnfxygo.js",
8
8
  "static/chunks/0qe146f.3s0ud.js",
9
9
  "static/chunks/12t3ws50siqw1.js",
10
10
  "static/chunks/0-sxrfxgcu1ce.js",
@@ -18,20 +18,20 @@
18
18
  "static/chunks/02lycfk~b_9ps.js",
19
19
  "static/chunks/0ti3g2b7fhm5v.js",
20
20
  "static/chunks/05-mpg38w0a82.js",
21
- "static/chunks/0wbv3pd2oyilv.js",
22
- "static/chunks/turbopack-0kc~8bc2j~nm5.js"
21
+ "static/chunks/033x_thm.-e7u.js",
22
+ "static/chunks/turbopack-0vqv5ngoud_07.js"
23
23
  ],
24
24
  "/_app": [
25
- "static/chunks/08mloizj8v086.js",
25
+ "static/chunks/02q9pu6q7.l~3.js",
26
26
  "static/chunks/08h59hstdxbn0.js",
27
27
  "static/chunks/00x-ygjkfbgnz.js",
28
28
  "static/chunks/00yfl7agnve...js",
29
29
  "static/chunks/0yi.kp2rt4-nc.js",
30
- "static/chunks/0c3fuwgxh-35e.js",
30
+ "static/chunks/0g8xn.nirfxg4.js",
31
31
  "static/chunks/05-mpg38w0a82.js",
32
- "static/chunks/0g7dnwyslqeva.css",
32
+ "static/chunks/02ircyk~cxhbg.css",
33
33
  "static/chunks/0z3gpm0o.mwwy.css",
34
- "static/chunks/turbopack-0qzp5t.v8o4yd.js"
34
+ "static/chunks/turbopack-13l.u~rnqg8t-.js"
35
35
  ],
36
36
  "/_error": [
37
37
  "static/chunks/0~o730huopa91.js",
@@ -48,21 +48,21 @@
48
48
  "static/chunks/0ti3g2b7fhm5v.js",
49
49
  "static/chunks/0-sxrfxgcu1ce.js",
50
50
  "static/chunks/06fd4gm.ayhf7.js",
51
- "static/chunks/0g65_p2-lr~2p.js",
51
+ "static/chunks/0.4ewrx8k_5gf.js",
52
52
  "static/chunks/02lycfk~b_9ps.js",
53
53
  "static/chunks/0yi.kp2rt4-nc.js",
54
54
  "static/chunks/00yfl7agnve...js",
55
- "static/chunks/0wbv3pd2oyilv.js",
55
+ "static/chunks/033x_thm.-e7u.js",
56
56
  "static/chunks/09wg815lxyi._.js",
57
57
  "static/chunks/0wlz6--vu7adu.js",
58
58
  "static/chunks/0ml5~2ty-rbv_.js",
59
59
  "static/chunks/12t3ws50siqw1.js",
60
60
  "static/chunks/15aj3kd.p7zw6.js",
61
- "static/chunks/turbopack-0pbs5o5-yw7zn.js"
61
+ "static/chunks/turbopack-0c6yh4-uhi.7m.js"
62
62
  ],
63
63
  "/agents/[agentId]/chat": [
64
64
  "static/chunks/0fungak7h7t_u.js",
65
- "static/chunks/0g65_p2-lr~2p.js",
65
+ "static/chunks/0.4ewrx8k_5gf.js",
66
66
  "static/chunks/0ay.h74rl2t2c.js",
67
67
  "static/chunks/12t3ws50siqw1.js",
68
68
  "static/chunks/06fd4gm.ayhf7.js",
@@ -80,16 +80,16 @@
80
80
  "static/chunks/02lycfk~b_9ps.js",
81
81
  "static/chunks/0py3p~barq9qm.js",
82
82
  "static/chunks/0-sxrfxgcu1ce.js",
83
- "static/chunks/0wbv3pd2oyilv.js",
83
+ "static/chunks/033x_thm.-e7u.js",
84
84
  "static/chunks/0ml5~2ty-rbv_.js",
85
- "static/chunks/turbopack-0kxgmh4de86.c.js"
85
+ "static/chunks/turbopack-0e6yrf8bpjzaf.js"
86
86
  ],
87
87
  "/agents/[agentId]/memory": [
88
88
  "static/chunks/0mi.f1.iffvs7.js",
89
89
  "static/chunks/0b64-twwftp.b.js",
90
90
  "static/chunks/0ay.h74rl2t2c.js",
91
91
  "static/chunks/05-mpg38w0a82.js",
92
- "static/chunks/0rtjgrowjz8n3.js",
92
+ "static/chunks/09-ehcnnfxygo.js",
93
93
  "static/chunks/12t3ws50siqw1.js",
94
94
  "static/chunks/10r8rypk5fanv.js",
95
95
  "static/chunks/0py3p~barq9qm.js",
@@ -98,7 +98,7 @@
98
98
  "static/chunks/02lycfk~b_9ps.js",
99
99
  "static/chunks/0wlz6--vu7adu.js",
100
100
  "static/chunks/0ti3g2b7fhm5v.js",
101
- "static/chunks/0wbv3pd2oyilv.js",
101
+ "static/chunks/033x_thm.-e7u.js",
102
102
  "static/chunks/00yfl7agnve...js",
103
103
  "static/chunks/0p15~kn-ue177.js",
104
104
  "static/chunks/0yi.kp2rt4-nc.js",
@@ -106,13 +106,13 @@
106
106
  "static/chunks/0qe146f.3s0ud.js",
107
107
  "static/chunks/09wg815lxyi._.js",
108
108
  "static/chunks/15aj3kd.p7zw6.js",
109
- "static/chunks/turbopack-0v2s_rrv-4zo_.js"
109
+ "static/chunks/turbopack-0okc-y2oz7i70.js"
110
110
  ],
111
111
  "/agents/[agentId]/workspace": [
112
112
  "static/chunks/0kmwqchx6vxwc.js",
113
113
  "static/chunks/0fungak7h7t_u.js",
114
114
  "static/chunks/0ay.h74rl2t2c.js",
115
- "static/chunks/0rtjgrowjz8n3.js",
115
+ "static/chunks/09-ehcnnfxygo.js",
116
116
  "static/chunks/05-mpg38w0a82.js",
117
117
  "static/chunks/00yfl7agnve...js",
118
118
  "static/chunks/15aj3kd.p7zw6.js",
@@ -124,10 +124,10 @@
124
124
  "static/chunks/09wg815lxyi._.js",
125
125
  "static/chunks/0wlz6--vu7adu.js",
126
126
  "static/chunks/0-sxrfxgcu1ce.js",
127
- "static/chunks/0wbv3pd2oyilv.js",
127
+ "static/chunks/033x_thm.-e7u.js",
128
128
  "static/chunks/0qe146f.3s0ud.js",
129
129
  "static/chunks/02lycfk~b_9ps.js",
130
- "static/chunks/turbopack-0vg_jegb9r64~.js"
130
+ "static/chunks/turbopack-11-ah8-rp_2~x.js"
131
131
  ],
132
132
  "/login": [
133
133
  "static/chunks/14rkjvhij9msz.js",
@@ -153,18 +153,18 @@
153
153
  "static/chunks/0ti3g2b7fhm5v.js",
154
154
  "static/chunks/0qe146f.3s0ud.js",
155
155
  "static/chunks/05-mpg38w0a82.js",
156
- "static/chunks/0rtjgrowjz8n3.js",
156
+ "static/chunks/09-ehcnnfxygo.js",
157
157
  "static/chunks/0py3p~barq9qm.js",
158
158
  "static/chunks/0ml5~2ty-rbv_.js",
159
159
  "static/chunks/0wlz6--vu7adu.js",
160
160
  "static/chunks/09wg815lxyi._.js",
161
- "static/chunks/09.nvq4m4q6nw.js",
161
+ "static/chunks/10pjtfb1e4_fn.js",
162
162
  "static/chunks/0yi.kp2rt4-nc.js",
163
163
  "static/chunks/00yfl7agnve...js",
164
164
  "static/chunks/0-sxrfxgcu1ce.js",
165
165
  "static/chunks/02lycfk~b_9ps.js",
166
166
  "static/chunks/06fd4gm.ayhf7.js",
167
- "static/chunks/turbopack-0z94ziwry23f8.js"
167
+ "static/chunks/turbopack-135~24zf~d~qo.js"
168
168
  ],
169
169
  "/reset": [
170
170
  "static/chunks/0_sdw~kzk-at0.js",
@@ -183,17 +183,17 @@
183
183
  "static/chunks/0qe146f.3s0ud.js",
184
184
  "static/chunks/0-sxrfxgcu1ce.js",
185
185
  "static/chunks/06fd4gm.ayhf7.js",
186
- "static/chunks/0rtjgrowjz8n3.js",
186
+ "static/chunks/09-ehcnnfxygo.js",
187
187
  "static/chunks/0ti3g2b7fhm5v.js",
188
188
  "static/chunks/00yfl7agnve...js",
189
189
  "static/chunks/0wlz6--vu7adu.js",
190
190
  "static/chunks/09wg815lxyi._.js",
191
191
  "static/chunks/02lycfk~b_9ps.js",
192
192
  "static/chunks/0ml5~2ty-rbv_.js",
193
- "static/chunks/17rm0jup5m3lg.js",
193
+ "static/chunks/16gj3fltlcl9b.js",
194
194
  "static/chunks/15aj3kd.p7zw6.js",
195
195
  "static/chunks/0yi.kp2rt4-nc.js",
196
- "static/chunks/turbopack-0zo4s0e54r18i.js"
196
+ "static/chunks/turbopack-0n1zyq2ca.uwm.js"
197
197
  ],
198
198
  "/tools-required": [
199
199
  "static/chunks/0kf8xkvr3218u.js",
@@ -210,7 +210,7 @@
210
210
  "static/chunks/0c8._01-id.jr.js",
211
211
  "static/chunks/0fungak7h7t_u.js",
212
212
  "static/chunks/0ay.h74rl2t2c.js",
213
- "static/chunks/0rtjgrowjz8n3.js",
213
+ "static/chunks/09-ehcnnfxygo.js",
214
214
  "static/chunks/05-mpg38w0a82.js",
215
215
  "static/chunks/0ti3g2b7fhm5v.js",
216
216
  "static/chunks/0-sxrfxgcu1ce.js",
@@ -218,22 +218,22 @@
218
218
  "static/chunks/06fd4gm.ayhf7.js",
219
219
  "static/chunks/15aj3kd.p7zw6.js",
220
220
  "static/chunks/00yfl7agnve...js",
221
- "static/chunks/0wbv3pd2oyilv.js",
221
+ "static/chunks/033x_thm.-e7u.js",
222
222
  "static/chunks/0ml5~2ty-rbv_.js",
223
223
  "static/chunks/09wg815lxyi._.js",
224
224
  "static/chunks/0wlz6--vu7adu.js",
225
225
  "static/chunks/02lycfk~b_9ps.js",
226
226
  "static/chunks/0qe146f.3s0ud.js",
227
227
  "static/chunks/0yi.kp2rt4-nc.js",
228
- "static/chunks/turbopack-0g9hcqkf8--nt.js"
228
+ "static/chunks/turbopack-01kk_951fss42.js"
229
229
  ]
230
230
  },
231
231
  "devFiles": [],
232
232
  "polyfillFiles": [],
233
233
  "lowPriorityFiles": [
234
- "static/cUc-iVh9yPvV5U6zlJnRI/_buildManifest.js",
235
- "static/cUc-iVh9yPvV5U6zlJnRI/_ssgManifest.js",
236
- "static/cUc-iVh9yPvV5U6zlJnRI/_clientMiddlewareManifest.js"
234
+ "static/n6W5_byTPdXhdLI4PJaMr/_buildManifest.js",
235
+ "static/n6W5_byTPdXhdLI4PJaMr/_ssgManifest.js",
236
+ "static/n6W5_byTPdXhdLI4PJaMr/_clientMiddlewareManifest.js"
237
237
  ],
238
238
  "rootMainFiles": []
239
239
  }
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "70abeea4148de793e321a3f05a35ca7f",
7
- "previewModeSigningKey": "5ab0314a992c8d1c56bb856d9dad1bdd4019c14208f12868028da89ee22a1714",
8
- "previewModeEncryptionKey": "a1322a6a2c90ddb4880207061c3f70c54e963a30a42e6c0d747351d83fc19155"
6
+ "previewModeId": "0f669c8b405c58272659309a1eb20b29",
7
+ "previewModeSigningKey": "626c9c437b39befb0312bf6f53817abe4b4f82bae308b5e59db4712c38916b41",
8
+ "previewModeEncryptionKey": "4841e3620b8b613bf6c68c2f5a11837ce37f002b220b669103a79f07d0bca94f"
9
9
  },
10
10
  "notFoundRoutes": []
11
11
  }
@@ -2,7 +2,7 @@
2
2
  "version": 1,
3
3
  "config": {
4
4
  "env": {
5
- "NEXT_PUBLIC_COMMIT_HASH": "18e79fe"
5
+ "NEXT_PUBLIC_COMMIT_HASH": "ec282bd"
6
6
  },
7
7
  "webpack": null,
8
8
  "typescript": {
@@ -514,6 +514,12 @@
514
514
  "routeKeys": {},
515
515
  "namedRegex": "^/api/timeline/sessions(?:/)?$"
516
516
  },
517
+ {
518
+ "page": "/api/tmux/capture",
519
+ "regex": "^/api/tmux/capture(?:/)?$",
520
+ "routeKeys": {},
521
+ "namedRegex": "^/api/tmux/capture(?:/)?$"
522
+ },
517
523
  {
518
524
  "page": "/api/tmux/info",
519
525
  "regex": "^/api/tmux/info(?:/)?$",
@@ -614,59 +620,59 @@
614
620
  "dataRoutes": [
615
621
  {
616
622
  "page": "/",
617
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/index\\.json$"
623
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/index\\.json$"
618
624
  },
619
625
  {
620
626
  "page": "/agents",
621
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/agents\\.json$"
627
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/agents\\.json$"
622
628
  },
623
629
  {
624
630
  "page": "/agents/[agentId]/chat",
625
631
  "routeKeys": {
626
632
  "nxtPagentId": "nxtPagentId"
627
633
  },
628
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/agents/([^/]+?)/chat\\.json$",
629
- "namedDataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/agents/(?<nxtPagentId>[^/]+?)/chat\\.json$"
634
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/agents/([^/]+?)/chat\\.json$",
635
+ "namedDataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/agents/(?<nxtPagentId>[^/]+?)/chat\\.json$"
630
636
  },
631
637
  {
632
638
  "page": "/agents/[agentId]/memory",
633
639
  "routeKeys": {
634
640
  "nxtPagentId": "nxtPagentId"
635
641
  },
636
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/agents/([^/]+?)/memory\\.json$",
637
- "namedDataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/agents/(?<nxtPagentId>[^/]+?)/memory\\.json$"
642
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/agents/([^/]+?)/memory\\.json$",
643
+ "namedDataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/agents/(?<nxtPagentId>[^/]+?)/memory\\.json$"
638
644
  },
639
645
  {
640
646
  "page": "/agents/[agentId]/workspace",
641
647
  "routeKeys": {
642
648
  "nxtPagentId": "nxtPagentId"
643
649
  },
644
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/agents/([^/]+?)/workspace\\.json$",
645
- "namedDataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/agents/(?<nxtPagentId>[^/]+?)/workspace\\.json$"
650
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/agents/([^/]+?)/workspace\\.json$",
651
+ "namedDataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/agents/(?<nxtPagentId>[^/]+?)/workspace\\.json$"
646
652
  },
647
653
  {
648
654
  "page": "/login",
649
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/login\\.json$"
655
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/login\\.json$"
650
656
  },
651
657
  {
652
658
  "page": "/reports",
653
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/reports\\.json$"
659
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/reports\\.json$"
654
660
  },
655
661
  {
656
662
  "page": "/reset",
657
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/reset\\.json$"
663
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/reset\\.json$"
658
664
  },
659
665
  {
660
666
  "page": "/stats",
661
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/stats\\.json$"
667
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/stats\\.json$"
662
668
  },
663
669
  {
664
670
  "page": "/tools-required",
665
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/tools-required\\.json$"
671
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/tools-required\\.json$"
666
672
  },
667
673
  {
668
674
  "page": "/webview",
669
- "dataRouteRegex": "^/_next/data/cUc\\-iVh9yPvV5U6zlJnRI/webview\\.json$"
675
+ "dataRouteRegex": "^/_next/data/n6W5_byTPdXhdLI4PJaMr/webview\\.json$"
670
676
  }
671
677
  ],
672
678
  "i18n": {
@@ -0,0 +1,3 @@
1
+ module.exports=[270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},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"))},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"))},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}])},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,544538,e=>{"use strict";var t=e.i(233405),r=e.i(924868),a=e.i(224361),n=e.i(814747),i=e.i(44014),s=e.i(25146);process.platform;let l="linux"===process.platform;e.s(["isLinux",0,l],544538);let o=(0,s.createLogger)("terminal"),u=(0,a.promisify)(t.execFile),p="purple",c=n.default.join(process.env.__PMUX_APP_DIR_UNPACKED||process.env.__PMUX_APP_DIR||process.cwd(),"src","config","tmux.conf"),d=new Set(["AUTH_PASSWORD","NEXTAUTH_SECRET"]),m=()=>Object.fromEntries(Object.entries(process.env).filter(([e])=>!e.startsWith("npm_")&&!e.startsWith("NODE_")&&!d.has(e))),h=async()=>{try{let{stdout:e}=await u("tmux",["-L",p,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},f=async(e,t,r,a)=>{let n=process.env.SHELL||"/bin/zsh";await u("tmux",["-u","-L",p,"-f",c,"new-session","-d","-s",e,"-x",String(t),"-y",String(r)],{timeout:5e3,env:{...m(),SHELL:n,TERM:"xterm-256color",COLORTERM:"truecolor"},cwd:a||process.env.HOME||"/"}),await _(),o.debug(`tmux session created: ${e} (cols: ${t}, rows: ${r})`)},y=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await g(e))return;o.debug(`killSession start: ${e}`);let t=await L(e);if(t)try{o.debug(`SIGTERM → process group ${t}: ${e}`),process.kill(-t,"SIGTERM")}catch{}try{await u("tmux",["-L",p,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<5;t++){if(!await g(e))return void o.debug(`killSession done (SIGTERM): ${e}`);await y(200)}if(o.warn(`session survived SIGTERM, escalating to SIGKILL: ${e}`),t)try{o.debug(`SIGKILL → process group ${t}: ${e}`),process.kill(-t,"SIGKILL")}catch{}try{await u("tmux",["-L",p,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void o.debug(`killSession done (SIGKILL): ${e}`);await y(200)}o.warn(`tmux session still alive after kill: ${e}`)},g=async e=>{try{return await u("tmux",["-L",p,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},x=async()=>{},S=async()=>{await x();let e=await h();e.length>0&&e.forEach(e=>{o.debug(`existing tmux session found: ${e}`)})},v=async e=>{try{let{stdout:t}=await u("tmux",["-L",p,"display-message","-p","-t",e,"#{pane_current_path}"],{timeout:5e3});return t.trim()||null}catch{return null}},L=async e=>{try{let{stdout:t}=await u("tmux",["-L",p,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),r=parseInt(t.trim(),10);return Number.isNaN(r)?null:r}catch{return null}},_=async()=>{try{await u("tmux",["-L",p,"source-file",c],{timeout:5e3})}catch{}},E=async e=>{try{let{stdout:t}=await u("tmux",["-L",p,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},b=async()=>{try{let{stdout:e}=await u("tmux",["-L",p,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let r of e.trim().split("\n")){if(!r)continue;let[e,a,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}},P=new Set(["bash","zsh","fish","sh","dash"]),I=async e=>{try{let{stdout:t}=await u("tmux",["-L",p,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},$=async e=>{await u("tmux",["-L",p,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},R=async(e,t)=>{await $(e),await u("tmux",["-L",p,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},N=async(e,t)=>{await $(e),await u("tmux",["-L",p,"send-keys","-t",e,t],{timeout:5e3})},k=async(e,t)=>{await $(e),await u("tmux",["-L",p,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await u("tmux",["-L",p,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await u("tmux",["-L",p,"send-keys","-t",e,"Enter"],{timeout:5e3})},M=async e=>{try{let{stdout:t}=await u("tmux",["-L",p,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[r,a,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}}},q=new Set(["node","python","python3","ruby","perl","deno","bun"]),T=async()=>{try{await u("tmux",["-L",p,"kill-server"],{timeout:5e3}),o.debug("tmux server killed")}catch{}},A=async e=>{try{let{stdout:t}=await u("tmux",["-L",p,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},j=async(e,t)=>{try{let{stdout:r}=await u("tmux",["-L",p,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return r}catch{return null}},C=async e=>{if(l){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 u("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},G=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await C(r);if(0===e.length)break;t.push(...e),r=e}return t},H=async e=>{try{let t=new Set(e),{stdout:r}=await u("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[]}},O=async e=>{let t=await G(e);if(0===t.length)return[];if(l)return H(t);try{let{stdout:e}=await u("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[]}},D=async e=>{let t=await L(e);if(!t)return null;try{let{stdout:e}=await u("pgrep",["-n","-P",String(t)],{timeout:5e3}),r=e.trim();if(!r)return null;let{stdout:a}=await u("ps",["-o","args=","-p",r],{timeout:5e3}),i=a.trim();if(!i)return null;let s=i.split(/\s+/);if(0===s.length)return i;if(s[0]=n.default.basename(s[0]),q.has(s[0])&&s.length>1){let e=n.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,e)}return s.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,P,"applyConfig",0,_,"capturePaneContent",0,A,"capturePaneContentWithHistory",0,j,"createSession",0,f,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,$,"getAllPanesInfo",0,b,"getLastCommand",0,D,"getListeningPorts",0,O,"getPaneCurrentCommand",0,E,"getPaneDetailInfo",0,M,"getPaneTitle",0,I,"getSessionCwd",0,v,"getSessionPanePid",0,L,"hasSession",0,g,"killServer",0,T,"killSession",0,w,"listSessions",0,h,"sanitizedEnv",0,m,"scanSessions",0,S,"sendBracketedPaste",0,k,"sendKeys",0,R,"sendRawKeys",0,N,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},295055,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),n=e.i(262950),i=e.i(459015);let s=(0,e.i(25146).createLogger)("tmux"),l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let r=e.query.session;if(!r)return t.status(400).json({error:"session parameter required"});if(!await (0,i.hasSession)(r))return t.status(404).json({error:"Session not found"});try{let e=await (0,i.capturePaneContent)(r);return t.status(200).json({content:e??""})}catch(e){return s.error(`capture failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to capture pane"})}};e.s(["default",0,l],798167);var o=e.i(798167),u=e.i(7031),p=e.i(181927),c=e.i(846432);let d=(0,n.hoist)(o,"default"),m=(0,n.hoist)(o,"config"),h=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/capture",pathname:"/api/tmux/capture",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function f(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),h.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/tmux/capture";n=n.replace(/\/index$/,"")||"/";let i=await h.prepare(e,r,{srcPage:n});if(!i){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:s,params:l,prerenderManifest:o,routerServerContext:d}=i;try{let t,a=e.method||"GET",i=(0,u.getTracer)(),c=i.getActiveScopeSpan(),m=!!(null==d?void 0:d.isWrappedByNextServer),f=h.instrumentationOnRequestError.bind(h),y=async u=>h.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:h.isDev,page:"/api/tmux/capture",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${a} ${s}`;u.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",s),t.updateName(e))}else u.updateName(`${a} ${n}`)});m&&c?await y(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${n}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},y),void 0,!m))}catch(e){if(h.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,m,"default",0,d,"handler",0,f],295055)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0x_8._i._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[845994,e=>{"use strict";var t=e.i(924868),a=e.i(814747),r=e.i(446786),i=e.i(254799),s=e.i(666126);(0,e.i(25146).createLogger)("config");let n=a.default.join(r.default.homedir(),".purplemux"),o=a.default.join(n,"config.json"),l=globalThis;l.__ptConfigLock||(l.__ptConfigLock=Promise.resolve());let u=async e=>{let t,a=new Promise(e=>{t=e}),r=l.__ptConfigLock;l.__ptConfigLock=a,await r;try{return await e()}finally{t()}},d=()=>({updatedAt:new Date().toISOString()}),p=async()=>{try{let e=await t.default.readFile(o,"utf-8");return JSON.parse(e)}catch{return null}},c=async e=>{let{updatedAt:a,...r}=e,i=JSON.stringify(r);if(l.__ptConfigContentCache===i)return;e.updatedAt=new Date().toISOString();let n=o+".tmp";try{await t.default.writeFile(n,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(n,o)}catch(e){throw await t.default.unlink(n).catch(()=>{}),e}l.__ptConfigContentCache=i,(0,s.broadcastSync)({type:"config"})},f=async e=>{let t=i.default.randomBytes(16),a=await new Promise((a,r)=>{i.default.scrypt(e,t,64,(e,t)=>{e?r(e):a(t)})});return`scrypt:${t.toString("hex")}:${a.toString("hex")}`},g=async(e,t)=>{if(!t.startsWith("scrypt:"))return!1;let[,a,r]=t.split(":"),s=Buffer.from(a,"hex"),n=Buffer.from(r,"hex"),o=await new Promise((t,a)=>{i.default.scrypt(e,s,n.length,(e,r)=>{e?a(e):t(r)})});return i.default.timingSafeEqual(o,n)},y=async()=>await p()??d(),m=async e=>u(async()=>{let t=await p()??d();Object.assign(t,e),await c(t)}),w=async()=>{let e=await p();return!e?.authPassword||!e.authPassword.startsWith("scrypt:")},h=async()=>{let e=await p();return e?.dangerouslySkipPermissions??!1};e.s(["generateSecret",0,()=>i.default.randomBytes(32).toString("hex"),"getConfig",0,y,"getDangerouslySkipPermissions",0,h,"hashPassword",0,f,"needsSetup",0,w,"updateConfig",0,m,"verifyPassword",0,g])},478490,e=>{"use strict";var t=e.i(845994),a=e.i(578331);let r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,i=e=>"string"==typeof e&&r.test(e),s=async e=>{if(!i(e))throw Error(`Invalid session ID format: ${e}`);let r=await (0,t.getDangerouslySkipPermissions)(),s=`--settings ${a.HOOK_SETTINGS_PATH}`;return r?`claude --resume ${e} ${s} --dangerously-skip-permissions`:`claude --resume ${e} ${s}`};e.s(["buildResumeCommand",0,s,"isValidSessionId",0,i])},667250,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(825265),n=e.i(322429),o=e.i(964759),l=e.i(478490),u=e.i(459015);let d=(0,e.i(25146).createLogger)("layout"),p=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let a=e.query.workspace||await (0,n.getActiveWorkspaceId)();if(!a)return t.status(400).json({error:"No workspace found"});let r=e.query.paneId,{name:i,cwd:p,panelType:c,command:f,resumeSessionId:g}=e.body??{};if(g&&!(0,l.isValidSessionId)(g))return t.status(400).json({error:"Invalid session ID format"});try{let e=await (0,s.addTabToPane)(a,r,i,p,c,f);if(!e)return t.status(404).json({error:"Pane not found"});return"web-browser"!==e.panelType&&(0,o.getStatusManager)().registerTab(e.id,{cliState:"inactive",workspaceId:a,tabName:e.name,tmuxSession:e.sessionName,lastEvent:null,eventSeq:0}),g&&!f&&setTimeout(async()=>{try{let t=await (0,l.buildResumeCommand)(g);await (0,u.sendKeys)(e.sessionName,t)}catch(e){d.warn(`resume sendKeys failed: ${e instanceof Error?e.message:e}`)}},500),t.status(200).json(e)}catch(e){return d.error(`tab creation failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to create tab"})}};e.s(["default",0,p],170096);var c=e.i(170096),f=e.i(7031),g=e.i(181927),y=e.i(846432);let m=(0,i.hoist)(c,"default"),w=(0,i.hoist)(c,"config"),h=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/layout/pane/[paneId]/tabs/index",pathname:"/api/layout/pane/[paneId]/tabs",bundlePath:"",filename:""},userland:c,distDir:".next",relativeProjectDir:""});async function S(e,a,r){r.requestMeta&&(0,y.setRequestMeta)(e,r.requestMeta),h.isDev&&(0,y.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/layout/pane/[paneId]/tabs/index";i=i.replace(/\/index$/,"")||"/";let s=await h.prepare(e,a,{srcPage:i});if(!s){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:n,params:o,prerenderManifest:l,routerServerContext:u}=s;try{let t,r=e.method||"GET",s=(0,f.getTracer)(),d=s.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),c=h.instrumentationOnRequestError.bind(h),y=async d=>h.render(e,a,{query:{...n,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:h.isDev,page:"/api/layout/pane/[paneId]/tabs/index",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==g.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=e.get("next.route");if(n){let e=`${r} ${n}`;d.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",n),t.updateName(e))}else d.updateName(`${r} ${i}`)});p&&d?await y(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(g.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:f.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},y),void 0,!p))}catch(e){if(h.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,w,"default",0,m,"handler",0,S],667250)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))}];
1
+ module.exports=[845994,e=>{"use strict";var t=e.i(924868),a=e.i(814747),r=e.i(446786),s=e.i(254799),i=e.i(666126);(0,e.i(25146).createLogger)("config");let n=a.default.join(r.default.homedir(),".purplemux"),o=a.default.join(n,"config.json"),l=globalThis;l.__ptConfigLock||(l.__ptConfigLock=Promise.resolve());let u=async e=>{let t,a=new Promise(e=>{t=e}),r=l.__ptConfigLock;l.__ptConfigLock=a,await r;try{return await e()}finally{t()}},d=()=>({updatedAt:new Date().toISOString()}),p=async()=>{try{let e=await t.default.readFile(o,"utf-8");return JSON.parse(e)}catch{return null}},c=async e=>{let{updatedAt:a,...r}=e,s=JSON.stringify(r);if(l.__ptConfigContentCache===s)return;e.updatedAt=new Date().toISOString();let n=o+".tmp";try{await t.default.writeFile(n,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(n,o)}catch(e){throw await t.default.unlink(n).catch(()=>{}),e}l.__ptConfigContentCache=s,(0,i.broadcastSync)({type:"config"})},f=async e=>{let t=s.default.randomBytes(16),a=await new Promise((a,r)=>{s.default.scrypt(e,t,64,(e,t)=>{e?r(e):a(t)})});return`scrypt:${t.toString("hex")}:${a.toString("hex")}`},g=async(e,t)=>{if(!t.startsWith("scrypt:"))return!1;let[,a,r]=t.split(":"),i=Buffer.from(a,"hex"),n=Buffer.from(r,"hex"),o=await new Promise((t,a)=>{s.default.scrypt(e,i,n.length,(e,r)=>{e?a(e):t(r)})});return s.default.timingSafeEqual(o,n)},y=async()=>await p()??d(),m=async e=>u(async()=>{let t=await p()??d();Object.assign(t,e),await c(t)}),w=async()=>{let e=await p();return!e?.authPassword||!e.authPassword.startsWith("scrypt:")},h=async()=>{let e=await p();return e?.dangerouslySkipPermissions??!1};e.s(["generateSecret",0,()=>s.default.randomBytes(32).toString("hex"),"getConfig",0,y,"getDangerouslySkipPermissions",0,h,"hashPassword",0,f,"needsSetup",0,w,"updateConfig",0,m,"verifyPassword",0,g])},478490,e=>{"use strict";var t=e.i(845994),a=e.i(578331);let r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,s=e=>"string"==typeof e&&r.test(e),i=async e=>{if(!s(e))throw Error(`Invalid session ID format: ${e}`);let r=await (0,t.getDangerouslySkipPermissions)(),i=`--settings ${a.HOOK_SETTINGS_PATH}`;return r?`claude --resume ${e} ${i} --dangerously-skip-permissions`:`claude --resume ${e} ${i}`};e.s(["buildResumeCommand",0,i,"isValidSessionId",0,s])},667250,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),s=e.i(262950),i=e.i(825265),n=e.i(322429),o=e.i(964759),l=e.i(478490),u=e.i(459015);let d=(0,e.i(25146).createLogger)("layout"),p=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let a=e.query.workspace||await (0,n.getActiveWorkspaceId)();if(!a)return t.status(400).json({error:"No workspace found"});let r=e.query.paneId,{name:s,cwd:p,panelType:c,command:f,resumeSessionId:g}=e.body??{};if(g&&!(0,l.isValidSessionId)(g))return t.status(400).json({error:"Invalid session ID format"});try{let e=await (0,i.addTabToPane)(a,r,s,p,c,f);if(!e)return t.status(404).json({error:"Pane not found"});return"web-browser"!==e.panelType&&(0,o.getStatusManager)().registerTab(e.id,{cliState:"inactive",workspaceId:a,tabName:e.name,tmuxSession:e.sessionName,lastEvent:null,eventSeq:0}),g&&!f&&(await (0,i.updateTabClaudeSessionId)(e.sessionName,g),e.claudeSessionId=g,setTimeout(async()=>{try{let t=await (0,l.buildResumeCommand)(g);await (0,u.sendKeys)(e.sessionName,t)}catch(e){d.warn(`resume sendKeys failed: ${e instanceof Error?e.message:e}`)}},500)),t.status(200).json(e)}catch(e){return d.error(`tab creation failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Failed to create tab"})}};e.s(["default",0,p],170096);var c=e.i(170096),f=e.i(7031),g=e.i(181927),y=e.i(846432);let m=(0,s.hoist)(c,"default"),w=(0,s.hoist)(c,"config"),h=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/layout/pane/[paneId]/tabs/index",pathname:"/api/layout/pane/[paneId]/tabs",bundlePath:"",filename:""},userland:c,distDir:".next",relativeProjectDir:""});async function S(e,a,r){r.requestMeta&&(0,y.setRequestMeta)(e,r.requestMeta),h.isDev&&(0,y.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/layout/pane/[paneId]/tabs/index";s=s.replace(/\/index$/,"")||"/";let i=await h.prepare(e,a,{srcPage:s});if(!i){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:n,params:o,prerenderManifest:l,routerServerContext:u}=i;try{let t,r=e.method||"GET",i=(0,f.getTracer)(),d=i.getActiveScopeSpan(),p=!!(null==u?void 0:u.isWrappedByNextServer),c=h.instrumentationOnRequestError.bind(h),y=async d=>h.render(e,a,{query:{...n,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:h.isDev,page:"/api/layout/pane/[paneId]/tabs/index",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>c(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==g.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=e.get("next.route");if(n){let e=`${r} ${n}`;d.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",n),t.updateName(e))}else d.updateName(`${r} ${s}`)});p&&d?await y(d):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(g.BaseServerSpan.handleRequest,{spanName:`${r} ${s}`,kind:f.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},y),void 0,!p))}catch(e){if(h.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,w,"default",0,m,"handler",0,S],667250)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))}];
2
2
 
3
3
  //# sourceMappingURL=_04vmy2-._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[727130,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),n=e.i(262950),s=e.i(459015),i=e.i(143511);let o=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let a=e.query.session;if(!a)return t.status(400).json({error:"session parameter required"});let r=Date.now();if(!await (0,s.hasSession)(a))return t.status(200).json({running:!1,checkedAt:r,sessionId:null});let n=await (0,s.getSessionPanePid)(a);if(!n)return t.status(200).json({running:!1,checkedAt:r,sessionId:null});let o=await (0,i.getChildPids)(n);if(!await (0,i.isClaudeRunning)(n,o))return t.status(200).json({running:!1,checkedAt:r,sessionId:null});let l=await (0,i.detectActiveSession)(n,o);return t.status(200).json({running:!0,checkedAt:r,sessionId:l.sessionId})};e.s(["default",0,o],102649);var l=e.i(102649),u=e.i(7031),d=e.i(181927),p=e.i(846432);let c=(0,n.hoist)(l,"default"),h=(0,n.hoist)(l,"config"),v=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/check-claude",pathname:"/api/check-claude",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function g(e,a,r){r.requestMeta&&(0,p.setRequestMeta)(e,r.requestMeta),v.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/check-claude";n=n.replace(/\/index$/,"")||"/";let s=await v.prepare(e,a,{srcPage:n});if(!s){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:i,params:o,prerenderManifest:l,routerServerContext:c}=s;try{let t,r=e.method||"GET",s=(0,u.getTracer)(),p=s.getActiveScopeSpan(),h=!!(null==c?void 0:c.isWrappedByNextServer),g=v.instrumentationOnRequestError.bind(v),f=async u=>v.render(e,a,{query:{...i,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:v.isDev,page:"/api/check-claude",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>g(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=e.get("next.route");if(i){let e=`${r} ${i}`;u.setAttributes({"next.route":i,"http.route":i,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",i),t.updateName(e))}else u.updateName(`${r} ${n}`)});h&&p?await f(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(d.BaseServerSpan.handleRequest,{spanName:`${r} ${n}`,kind:u.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},f),void 0,!h))}catch(e){if(v.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,h,"default",0,c,"handler",0,g],727130)}];
1
+ module.exports=[727130,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),n=e.i(262950),s=e.i(459015),i=e.i(143511);let l=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let a=e.query.session;if(!a)return t.status(400).json({error:"session parameter required"});let r=Date.now();if(!await (0,s.hasSession)(a))return t.status(200).json({running:!1,checkedAt:r,sessionId:null});let n=await (0,s.getSessionPanePid)(a);if(!n)return t.status(200).json({running:!1,checkedAt:r,sessionId:null});let l=await (0,i.getChildPids)(n);if(!await (0,i.isClaudeRunning)(n,l))return t.status(200).json({running:!1,checkedAt:r,sessionId:null});let o=await (0,i.detectActiveSession)(n,l);return t.status(200).json({running:!0,checkedAt:r,sessionId:o.sessionId,resumable:!!o.jsonlPath})};e.s(["default",0,l],102649);var o=e.i(102649),u=e.i(7031),d=e.i(181927),p=e.i(846432);let c=(0,n.hoist)(o,"default"),h=(0,n.hoist)(o,"config"),v=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/check-claude",pathname:"/api/check-claude",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function g(e,a,r){r.requestMeta&&(0,p.setRequestMeta)(e,r.requestMeta),v.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/check-claude";n=n.replace(/\/index$/,"")||"/";let s=await v.prepare(e,a,{srcPage:n});if(!s){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:i,params:l,prerenderManifest:o,routerServerContext:c}=s;try{let t,r=e.method||"GET",s=(0,u.getTracer)(),p=s.getActiveScopeSpan(),h=!!(null==c?void 0:c.isWrappedByNextServer),g=v.instrumentationOnRequestError.bind(v),f=async u=>v.render(e,a,{query:{...i,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:v.isDev,page:"/api/check-claude",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>g(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=e.get("next.route");if(i){let e=`${r} ${i}`;u.setAttributes({"next.route":i,"http.route":i,"next.span_name":e}),u.updateName(e),t&&t!==u&&(t.setAttribute("http.route",i),t.updateName(e))}else u.updateName(`${r} ${n}`)});h&&p?await f(p):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(d.BaseServerSpan.handleRequest,{spanName:`${r} ${n}`,kind:u.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},f),void 0,!h))}catch(e){if(v.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,h,"default",0,c,"handler",0,g],727130)}];
2
2
 
3
3
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_pages-api_0qhmds_.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[825265,804767,e=>{"use strict";var t=e.i(924868),a=e.i(814747),n=e.i(446786),r=e.i(44014),i=e.i(459015),l=e.i(666126),o=e.i(25146);let s=e=>"pane"===e.type?[e]:[...s(e.children[0]),...s(e.children[1])],d=e=>s(e).flatMap(e=>e.tabs),c=(e,t)=>"pane"===e.type?e.id===t?e:null:c(e.children[0],t)||c(e.children[1],t),u=e=>"pane"===e.type?e.id:u(e.children[0]),p=e=>"pane"===e.type?e.id:p(e.children[1]),y=(e,t,a)=>"pane"===e.type?e.id===t?a:e:{...e,children:[y(e.children[0],t,a),y(e.children[1],t,a)]},w=(e,t)=>{if("pane"===e.type)return null;let[a,n]=e.children;if("pane"===a.type&&a.id===t)return n;if("pane"===n.type&&n.id===t)return a;let r=w(a,t);if(r)return{...e,children:[r,n]};let i=w(n,t);return i?{...e,children:[a,i]}:null},f=(e,t)=>{if("pane"===e.type)return null;let[a,n]=e.children;return"pane"===a.type&&a.id===t?u(n):"pane"===n.type&&n.id===t?p(a):f(a,t)||f(n,t)},b=(e,t)=>{let a=f(e.root,t),n=w(e.root,t);n&&(e.root=n),e.activePaneId===t&&(e.activePaneId=a??s(e.root)[0]?.id??null)},h=(e,t,a)=>{if("split"!==e.type)return e;if(0===t.length)return{...e,ratio:a};let[n,...r]=t,i=[e.children[0],e.children[1]];return i[n]=h(e.children[n],r,a),{...e,children:i}},m=(e,t)=>"pane"===e.type||e.orientation!==t?1:m(e.children[0],t)+m(e.children[1],t),I=e=>{if("pane"===e.type)return!0;let t=m(e.children[0],e.orientation),a=m(e.children[1],e.orientation);return!(Math.abs(e.ratio-t/(t+a)*100)>1)&&I(e.children[0])&&I(e.children[1])},v=e=>{if("pane"===e.type)return e;let t=m(e.children[0],e.orientation),a=Math.round(t/(t+m(e.children[1],e.orientation))*1e4)/100;return{...e,ratio:a,children:[v(e.children[0]),v(e.children[1])]}};e.s(["collectAllTabs",0,d,"collectPanes",0,s,"equalizeNode",0,v,"findPane",0,c,"isEqualized",0,I,"removePaneWithFocus",0,b,"replacePane",0,y,"updateRatioAtPath",0,h],804767);let S=(0,o.createLogger)("layout"),T=a.default.join(n.default.homedir(),".purplemux"),P=globalThis;P.__ptLayoutLock||(P.__ptLayoutLock=Promise.resolve()),P.__ptLayoutContentCache||(P.__ptLayoutContentCache=new Map),void 0===P.__ptLayoutReconciler&&(P.__ptLayoutReconciler=null);let g=async e=>{let t,a=new Promise(e=>{t=e}),n=P.__ptLayoutLock;P.__ptLayoutLock=a,await n;try{return await e()}finally{t()}},L=()=>`pane-${(0,r.nanoid)(6)}`,_=()=>`tab-${(0,r.nanoid)(6)}`,N=e=>a.default.join(T,"workspaces",e),k=e=>a.default.join(N(e),"layout.json"),C=(e,t)=>{let a=L(),n=((e,t,a=0,n)=>{let r=_(),l={id:r,sessionName:(0,i.workspaceSessionName)(e,t,r),name:"",order:a};return n&&(l.cwd=n),l})(e,a,0,t);return{pane:{type:"pane",id:a,tabs:[n],activeTabId:n.id},tab:n}},A=async e=>{let a;try{a=await t.default.readFile(e,"utf-8")}catch{return null}try{return JSON.parse(a)}catch{S.warn(`${e} parse failed`);try{await t.default.copyFile(e,e.replace(/\.json$/,".json.bak"))}catch{}return null}},O=async(e,n)=>{let r,i=JSON.stringify({root:e.root,activePaneId:e.activePaneId}),o=P.__ptLayoutContentCache;if(o.get(n)===i)return;await t.default.mkdir(a.default.dirname(n),{recursive:!0});let s=n+".tmp";try{await t.default.writeFile(s,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(s,n)}catch(e){throw await t.default.unlink(s).catch(()=>{}),e}o.set(n,i);let c=(r=n.match(/workspaces\/(ws-[^/]+)\//),r?.[1]??null);if(c){let t=P.__ptLayoutReconciler;if(t){let a=d(e.root).map(e=>e.id);t.reconcileWorkspaceTabs(c,a)}(0,l.broadcastSync)({type:"layout",workspaceId:c})}},D=async e=>{await t.default.rm(N(e),{recursive:!0,force:!0}),F(e);let a=P.__ptLayoutReconciler;a&&a.removeWorkspaceTabs(e),(0,l.broadcastSync)({type:"layout",workspaceId:e})},F=e=>{let t=k(e);P.__ptLayoutContentCache.delete(t)},M=(t,a)=>{let n=[...new Set(d(a).map(e=>e.cwd).filter(e=>!!e))];n.length>0&&e.A(981532).then(({updateWorkspaceDirectories:e})=>{e(t,n).catch(()=>{})}).catch(()=>{})},R=async(e,t,a,n)=>{let r=!1,l=new Set(t),o=s(e.root),d=new Set;for(let e of o)for(let t of e.tabs)if("web-browser"!==t.panelType&&(d.add(t.sessionName),!l.has(t.sessionName)&&"claude-code"===t.panelType)){let e=t.cwd||n;S.debug(`crossCheck: Claude tab session recreated: ${t.sessionName} (cwd: ${e})`),await (0,i.createSession)(t.sessionName,80,24,e),r=!0}let c=t.filter(e=>!d.has(e));if(c.length>0){r=!0;let e=o[0];if(e){let t=e.tabs.length>0?Math.max(...e.tabs.map(e=>e.order)):-1;for(let a of c)t++,e.tabs.push({id:_(),sessionName:a,name:"",order:t});!e.activeTabId&&e.tabs.length>0&&(e.activeTabId=e.tabs[0].id)}}if(r){e.updatedAt=new Date().toISOString();let t=s(e.root);e.activePaneId&&!t.some(t=>t.id===e.activePaneId)&&(e.activePaneId=t[0]?.id??null)}return r},$=async(e,t,a)=>{let{pane:n,tab:r}=C(e,t);return a?.panelType&&(r.panelType=a.panelType),await (0,i.createSession)(r.sessionName,80,24,t),{root:n,activePaneId:n.id,updatedAt:new Date().toISOString()}},j=async(e,t)=>g(async()=>{let a=k(e),n=await A(a);if(n)return n;let{pane:r,tab:l}=C(e,t);await (0,i.createSession)(l.sessionName,80,24,t);let o={root:r,activePaneId:r.id,updatedAt:new Date().toISOString()};return await O(o,a),o}),x=async(e,t)=>{let a=L(),n=_(),r=(0,i.workspaceSessionName)(e,a,n);return await (0,i.createSession)(r,80,24,t),{paneId:a,tab:{id:n,sessionName:r,name:"",order:0,...t?{cwd:t}:{}}}},U=async(e,t=[])=>{for(let e of t)try{await (0,i.killSession)(e)}catch{}},W=async(e,t,a,n,r,l)=>g(async()=>{let o=k(e),d=await A(o);if(!d)return null;let c=s(d.root).find(e=>e.id===t);if(!c)return null;let u="web-browser"===r,p=_(),y=(0,i.workspaceSessionName)(e,t,p);!u&&(await (0,i.createSession)(y,80,24,n),l&&await (0,i.sendKeys)(y,l));let w=c.tabs.length>0?Math.max(...c.tabs.map(e=>e.order))+1:0,f={id:p,sessionName:y,name:a?.trim()||(u?"Web Browser":""),order:w,...n?{cwd:n}:{},...r?{panelType:r}:{}};return c.tabs.push(f),c.activeTabId=p,d.updatedAt=new Date().toISOString(),await O(d,o),M(e,d.root),f}),E=async(e,t,a)=>{let n=await g(async()=>{let n=k(e),r=await A(n);if(!r)return null;let i=s(r.root).find(e=>e.id===t);if(!i)return null;let l=i.tabs.find(e=>e.id===a);return l?{sessionName:l.sessionName,panelType:l.panelType}:null});return!!n&&("web-browser"!==n.panelType&&await (0,i.killSession)(n.sessionName),g(async()=>{let n=k(e),r=await A(n);if(!r)return!1;let i=s(r.root).find(e=>e.id===t);if(!i)return!1;let l=i.tabs.findIndex(e=>e.id===a);return -1!==l&&(i.tabs.splice(l,1),i.activeTabId===a&&(i.activeTabId=i.tabs[0]?.id??null),0===i.tabs.length&&s(r.root).length>1&&b(r,t),i.tabs.forEach((e,t)=>{e.order=t}),r.updatedAt=new Date().toISOString(),await O(r,n),M(e,r.root),!0)}))},q=async(e,t,a,n)=>g(async()=>{let r=k(e),l=await A(r);if(!l)return!1;let o=s(l.root).find(e=>e.id===t);if(!o)return!1;let d=o.tabs.find(e=>e.id===a);return!!d&&(!!await (0,i.hasSession)(d.sessionName)||(await (0,i.createSession)(d.sessionName,80,24,d.cwd),n&&await (0,i.sendKeys)(d.sessionName,n),!0))}),z=e=>{let t=e.match(/^pt-(ws-.*?)-(pane-.*?)-(tab-.+)$/);return t?{wsId:t[1],paneId:t[2],tabId:t[3]}:null},B=async(e,t)=>{let a=z(e);a&&await g(async()=>{let n=k(a.wsId),r=await A(n);if(!r)return;let i=d(r.root).find(t=>t.sessionName===e);i&&i.claudeSummary!==t&&(i.claudeSummary=t,r.updatedAt=new Date().toISOString(),await O(r,n))})},J=async(e,t,a)=>{let n=z(e);n&&await g(async()=>{let r=k(n.wsId),i=await A(r);if(!i)return;let l=d(i.root).find(t=>t.sessionName===e);l&&(l.cliState!==t||l.dismissedAt!==a)&&(l.cliState=t,l.dismissedAt=a,i.updatedAt=new Date().toISOString(),await O(i,r))})},K=async(e,t)=>g(async()=>{let a=k(e),n=await A(a);if(!n)return null;let r=t(n);return r?(r.updatedAt=new Date().toISOString(),await O(r,a),M(e,r.root),r):null}),G=async(e,t)=>K(e,e=>{if(void 0!==t.activePaneId){if(!c(e.root,t.activePaneId))return null;e.activePaneId=t.activePaneId}return t.ratioUpdate&&(e.root=h(e.root,t.ratioUpdate.path,t.ratioUpdate.ratio)),t.equalize&&(e.root=v(e.root)),e}),H=async(e,t,a)=>K(e,e=>{let n=c(e.root,t);if(!n)return null;if(void 0!==a.activeTabId){if(!n.tabs.some(e=>e.id===a.activeTabId))return null;n.activeTabId=a.activeTabId}return e}),Q=async(e,t,a,n,r)=>{let l="web-browser"===r,o=L(),s=_(),d=(0,i.workspaceSessionName)(e,o,s);l||await (0,i.createSession)(d,80,24,n);let u={id:s,sessionName:d,name:l?"Web Browser":"",order:0,...n?{cwd:n}:{}};r&&(u.panelType=r);let p={type:"pane",id:o,tabs:[u],activeTabId:s},w=await K(e,e=>{let r=c(e.root,t);if(!r)return null;let i=I(e.root);if(n){let e=r.tabs.find(e=>e.id===r.activeTabId);e&&(e.cwd=n)}let l={type:"split",orientation:a,ratio:50,children:[{...r},p]};return e.root=y(e.root,t,l),i&&(e.root=v(e.root)),e.activePaneId=o,e});return w||l||await (0,i.killSession)(d).catch(()=>{}),w},V=async(e,t)=>{let a=[],n=await g(async()=>{let n=k(e),r=await A(n);if(!r)return null;let i=c(r.root,t);if(!i||s(r.root).length<=1)return null;a=i.tabs.filter(e=>"web-browser"!==e.panelType).map(e=>e.sessionName);let l=I(r.root);return b(r,t),l&&(r.root=v(r.root)),r.updatedAt=new Date().toISOString(),await O(r,n),M(e,r.root),r});return await Promise.all(a.map(e=>(0,i.killSession)(e).catch(()=>{}))),n},X=async(e,t,a)=>K(e,e=>{let n=c(e.root,t);if(!n)return null;let r=new Map(n.tabs.map(e=>[e.id,e])),i=a.map((e,t)=>{let a=r.get(e);return a?{...a,order:t}:null}).filter(e=>null!==e);return i.length!==n.tabs.length?null:(n.tabs=i,e)}),Y=async(e,t,a,n,r)=>K(e,e=>{let i=c(e.root,a),l=c(e.root,n);if(!i||!l)return null;let o=i.tabs.findIndex(e=>e.id===t);if(-1===o)return null;let[d]=i.tabs.splice(o,1);return i.activeTabId===t&&(i.activeTabId=i.tabs[0]?.id??null),i.tabs.forEach((e,t)=>{e.order=t}),l.tabs.splice(r,0,d),l.tabs.forEach((e,t)=>{e.order=t}),l.activeTabId=t,0===i.tabs.length&&s(e.root).length>1&&b(e,a),e.activePaneId=n,e}),Z=async(e,t,a,n)=>K(e,e=>{let r=c(e.root,t);if(!r)return null;let i=r.tabs.find(e=>e.id===a);return i?(void 0!==n.name&&(i.name=n.name),void 0!==n.panelType&&(i.panelType=n.panelType),void 0!==n.title&&(i.title=n.title),void 0!==n.cwd&&(i.cwd=n.cwd),void 0!==n.lastCommand&&(i.lastCommand=n.lastCommand),void 0!==n.webUrl&&(i.webUrl=n.webUrl),e):null});e.s(["addTabToPane",0,W,"closePaneInLayout",0,V,"createDefaultLayout",0,$,"createPane",0,x,"crossCheckLayout",0,R,"deletePane",0,U,"getLayout",0,j,"moveTabBetweenPanes",0,Y,"parseSessionName",0,z,"patchLayout",0,G,"patchPane",0,H,"patchTab",0,Z,"readLayoutFile",0,A,"removeLayoutFile",0,D,"removeTabFromPane",0,E,"reorderTabsInPane",0,X,"resolveLayoutDir",0,N,"resolveLayoutFile",0,k,"restartTabSession",0,q,"setLayoutReconciler",0,e=>{P.__ptLayoutReconciler=e},"splitPaneInLayout",0,Q,"updateTabClaudeSummary",0,B,"updateTabCliStatus",0,J,"writeLayoutFile",0,O],825265)}];
1
+ module.exports=[825265,804767,e=>{"use strict";var t=e.i(924868),a=e.i(814747),n=e.i(446786),r=e.i(44014),i=e.i(459015),l=e.i(666126),o=e.i(25146);let s=e=>"pane"===e.type?[e]:[...s(e.children[0]),...s(e.children[1])],d=e=>s(e).flatMap(e=>e.tabs),c=(e,t)=>"pane"===e.type?e.id===t?e:null:c(e.children[0],t)||c(e.children[1],t),u=e=>"pane"===e.type?e.id:u(e.children[0]),p=e=>"pane"===e.type?e.id:p(e.children[1]),y=(e,t,a)=>"pane"===e.type?e.id===t?a:e:{...e,children:[y(e.children[0],t,a),y(e.children[1],t,a)]},w=(e,t)=>{if("pane"===e.type)return null;let[a,n]=e.children;if("pane"===a.type&&a.id===t)return n;if("pane"===n.type&&n.id===t)return a;let r=w(a,t);if(r)return{...e,children:[r,n]};let i=w(n,t);return i?{...e,children:[a,i]}:null},f=(e,t)=>{if("pane"===e.type)return null;let[a,n]=e.children;return"pane"===a.type&&a.id===t?u(n):"pane"===n.type&&n.id===t?p(a):f(a,t)||f(n,t)},b=(e,t)=>{let a=f(e.root,t),n=w(e.root,t);n&&(e.root=n),e.activePaneId===t&&(e.activePaneId=a??s(e.root)[0]?.id??null)},h=(e,t,a)=>{if("split"!==e.type)return e;if(0===t.length)return{...e,ratio:a};let[n,...r]=t,i=[e.children[0],e.children[1]];return i[n]=h(e.children[n],r,a),{...e,children:i}},m=(e,t)=>"pane"===e.type||e.orientation!==t?1:m(e.children[0],t)+m(e.children[1],t),I=e=>{if("pane"===e.type)return!0;let t=m(e.children[0],e.orientation),a=m(e.children[1],e.orientation);return!(Math.abs(e.ratio-t/(t+a)*100)>1)&&I(e.children[0])&&I(e.children[1])},S=e=>{if("pane"===e.type)return e;let t=m(e.children[0],e.orientation),a=Math.round(t/(t+m(e.children[1],e.orientation))*1e4)/100;return{...e,ratio:a,children:[S(e.children[0]),S(e.children[1])]}};e.s(["collectAllTabs",0,d,"collectPanes",0,s,"equalizeNode",0,S,"findPane",0,c,"isEqualized",0,I,"removePaneWithFocus",0,b,"replacePane",0,y,"updateRatioAtPath",0,h],804767);let v=(0,o.createLogger)("layout"),T=a.default.join(n.default.homedir(),".purplemux"),g=globalThis;g.__ptLayoutLock||(g.__ptLayoutLock=Promise.resolve()),g.__ptLayoutContentCache||(g.__ptLayoutContentCache=new Map),void 0===g.__ptLayoutReconciler&&(g.__ptLayoutReconciler=null);let P=async e=>{let t,a=new Promise(e=>{t=e}),n=g.__ptLayoutLock;g.__ptLayoutLock=a,await n;try{return await e()}finally{t()}},L=()=>`pane-${(0,r.nanoid)(6)}`,N=()=>`tab-${(0,r.nanoid)(6)}`,_=e=>a.default.join(T,"workspaces",e),k=e=>a.default.join(_(e),"layout.json"),C=(e,t)=>{let a=L(),n=((e,t,a=0,n)=>{let r=N(),l={id:r,sessionName:(0,i.workspaceSessionName)(e,t,r),name:"",order:a};return n&&(l.cwd=n),l})(e,a,0,t);return{pane:{type:"pane",id:a,tabs:[n],activeTabId:n.id},tab:n}},A=async e=>{let a;try{a=await t.default.readFile(e,"utf-8")}catch{return null}try{return JSON.parse(a)}catch{v.warn(`${e} parse failed`);try{await t.default.copyFile(e,e.replace(/\.json$/,".json.bak"))}catch{}return null}},O=async(e,n)=>{let r,i=JSON.stringify({root:e.root,activePaneId:e.activePaneId}),o=g.__ptLayoutContentCache;if(o.get(n)===i)return;await t.default.mkdir(a.default.dirname(n),{recursive:!0});let s=n+".tmp";try{await t.default.writeFile(s,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(s,n)}catch(e){throw await t.default.unlink(s).catch(()=>{}),e}o.set(n,i);let c=(r=n.match(/workspaces\/(ws-[^/]+)\//),r?.[1]??null);if(c){let t=g.__ptLayoutReconciler;if(t){let a=d(e.root).map(e=>e.id);t.reconcileWorkspaceTabs(c,a)}(0,l.broadcastSync)({type:"layout",workspaceId:c})}},D=async e=>{await t.default.rm(_(e),{recursive:!0,force:!0}),F(e);let a=g.__ptLayoutReconciler;a&&a.removeWorkspaceTabs(e),(0,l.broadcastSync)({type:"layout",workspaceId:e})},F=e=>{let t=k(e);g.__ptLayoutContentCache.delete(t)},M=(t,a)=>{let n=[...new Set(d(a).map(e=>e.cwd).filter(e=>!!e))];n.length>0&&e.A(981532).then(({updateWorkspaceDirectories:e})=>{e(t,n).catch(()=>{})}).catch(()=>{})},R=async(e,t,a,n)=>{let r=!1,l=new Set(t),o=s(e.root),d=new Set;for(let e of o)for(let t of e.tabs)if("web-browser"!==t.panelType&&(d.add(t.sessionName),!l.has(t.sessionName)&&"claude-code"===t.panelType)){let e=t.cwd||n;v.debug(`crossCheck: Claude tab session recreated: ${t.sessionName} (cwd: ${e})`),await (0,i.createSession)(t.sessionName,80,24,e),r=!0}let c=t.filter(e=>!d.has(e));if(c.length>0){r=!0;let e=o[0];if(e){let t=e.tabs.length>0?Math.max(...e.tabs.map(e=>e.order)):-1;for(let a of c)t++,e.tabs.push({id:N(),sessionName:a,name:"",order:t});!e.activeTabId&&e.tabs.length>0&&(e.activeTabId=e.tabs[0].id)}}if(r){e.updatedAt=new Date().toISOString();let t=s(e.root);e.activePaneId&&!t.some(t=>t.id===e.activePaneId)&&(e.activePaneId=t[0]?.id??null)}return r},$=async(e,t,a)=>{let{pane:n,tab:r}=C(e,t);return a?.panelType&&(r.panelType=a.panelType),await (0,i.createSession)(r.sessionName,80,24,t),{root:n,activePaneId:n.id,updatedAt:new Date().toISOString()}},j=async(e,t)=>P(async()=>{let a=k(e),n=await A(a);if(n)return n;let{pane:r,tab:l}=C(e,t);await (0,i.createSession)(l.sessionName,80,24,t);let o={root:r,activePaneId:r.id,updatedAt:new Date().toISOString()};return await O(o,a),o}),x=async(e,t)=>{let a=L(),n=N(),r=(0,i.workspaceSessionName)(e,a,n);return await (0,i.createSession)(r,80,24,t),{paneId:a,tab:{id:n,sessionName:r,name:"",order:0,...t?{cwd:t}:{}}}},U=async(e,t=[])=>{for(let e of t)try{await (0,i.killSession)(e)}catch{}},W=async(e,t,a,n,r,l)=>P(async()=>{let o=k(e),d=await A(o);if(!d)return null;let c=s(d.root).find(e=>e.id===t);if(!c)return null;let u="web-browser"===r,p=N(),y=(0,i.workspaceSessionName)(e,t,p);!u&&(await (0,i.createSession)(y,80,24,n),l&&await (0,i.sendKeys)(y,l));let w=c.tabs.length>0?Math.max(...c.tabs.map(e=>e.order))+1:0,f={id:p,sessionName:y,name:a?.trim()||(u?"Web Browser":""),order:w,...n?{cwd:n}:{},...r?{panelType:r}:{}};return c.tabs.push(f),c.activeTabId=p,d.updatedAt=new Date().toISOString(),await O(d,o),M(e,d.root),f}),E=async(e,t,a)=>{let n=await P(async()=>{let n=k(e),r=await A(n);if(!r)return null;let i=s(r.root).find(e=>e.id===t);if(!i)return null;let l=i.tabs.find(e=>e.id===a);return l?{sessionName:l.sessionName,panelType:l.panelType}:null});return!!n&&("web-browser"!==n.panelType&&await (0,i.killSession)(n.sessionName),P(async()=>{let n=k(e),r=await A(n);if(!r)return!1;let i=s(r.root).find(e=>e.id===t);if(!i)return!1;let l=i.tabs.findIndex(e=>e.id===a);return -1!==l&&(i.tabs.splice(l,1),i.activeTabId===a&&(i.activeTabId=i.tabs[0]?.id??null),0===i.tabs.length&&s(r.root).length>1&&b(r,t),i.tabs.forEach((e,t)=>{e.order=t}),r.updatedAt=new Date().toISOString(),await O(r,n),M(e,r.root),!0)}))},q=async(e,t,a,n)=>P(async()=>{let r=k(e),l=await A(r);if(!l)return!1;let o=s(l.root).find(e=>e.id===t);if(!o)return!1;let d=o.tabs.find(e=>e.id===a);return!!d&&(!!await (0,i.hasSession)(d.sessionName)||(await (0,i.createSession)(d.sessionName,80,24,d.cwd),n&&await (0,i.sendKeys)(d.sessionName,n),!0))}),z=e=>{let t=e.match(/^pt-(ws-.*?)-(pane-.*?)-(tab-.+)$/);return t?{wsId:t[1],paneId:t[2],tabId:t[3]}:null},B=async(e,t)=>{let a=z(e);a&&await P(async()=>{let n=k(a.wsId),r=await A(n);if(!r)return;let i=d(r.root).find(t=>t.sessionName===e);i&&(i.claudeSessionId=t,r.updatedAt=new Date().toISOString(),await O(r,n))})},J=async(e,t)=>{let a=z(e);a&&await P(async()=>{let n=k(a.wsId),r=await A(n);if(!r)return;let i=d(r.root).find(t=>t.sessionName===e);i&&i.claudeSummary!==t&&(i.claudeSummary=t,r.updatedAt=new Date().toISOString(),await O(r,n))})},K=async(e,t,a)=>{let n=z(e);n&&await P(async()=>{let r=k(n.wsId),i=await A(r);if(!i)return;let l=d(i.root).find(t=>t.sessionName===e);l&&(l.cliState!==t||l.dismissedAt!==a)&&(l.cliState=t,l.dismissedAt=a,i.updatedAt=new Date().toISOString(),await O(i,r))})},G=async(e,t)=>P(async()=>{let a=k(e),n=await A(a);if(!n)return null;let r=t(n);return r?(r.updatedAt=new Date().toISOString(),await O(r,a),M(e,r.root),r):null}),H=async(e,t)=>G(e,e=>{if(void 0!==t.activePaneId){if(!c(e.root,t.activePaneId))return null;e.activePaneId=t.activePaneId}return t.ratioUpdate&&(e.root=h(e.root,t.ratioUpdate.path,t.ratioUpdate.ratio)),t.equalize&&(e.root=S(e.root)),e}),Q=async(e,t,a)=>G(e,e=>{let n=c(e.root,t);if(!n)return null;if(void 0!==a.activeTabId){if(!n.tabs.some(e=>e.id===a.activeTabId))return null;n.activeTabId=a.activeTabId}return e}),V=async(e,t,a,n,r)=>{let l="web-browser"===r,o=L(),s=N(),d=(0,i.workspaceSessionName)(e,o,s);l||await (0,i.createSession)(d,80,24,n);let u={id:s,sessionName:d,name:l?"Web Browser":"",order:0,...n?{cwd:n}:{}};r&&(u.panelType=r);let p={type:"pane",id:o,tabs:[u],activeTabId:s},w=await G(e,e=>{let r=c(e.root,t);if(!r)return null;let i=I(e.root);if(n){let e=r.tabs.find(e=>e.id===r.activeTabId);e&&(e.cwd=n)}let l={type:"split",orientation:a,ratio:50,children:[{...r},p]};return e.root=y(e.root,t,l),i&&(e.root=S(e.root)),e.activePaneId=o,e});return w||l||await (0,i.killSession)(d).catch(()=>{}),w},X=async(e,t)=>{let a=[],n=await P(async()=>{let n=k(e),r=await A(n);if(!r)return null;let i=c(r.root,t);if(!i||s(r.root).length<=1)return null;a=i.tabs.filter(e=>"web-browser"!==e.panelType).map(e=>e.sessionName);let l=I(r.root);return b(r,t),l&&(r.root=S(r.root)),r.updatedAt=new Date().toISOString(),await O(r,n),M(e,r.root),r});return await Promise.all(a.map(e=>(0,i.killSession)(e).catch(()=>{}))),n},Y=async(e,t,a)=>G(e,e=>{let n=c(e.root,t);if(!n)return null;let r=new Map(n.tabs.map(e=>[e.id,e])),i=a.map((e,t)=>{let a=r.get(e);return a?{...a,order:t}:null}).filter(e=>null!==e);return i.length!==n.tabs.length?null:(n.tabs=i,e)}),Z=async(e,t,a,n,r)=>G(e,e=>{let i=c(e.root,a),l=c(e.root,n);if(!i||!l)return null;let o=i.tabs.findIndex(e=>e.id===t);if(-1===o)return null;let[d]=i.tabs.splice(o,1);return i.activeTabId===t&&(i.activeTabId=i.tabs[0]?.id??null),i.tabs.forEach((e,t)=>{e.order=t}),l.tabs.splice(r,0,d),l.tabs.forEach((e,t)=>{e.order=t}),l.activeTabId=t,0===i.tabs.length&&s(e.root).length>1&&b(e,a),e.activePaneId=n,e}),ee=async(e,t,a,n)=>G(e,e=>{let r=c(e.root,t);if(!r)return null;let i=r.tabs.find(e=>e.id===a);return i?(void 0!==n.name&&(i.name=n.name),void 0!==n.panelType&&(i.panelType=n.panelType),void 0!==n.title&&(i.title=n.title),void 0!==n.cwd&&(i.cwd=n.cwd),void 0!==n.lastCommand&&(i.lastCommand=n.lastCommand),void 0!==n.webUrl&&(i.webUrl=n.webUrl),e):null});e.s(["addTabToPane",0,W,"closePaneInLayout",0,X,"createDefaultLayout",0,$,"createPane",0,x,"crossCheckLayout",0,R,"deletePane",0,U,"getLayout",0,j,"moveTabBetweenPanes",0,Z,"parseSessionName",0,z,"patchLayout",0,H,"patchPane",0,Q,"patchTab",0,ee,"readLayoutFile",0,A,"removeLayoutFile",0,D,"removeTabFromPane",0,E,"reorderTabsInPane",0,Y,"resolveLayoutDir",0,_,"resolveLayoutFile",0,k,"restartTabSession",0,q,"setLayoutReconciler",0,e=>{g.__ptLayoutReconciler=e},"splitPaneInLayout",0,V,"updateTabClaudeSessionId",0,B,"updateTabClaudeSummary",0,J,"updateTabCliStatus",0,K,"writeLayoutFile",0,O],825265)}];
2
2
 
3
3
  //# sourceMappingURL=src_lib_layout-store_ts_0fanx7c._.js.map