purplemux 0.1.10 → 0.1.12

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 (321) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +28 -28
  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 +14 -14
  6. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-f8oht._.js +61 -0
  7. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.5.jh3._.js +3 -0
  8. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.xjg-~._.js +3 -0
  9. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0-jdef0._.js → [root-of-the-server]__00_j5wq._.js} +2 -2
  10. package/.next/standalone/.next/server/chunks/[root-of-the-server]__046f4pf._.js +3 -0
  11. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05d6rxt._.js +3 -0
  12. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08tzm8d._.js +3 -0
  13. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09q4wzd._.js +3 -0
  14. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09y~h2q._.js +3 -0
  15. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_q9h8s._.js +61 -0
  16. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cgvael._.js +3 -0
  17. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fp84e0._.js +3 -0
  18. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fpqpxy._.js +3 -0
  19. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hls3o-._.js +30 -0
  20. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h~zv9n._.js +61 -0
  21. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0j.vqs2._.js +30 -0
  22. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jckpxo._.js +3 -0
  23. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kkzmwe._.js +3 -0
  24. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0brx4a4._.js → [root-of-the-server]__0kod3.-._.js} +2 -2
  25. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kra6_b._.js +3 -0
  26. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lgsm~z._.js +3 -0
  27. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nko7pr._.js +3 -0
  28. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0p03t8-._.js +1 -1
  29. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ps86kr._.js +3 -0
  30. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__036q7kp._.js → [root-of-the-server]__0ptrp2r._.js} +2 -2
  31. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rfe_~k._.js +3 -0
  32. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ssh9g_._.js +3 -0
  33. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t_-3xa._.js +3 -0
  34. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u3wwr-._.js +5 -0
  35. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0u8sqbl._.js +3 -0
  36. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uewqzn._.js +3 -0
  37. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w15338._.js +3 -0
  38. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wciws.._.js +3 -0
  39. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0z35~ny._.js +3 -0
  40. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~1j9pt._.js +3 -0
  41. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__11xob_g._.js → [root-of-the-server]__10ni~6o._.js} +2 -2
  42. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10nr7x4._.js +3 -0
  43. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12_nuye._.js +61 -0
  44. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1369pv8._.js +3 -0
  45. package/.next/standalone/.next/server/chunks/_04vmy2-._.js +3 -0
  46. package/.next/standalone/.next/server/chunks/_06oqi2i._.js +3 -0
  47. package/.next/standalone/.next/server/chunks/_0e8e4zn._.js +3 -0
  48. package/.next/standalone/.next/server/chunks/_0isokfh._.js +3 -0
  49. package/.next/standalone/.next/server/chunks/_0j2u-od._.js +3 -0
  50. package/.next/standalone/.next/server/chunks/_0smqq-6._.js +3 -0
  51. package/.next/standalone/.next/server/chunks/_0t8j4qd._.js +3 -0
  52. package/.next/standalone/.next/server/chunks/src_lib_layout-store_ts_0fanx7c._.js +1 -1
  53. package/.next/standalone/.next/server/chunks/src_lib_status-manager_ts_003hlhy._.js +1 -1
  54. package/.next/standalone/.next/server/chunks/src_lib_workspace-store_ts_0vqt073._.js +1 -1
  55. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0kefoq~._.js → [root-of-the-server]__0fv54u~._.js} +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/_05bi00a._.js +4 -0
  57. package/.next/standalone/.next/server/chunks/ssr/_0camkxl._.js +1 -1
  58. package/.next/standalone/.next/server/chunks/ssr/_0hu_yja._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/ssr/_0i209pm._.js +1 -1
  60. package/.next/standalone/.next/server/chunks/ssr/_0jk9j0z._.js +1 -1
  61. package/.next/standalone/.next/server/chunks/ssr/_0sfa_96._.js +1 -1
  62. package/.next/standalone/.next/server/chunks/ssr/_12se87g._.js +1 -1
  63. package/.next/standalone/.next/server/chunks/ssr/src_components_0-1ot7e._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/ssr/src_components_07a_zfh._.js +1 -1
  65. package/.next/standalone/.next/server/chunks/ssr/src_components_layout_page-shell_tsx_00344x7._.js +1 -1
  66. package/.next/standalone/.next/server/chunks/ssr/src_lib_require-auth_ts_0lybmh2._.js +1 -1
  67. package/.next/standalone/.next/server/chunks/ssr/src_lib_workspace-store_ts_00x-rec._.js +1 -1
  68. package/.next/standalone/.next/server/middleware-build-manifest.js +28 -28
  69. package/.next/standalone/.next/server/pages/_document.js +3 -3
  70. package/.next/standalone/.next/server/pages/_document.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/pages/_error.js +3 -3
  72. package/.next/standalone/.next/server/pages/_error.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/pages/agents/[agentId]/chat/build-manifest.json +3 -3
  74. package/.next/standalone/.next/server/pages/agents/[agentId]/chat/client-build-manifest.json +1 -1
  75. package/.next/standalone/.next/server/pages/agents/[agentId]/chat.js +3 -3
  76. package/.next/standalone/.next/server/pages/agents/[agentId]/chat.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/pages/agents/[agentId]/memory/build-manifest.json +3 -3
  78. package/.next/standalone/.next/server/pages/agents/[agentId]/memory/client-build-manifest.json +1 -1
  79. package/.next/standalone/.next/server/pages/agents/[agentId]/memory.js +3 -3
  80. package/.next/standalone/.next/server/pages/agents/[agentId]/memory.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/pages/agents/[agentId]/workspace/build-manifest.json +3 -3
  82. package/.next/standalone/.next/server/pages/agents/[agentId]/workspace/client-build-manifest.json +1 -1
  83. package/.next/standalone/.next/server/pages/agents/[agentId]/workspace.js +3 -3
  84. package/.next/standalone/.next/server/pages/agents/[agentId]/workspace.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/pages/agents/build-manifest.json +3 -3
  86. package/.next/standalone/.next/server/pages/agents/client-build-manifest.json +1 -1
  87. package/.next/standalone/.next/server/pages/agents.js +3 -3
  88. package/.next/standalone/.next/server/pages/agents.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/pages/api/agent/[agentId]/chat.js +4 -4
  90. package/.next/standalone/.next/server/pages/api/agent/[agentId]/chat.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/pages/api/agent/[agentId]/restart.js +4 -4
  92. package/.next/standalone/.next/server/pages/api/agent/[agentId]/restart.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/pages/api/agent/[agentId]/send.js +4 -4
  94. package/.next/standalone/.next/server/pages/api/agent/[agentId]/send.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/pages/api/agent/[agentId]/workspace.js +4 -4
  96. package/.next/standalone/.next/server/pages/api/agent/[agentId]/workspace.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/pages/api/agent/[agentId].js +4 -4
  98. package/.next/standalone/.next/server/pages/api/agent/[agentId].js.nft.json +1 -1
  99. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/brain-hook.js +4 -4
  100. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/brain-hook.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId]/hook.js +4 -4
  102. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId]/hook.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId]/result.js +4 -4
  104. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId]/result.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId]/send.js +4 -4
  106. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId]/send.js.nft.json +1 -1
  107. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId]/status.js +4 -4
  108. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId]/status.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId].js +4 -4
  110. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab/[tabId].js.nft.json +1 -1
  111. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab.js +4 -4
  112. package/.next/standalone/.next/server/pages/api/agent-rpc/[agentId]/tab.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/pages/api/agent-rpc/message.js +4 -4
  114. package/.next/standalone/.next/server/pages/api/agent-rpc/message.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/pages/api/agent-rpc/workspaces.js +1 -1
  116. package/.next/standalone/.next/server/pages/api/agent-rpc/workspaces.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/pages/api/agent.js +4 -4
  118. package/.next/standalone/.next/server/pages/api/agent.js.nft.json +1 -1
  119. package/.next/standalone/.next/server/pages/api/auth/login.js +1 -1
  120. package/.next/standalone/.next/server/pages/api/auth/login.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/pages/api/auth/preflight.js +1 -1
  122. package/.next/standalone/.next/server/pages/api/auth/preflight.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/pages/api/auth/setup.js +1 -1
  124. package/.next/standalone/.next/server/pages/api/auth/setup.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/pages/api/check-claude.js +1 -1
  126. package/.next/standalone/.next/server/pages/api/check-claude.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/pages/api/config.js +1 -1
  128. package/.next/standalone/.next/server/pages/api/config.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/pages/api/git/branch.js +1 -1
  130. package/.next/standalone/.next/server/pages/api/git/branch.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/pages/api/git/status.js +1 -1
  132. package/.next/standalone/.next/server/pages/api/git/status.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/pages/api/layout/cwd.js +1 -1
  134. package/.next/standalone/.next/server/pages/api/layout/cwd.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/pages/api/layout/diff.js +1 -1
  136. package/.next/standalone/.next/server/pages/api/layout/diff.js.nft.json +1 -1
  137. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js +1 -1
  138. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js.nft.json +1 -1
  139. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js +2 -2
  140. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js.nft.json +1 -1
  141. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js +1 -1
  142. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js.nft.json +1 -1
  143. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js +6 -5
  144. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js +1 -1
  146. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js.nft.json +1 -1
  147. package/.next/standalone/.next/server/pages/api/layout/pane.js +1 -1
  148. package/.next/standalone/.next/server/pages/api/layout/pane.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/pages/api/layout.js +1 -1
  150. package/.next/standalone/.next/server/pages/api/layout.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/pages/api/message-history.js +1 -1
  152. package/.next/standalone/.next/server/pages/api/message-history.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/pages/api/preflight/runtime.js +1 -1
  154. package/.next/standalone/.next/server/pages/api/preflight/runtime.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/pages/api/push/vapid-key.js +1 -1
  156. package/.next/standalone/.next/server/pages/api/push/vapid-key.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js +1 -1
  158. package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js +1 -1
  160. package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js +2 -1
  162. package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/pages/api/stats/projects.js +2 -2
  164. package/.next/standalone/.next/server/pages/api/stats/projects.js.nft.json +1 -1
  165. package/.next/standalone/.next/server/pages/api/stats/sessions.js +2 -2
  166. package/.next/standalone/.next/server/pages/api/stats/sessions.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/pages/api/stats/uptime.js +2 -2
  168. package/.next/standalone/.next/server/pages/api/stats/uptime.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/pages/api/status/hook.js +4 -4
  170. package/.next/standalone/.next/server/pages/api/status/hook.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js +1 -1
  172. package/.next/standalone/.next/server/pages/api/system/tmux-sessions.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/pages/api/timeline/sessions.js +1 -1
  174. package/.next/standalone/.next/server/pages/api/timeline/sessions.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/pages/api/tmux/info.js +1 -1
  176. package/.next/standalone/.next/server/pages/api/tmux/info.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/pages/api/tmux/permission-options.js +1 -1
  178. package/.next/standalone/.next/server/pages/api/tmux/permission-options.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/pages/api/tmux/plan-options.js +1 -1
  180. package/.next/standalone/.next/server/pages/api/tmux/plan-options.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js +4 -4
  182. package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/pages/api/tmux/reset.js +5 -4
  184. package/.next/standalone/.next/server/pages/api/tmux/reset.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/pages/api/tmux/send-input.js +1 -1
  186. package/.next/standalone/.next/server/pages/api/tmux/send-input.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js +1 -1
  188. package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js.nft.json +1 -1
  189. package/.next/standalone/.next/server/pages/api/workspace/active.js +1 -1
  190. package/.next/standalone/.next/server/pages/api/workspace/active.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/pages/api/workspace/reorder.js +1 -1
  192. package/.next/standalone/.next/server/pages/api/workspace/reorder.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/pages/api/workspace/validate.js +1 -1
  194. package/.next/standalone/.next/server/pages/api/workspace/validate.js.nft.json +1 -1
  195. package/.next/standalone/.next/server/pages/api/workspace.js +5 -4
  196. package/.next/standalone/.next/server/pages/api/workspace.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/pages/de/404.html +1 -1
  198. package/.next/standalone/.next/server/pages/de/500.html +1 -1
  199. package/.next/standalone/.next/server/pages/en/404.html +1 -1
  200. package/.next/standalone/.next/server/pages/en/500.html +1 -1
  201. package/.next/standalone/.next/server/pages/es/404.html +1 -1
  202. package/.next/standalone/.next/server/pages/es/500.html +1 -1
  203. package/.next/standalone/.next/server/pages/fr/404.html +1 -1
  204. package/.next/standalone/.next/server/pages/fr/500.html +1 -1
  205. package/.next/standalone/.next/server/pages/index/build-manifest.json +3 -3
  206. package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
  207. package/.next/standalone/.next/server/pages/index.js +3 -3
  208. package/.next/standalone/.next/server/pages/index.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/pages/ja/404.html +1 -1
  210. package/.next/standalone/.next/server/pages/ja/500.html +1 -1
  211. package/.next/standalone/.next/server/pages/ko/404.html +1 -1
  212. package/.next/standalone/.next/server/pages/ko/500.html +1 -1
  213. package/.next/standalone/.next/server/pages/login.js +3 -3
  214. package/.next/standalone/.next/server/pages/login.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/pages/pt-BR/404.html +1 -1
  216. package/.next/standalone/.next/server/pages/pt-BR/500.html +1 -1
  217. package/.next/standalone/.next/server/pages/reports/build-manifest.json +3 -3
  218. package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
  219. package/.next/standalone/.next/server/pages/reports.js +3 -3
  220. package/.next/standalone/.next/server/pages/reports.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/pages/reset.js +3 -3
  222. package/.next/standalone/.next/server/pages/reset.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/pages/ru/404.html +1 -1
  224. package/.next/standalone/.next/server/pages/ru/500.html +1 -1
  225. package/.next/standalone/.next/server/pages/stats/build-manifest.json +4 -4
  226. package/.next/standalone/.next/server/pages/stats/client-build-manifest.json +1 -1
  227. package/.next/standalone/.next/server/pages/stats/react-loadable-manifest.json +7 -7
  228. package/.next/standalone/.next/server/pages/stats.js +3 -3
  229. package/.next/standalone/.next/server/pages/stats.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/pages/tools-required.js +3 -3
  231. package/.next/standalone/.next/server/pages/tools-required.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/pages/tr/404.html +1 -1
  233. package/.next/standalone/.next/server/pages/tr/500.html +1 -1
  234. package/.next/standalone/.next/server/pages/webview/build-manifest.json +3 -3
  235. package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
  236. package/.next/standalone/.next/server/pages/webview.js +3 -3
  237. package/.next/standalone/.next/server/pages/webview.js.nft.json +1 -1
  238. package/.next/standalone/.next/server/pages/zh-CN/404.html +1 -1
  239. package/.next/standalone/.next/server/pages/zh-CN/500.html +1 -1
  240. package/.next/standalone/.next/server/pages/zh-TW/404.html +1 -1
  241. package/.next/standalone/.next/server/pages/zh-TW/500.html +1 -1
  242. package/.next/standalone/.next/static/{QBcppzKifu6ZXgxIb2laW → IGLfY98cOpT_s-m_8zv8r}/_buildManifest.js +8 -8
  243. package/.next/standalone/.next/static/chunks/{0w2qwb1-piu-m.js → 00t4cxw76sr6_.js} +3 -3
  244. package/.next/standalone/.next/static/chunks/02lycfk~b_9ps.js +1 -0
  245. package/.next/standalone/.next/static/chunks/{0rus7dt5e4fr9.js → 08gm7yw4lvhcp.js} +1 -1
  246. package/.next/standalone/.next/static/chunks/0_24.ba0w6i58.js +1 -0
  247. package/.next/standalone/.next/static/chunks/{0p5b1r4f3uizt.js → 0d7et_73ufx.t.js} +1 -1
  248. package/.next/standalone/.next/static/chunks/{0hde.5_5bt3n7.js → 0fot2fshtz0xb.js} +3 -3
  249. package/.next/standalone/.next/static/chunks/{146n1rm5lnamr.js → 0modp.voz0yb8.js} +3 -3
  250. package/.next/standalone/.next/static/chunks/{0j9h57m8znfyx.js → 0n8c-7mx87.qs.js} +1 -1
  251. package/.next/standalone/.next/static/chunks/{0x_kj2or0xjhd.js → 0sg17g3rw3j79.js} +3 -3
  252. package/.next/standalone/.next/static/chunks/{0.ko43jbbjwzd.js → 0uvj8zvtnbzk..js} +4 -4
  253. package/.next/standalone/.next/static/chunks/{12d.ewy5r~pat.js → 0vnqr1g65cq~a.js} +3 -3
  254. package/.next/standalone/.next/static/chunks/{05bno_gdrkmsm.js → 0x-x4o1fkpw-g.js} +1 -1
  255. package/.next/standalone/.next/static/chunks/{0od39.d~sm_lf.js → 0y3i2gt468lcz.js} +3 -3
  256. package/.next/standalone/.next/static/chunks/0zv-py60g55wn.js +1 -0
  257. package/.next/standalone/.next/static/chunks/{0bra~n.j9rjcm.js → 119llmw30g8ci.js} +1 -1
  258. package/.next/standalone/.next/static/chunks/{0kzdu-5p1onjr.js → 12~ueg_4wkgfs.js} +1 -1
  259. package/.next/standalone/.next/static/chunks/13h_qiv748a8c.js +1 -0
  260. package/.next/standalone/.next/static/chunks/{0ps.lwk6-aznm.js → 1749j145r0f24.js} +3 -3
  261. package/.next/standalone/.next/static/chunks/{turbopack-17z5tn-6x7j7e.js → turbopack-0-_7t3yzrv2o0.js} +1 -1
  262. package/.next/standalone/.next/static/chunks/{turbopack-0d0o9jpqo8w-t.js → turbopack-02sp76-9vzd-3.js} +1 -1
  263. package/.next/standalone/.next/static/chunks/{turbopack-0j0g-a-lc_b0v.js → turbopack-0g..zdci5n6yt.js} +1 -1
  264. package/.next/standalone/.next/static/chunks/turbopack-0gcm0ao7ar0vo.js +1 -0
  265. package/.next/standalone/.next/static/chunks/{turbopack-0j1pbu78_jr~5.js → turbopack-0jbxqfqs~bhnb.js} +1 -1
  266. package/.next/standalone/.next/static/chunks/{turbopack-0bxdk9j0sss8q.js → turbopack-0scaqrnmscmk5.js} +1 -1
  267. package/.next/standalone/.next/static/chunks/{turbopack-08x9ig8vdyhq4.js → turbopack-0xl824.ut7kv5.js} +1 -1
  268. package/.next/standalone/.next/static/chunks/{turbopack-0_aedr7s11nt..js → turbopack-102tph-sy46xp.js} +1 -1
  269. package/.next/standalone/package.json +2 -1
  270. package/.next/standalone/server.js +1 -1
  271. package/dist/server.js +100 -51
  272. package/package.json +2 -1
  273. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00x46ki._.js +0 -61
  274. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04y7nhu._.js +0 -61
  275. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06-dgtb._.js +0 -3
  276. package/.next/standalone/.next/server/chunks/[root-of-the-server]__065iaxv._.js +0 -3
  277. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06wyqp.._.js +0 -3
  278. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07-_c92._.js +0 -3
  279. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07zn3kb._.js +0 -3
  280. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09406om._.js +0 -61
  281. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09a8m3e._.js +0 -3
  282. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09o58zw._.js +0 -3
  283. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_ppd-c._.js +0 -3
  284. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0acnto3._.js +0 -30
  285. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b3rjm4._.js +0 -3
  286. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b_b~ji._.js +0 -3
  287. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bg43rp._.js +0 -3
  288. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gi47ei._.js +0 -3
  289. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gi75ul._.js +0 -3
  290. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hxez3d._.js +0 -3
  291. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ibodmf._.js +0 -3
  292. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jpsc9a._.js +0 -3
  293. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ju47~2._.js +0 -3
  294. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0mw1go1._.js +0 -30
  295. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oal19a._.js +0 -3
  296. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pbam98._.js +0 -3
  297. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pj_7jd._.js +0 -61
  298. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pnyspj._.js +0 -61
  299. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rshm4m._.js +0 -61
  300. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sctil9._.js +0 -61
  301. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tfzc~y._.js +0 -30
  302. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0tt812u._.js +0 -3
  303. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0v4bv.q._.js +0 -3
  304. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vlnx35._.js +0 -5
  305. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wugv6s._.js +0 -3
  306. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wy5vks._.js +0 -3
  307. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ztopst._.js +0 -3
  308. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~chgwm._.js +0 -3
  309. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10h-xm5._.js +0 -3
  310. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12fdbe~._.js +0 -3
  311. package/.next/standalone/.next/server/chunks/_0beu5d6._.js +0 -3
  312. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_0bgq_1u.js +0 -3
  313. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_pages-api_138u1g1.js +0 -3
  314. package/.next/standalone/.next/server/chunks/ssr/_0b8untu._.js +0 -4
  315. package/.next/standalone/.next/static/chunks/0b8ftzkop9kc0.js +0 -1
  316. package/.next/standalone/.next/static/chunks/0hish8kae8ww1.js +0 -1
  317. package/.next/standalone/.next/static/chunks/0komb9eh49_ay.js +0 -1
  318. package/.next/standalone/.next/static/chunks/134dizutdhkgt.js +0 -1
  319. package/.next/standalone/.next/static/chunks/turbopack-0_~_uhztguxbd.js +0 -1
  320. /package/.next/standalone/.next/static/{QBcppzKifu6ZXgxIb2laW → IGLfY98cOpT_s-m_8zv8r}/_clientMiddlewareManifest.js +0 -0
  321. /package/.next/standalone/.next/static/{QBcppzKifu6ZXgxIb2laW → IGLfY98cOpT_s-m_8zv8r}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- QBcppzKifu6ZXgxIb2laW
1
+ IGLfY98cOpT_s-m_8zv8r
@@ -15,11 +15,11 @@
15
15
  "static/chunks/0yi.kp2rt4-nc.js",
16
16
  "static/chunks/00yfl7agnve...js",
17
17
  "static/chunks/09wg815lxyi._.js",
18
- "static/chunks/134dizutdhkgt.js",
18
+ "static/chunks/02lycfk~b_9ps.js",
19
19
  "static/chunks/0ti3g2b7fhm5v.js",
20
20
  "static/chunks/05-mpg38w0a82.js",
21
- "static/chunks/0komb9eh49_ay.js",
22
- "static/chunks/turbopack-0_~_uhztguxbd.js"
21
+ "static/chunks/13h_qiv748a8c.js",
22
+ "static/chunks/turbopack-0scaqrnmscmk5.js"
23
23
  ],
24
24
  "/_app": [
25
25
  "static/chunks/08mloizj8v086.js",
@@ -49,16 +49,16 @@
49
49
  "static/chunks/0-sxrfxgcu1ce.js",
50
50
  "static/chunks/06fd4gm.ayhf7.js",
51
51
  "static/chunks/09ic8khns87py.js",
52
- "static/chunks/134dizutdhkgt.js",
52
+ "static/chunks/02lycfk~b_9ps.js",
53
53
  "static/chunks/0yi.kp2rt4-nc.js",
54
54
  "static/chunks/00yfl7agnve...js",
55
- "static/chunks/0komb9eh49_ay.js",
55
+ "static/chunks/13h_qiv748a8c.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-0_aedr7s11nt..js"
61
+ "static/chunks/turbopack-0gcm0ao7ar0vo.js"
62
62
  ],
63
63
  "/agents/[agentId]/chat": [
64
64
  "static/chunks/0fungak7h7t_u.js",
@@ -77,12 +77,12 @@
77
77
  "static/chunks/00yfl7agnve...js",
78
78
  "static/chunks/09wg815lxyi._.js",
79
79
  "static/chunks/0wlz6--vu7adu.js",
80
- "static/chunks/134dizutdhkgt.js",
80
+ "static/chunks/02lycfk~b_9ps.js",
81
81
  "static/chunks/0py3p~barq9qm.js",
82
82
  "static/chunks/0-sxrfxgcu1ce.js",
83
- "static/chunks/0komb9eh49_ay.js",
83
+ "static/chunks/13h_qiv748a8c.js",
84
84
  "static/chunks/0ml5~2ty-rbv_.js",
85
- "static/chunks/turbopack-17z5tn-6x7j7e.js"
85
+ "static/chunks/turbopack-0-_7t3yzrv2o0.js"
86
86
  ],
87
87
  "/agents/[agentId]/memory": [
88
88
  "static/chunks/0mi.f1.iffvs7.js",
@@ -95,10 +95,10 @@
95
95
  "static/chunks/0py3p~barq9qm.js",
96
96
  "static/chunks/0-sxrfxgcu1ce.js",
97
97
  "static/chunks/06fd4gm.ayhf7.js",
98
- "static/chunks/134dizutdhkgt.js",
98
+ "static/chunks/02lycfk~b_9ps.js",
99
99
  "static/chunks/0wlz6--vu7adu.js",
100
100
  "static/chunks/0ti3g2b7fhm5v.js",
101
- "static/chunks/0komb9eh49_ay.js",
101
+ "static/chunks/13h_qiv748a8c.js",
102
102
  "static/chunks/00yfl7agnve...js",
103
103
  "static/chunks/0p15~kn-ue177.js",
104
104
  "static/chunks/0yi.kp2rt4-nc.js",
@@ -106,7 +106,7 @@
106
106
  "static/chunks/0qe146f.3s0ud.js",
107
107
  "static/chunks/09wg815lxyi._.js",
108
108
  "static/chunks/15aj3kd.p7zw6.js",
109
- "static/chunks/turbopack-0j1pbu78_jr~5.js"
109
+ "static/chunks/turbopack-0jbxqfqs~bhnb.js"
110
110
  ],
111
111
  "/agents/[agentId]/workspace": [
112
112
  "static/chunks/0kmwqchx6vxwc.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/0komb9eh49_ay.js",
127
+ "static/chunks/13h_qiv748a8c.js",
128
128
  "static/chunks/0qe146f.3s0ud.js",
129
- "static/chunks/134dizutdhkgt.js",
130
- "static/chunks/turbopack-08x9ig8vdyhq4.js"
129
+ "static/chunks/02lycfk~b_9ps.js",
130
+ "static/chunks/turbopack-0xl824.ut7kv5.js"
131
131
  ],
132
132
  "/login": [
133
133
  "static/chunks/14rkjvhij9msz.js",
@@ -158,13 +158,13 @@
158
158
  "static/chunks/0ml5~2ty-rbv_.js",
159
159
  "static/chunks/0wlz6--vu7adu.js",
160
160
  "static/chunks/09wg815lxyi._.js",
161
- "static/chunks/0hish8kae8ww1.js",
161
+ "static/chunks/0_24.ba0w6i58.js",
162
162
  "static/chunks/0yi.kp2rt4-nc.js",
163
163
  "static/chunks/00yfl7agnve...js",
164
164
  "static/chunks/0-sxrfxgcu1ce.js",
165
- "static/chunks/134dizutdhkgt.js",
165
+ "static/chunks/02lycfk~b_9ps.js",
166
166
  "static/chunks/06fd4gm.ayhf7.js",
167
- "static/chunks/turbopack-0j0g-a-lc_b0v.js"
167
+ "static/chunks/turbopack-0g..zdci5n6yt.js"
168
168
  ],
169
169
  "/reset": [
170
170
  "static/chunks/0_sdw~kzk-at0.js",
@@ -175,7 +175,7 @@
175
175
  "static/chunks/turbopack-0jds356hmim~..js"
176
176
  ],
177
177
  "/stats": [
178
- "static/chunks/0kzdu-5p1onjr.js",
178
+ "static/chunks/12~ueg_4wkgfs.js",
179
179
  "static/chunks/0gx~s_r.d1ncl.js",
180
180
  "static/chunks/05-mpg38w0a82.js",
181
181
  "static/chunks/0ay.h74rl2t2c.js",
@@ -188,12 +188,12 @@
188
188
  "static/chunks/00yfl7agnve...js",
189
189
  "static/chunks/0wlz6--vu7adu.js",
190
190
  "static/chunks/09wg815lxyi._.js",
191
- "static/chunks/134dizutdhkgt.js",
191
+ "static/chunks/02lycfk~b_9ps.js",
192
192
  "static/chunks/0ml5~2ty-rbv_.js",
193
- "static/chunks/0b8ftzkop9kc0.js",
193
+ "static/chunks/0zv-py60g55wn.js",
194
194
  "static/chunks/15aj3kd.p7zw6.js",
195
195
  "static/chunks/0yi.kp2rt4-nc.js",
196
- "static/chunks/turbopack-0bxdk9j0sss8q.js"
196
+ "static/chunks/turbopack-102tph-sy46xp.js"
197
197
  ],
198
198
  "/tools-required": [
199
199
  "static/chunks/0kf8xkvr3218u.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/0komb9eh49_ay.js",
221
+ "static/chunks/13h_qiv748a8c.js",
222
222
  "static/chunks/0ml5~2ty-rbv_.js",
223
223
  "static/chunks/09wg815lxyi._.js",
224
224
  "static/chunks/0wlz6--vu7adu.js",
225
- "static/chunks/134dizutdhkgt.js",
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-0d0o9jpqo8w-t.js"
228
+ "static/chunks/turbopack-02sp76-9vzd-3.js"
229
229
  ]
230
230
  },
231
231
  "devFiles": [],
232
232
  "polyfillFiles": [],
233
233
  "lowPriorityFiles": [
234
- "static/QBcppzKifu6ZXgxIb2laW/_buildManifest.js",
235
- "static/QBcppzKifu6ZXgxIb2laW/_ssgManifest.js",
236
- "static/QBcppzKifu6ZXgxIb2laW/_clientMiddlewareManifest.js"
234
+ "static/IGLfY98cOpT_s-m_8zv8r/_buildManifest.js",
235
+ "static/IGLfY98cOpT_s-m_8zv8r/_ssgManifest.js",
236
+ "static/IGLfY98cOpT_s-m_8zv8r/_clientMiddlewareManifest.js"
237
237
  ],
238
238
  "rootMainFiles": []
239
239
  }
@@ -3,9 +3,9 @@
3
3
  "routes": {},
4
4
  "dynamicRoutes": {},
5
5
  "preview": {
6
- "previewModeId": "c64789096eb78b3870e653780ece9913",
7
- "previewModeSigningKey": "512dedfb5ad2fd55780508b1e2860a4aa1d7b2f11bd3bfbb539460dda51fcc94",
8
- "previewModeEncryptionKey": "42c66696856d7387d52a65f665d6de5aed2a5d6b842d51c56e52a8bd8926db3c"
6
+ "previewModeId": "46ab3f8cd9121892a2f6293e637265b9",
7
+ "previewModeSigningKey": "ff342e5b1e4811cac3f5b0675d3fe7a3e107947194bb827a383e09fea09b1e2c",
8
+ "previewModeEncryptionKey": "71f8df5f8677bd98bd4bb663a1b424ec2d7f5313c82a89d94ab89f90d72ce862"
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": "14b0478"
5
+ "NEXT_PUBLIC_COMMIT_HASH": "04424dd"
6
6
  },
7
7
  "webpack": null,
8
8
  "typescript": {
@@ -608,59 +608,59 @@
608
608
  "dataRoutes": [
609
609
  {
610
610
  "page": "/",
611
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/index\\.json$"
611
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/index\\.json$"
612
612
  },
613
613
  {
614
614
  "page": "/agents",
615
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/agents\\.json$"
615
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/agents\\.json$"
616
616
  },
617
617
  {
618
618
  "page": "/agents/[agentId]/chat",
619
619
  "routeKeys": {
620
620
  "nxtPagentId": "nxtPagentId"
621
621
  },
622
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/agents/([^/]+?)/chat\\.json$",
623
- "namedDataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/agents/(?<nxtPagentId>[^/]+?)/chat\\.json$"
622
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/agents/([^/]+?)/chat\\.json$",
623
+ "namedDataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/agents/(?<nxtPagentId>[^/]+?)/chat\\.json$"
624
624
  },
625
625
  {
626
626
  "page": "/agents/[agentId]/memory",
627
627
  "routeKeys": {
628
628
  "nxtPagentId": "nxtPagentId"
629
629
  },
630
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/agents/([^/]+?)/memory\\.json$",
631
- "namedDataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/agents/(?<nxtPagentId>[^/]+?)/memory\\.json$"
630
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/agents/([^/]+?)/memory\\.json$",
631
+ "namedDataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/agents/(?<nxtPagentId>[^/]+?)/memory\\.json$"
632
632
  },
633
633
  {
634
634
  "page": "/agents/[agentId]/workspace",
635
635
  "routeKeys": {
636
636
  "nxtPagentId": "nxtPagentId"
637
637
  },
638
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/agents/([^/]+?)/workspace\\.json$",
639
- "namedDataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/agents/(?<nxtPagentId>[^/]+?)/workspace\\.json$"
638
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/agents/([^/]+?)/workspace\\.json$",
639
+ "namedDataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/agents/(?<nxtPagentId>[^/]+?)/workspace\\.json$"
640
640
  },
641
641
  {
642
642
  "page": "/login",
643
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/login\\.json$"
643
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/login\\.json$"
644
644
  },
645
645
  {
646
646
  "page": "/reports",
647
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/reports\\.json$"
647
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/reports\\.json$"
648
648
  },
649
649
  {
650
650
  "page": "/reset",
651
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/reset\\.json$"
651
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/reset\\.json$"
652
652
  },
653
653
  {
654
654
  "page": "/stats",
655
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/stats\\.json$"
655
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/stats\\.json$"
656
656
  },
657
657
  {
658
658
  "page": "/tools-required",
659
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/tools-required\\.json$"
659
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/tools-required\\.json$"
660
660
  },
661
661
  {
662
662
  "page": "/webview",
663
- "dataRouteRegex": "^/_next/data/QBcppzKifu6ZXgxIb2laW/webview\\.json$"
663
+ "dataRouteRegex": "^/_next/data/IGLfY98cOpT_s\\-m_8zv8r/webview\\.json$"
664
664
  }
665
665
  ],
666
666
  "i18n": {
@@ -0,0 +1,61 @@
1
+ module.exports=[688947,(e,t,a)=>{t.exports=e.x("stream",()=>require("stream"))},406461,(e,t,a)=>{t.exports=e.x("zlib",()=>require("zlib"))},254799,(e,t,a)=>{t.exports=e.x("crypto",()=>require("crypto"))},524836,(e,t,a)=>{t.exports=e.x("https",()=>require("https"))},921517,(e,t,a)=>{t.exports=e.x("http",()=>require("http"))},504446,(e,t,a)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,a)=>{t.exports=e.x("tls",()=>require("tls"))},792509,(e,t,a)=>{t.exports=e.x("url",()=>require("url"))},500874,(e,t,a)=>{t.exports=e.x("buffer",()=>require("buffer"))},427699,(e,t,a)=>{t.exports=e.x("events",()=>require("events"))},666126,e=>{"use strict";e.i(478319);var t=e.i(220951);(0,e.i(25146).createLogger)("sync");let a=globalThis;a.__ptSyncClients||(a.__ptSyncClients=new Set);let r=a.__ptSyncClients;e.s(["broadcastSync",0,e=>{let a=JSON.stringify(e);for(let e of r)e.readyState===t.WebSocket.OPEN&&e.bufferedAmount<1048576&&e.send(a)}])},322429,e=>{"use strict";var t=e.i(924868),a=e.i(814747),r=e.i(446786),i=e.i(44014),s=e.i(459015),o=e.i(25146),n=e.i(666126),l=e.i(825265),c=e.i(804767);let d=(0,o.createLogger)("workspace"),u="Workspace ",p=a.default.join(r.default.homedir(),".purplemux"),w=a.default.join(p,"workspaces.json"),f=a.default.join(p,"layout.json"),y=a.default.join(p,"tabs.json"),h=globalThis;h.__purplemuxWorkspaceLock||(h.__purplemuxWorkspaceLock=Promise.resolve());let m=async e=>{let t,a=new Promise(e=>{t=e}),r=h.__purplemuxWorkspaceLock;h.__purplemuxWorkspaceLock=a,await r;try{return await e()}finally{t()}},_=()=>({workspaces:[],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:new Date().toISOString()}),v=async()=>{let e;try{e=await t.default.readFile(w,"utf-8")}catch{return null}try{let t=JSON.parse(e);for(let e of t.workspaces)!e.directories&&e.directory&&(e.directories=[e.directory],delete e.directory);return t}catch{d.warn("Failed to parse workspaces.json, starting empty");try{await t.default.copyFile(w,w.replace(/\.json$/,".json.bak"))}catch{}return null}},k=async e=>{let{workspaces:a,activeWorkspaceId:r,sidebarCollapsed:i,sidebarWidth:s}=e,o=JSON.stringify({workspaces:a,activeWorkspaceId:r,sidebarCollapsed:i,sidebarWidth:s});if(h.__purplemuxWorkspacesContentCache===o)return;e.updatedAt=new Date().toISOString();let l=w+".tmp";try{await t.default.writeFile(l,JSON.stringify(e,null,2),{mode:384}),await t.default.rename(l,w)}catch(e){throw await t.default.unlink(l).catch(()=>{}),e}h.__purplemuxWorkspacesContentCache=o,(0,n.broadcastSync)({type:"workspace"})},$=async()=>{let e=await (0,l.readLayoutFile)(f);if(!e)return null;let a="ws-default";await t.default.mkdir((0,l.resolveLayoutDir)(a),{recursive:!0}),await (0,l.writeLayoutFile)(e,(0,l.resolveLayoutFile)(a));let i={workspaces:[{id:a,name:"default",directories:[r.default.homedir()],order:0}],sidebarCollapsed:!1,sidebarWidth:240,updatedAt:e.updatedAt||new Date().toISOString()};return await k(i),d.info("Phase 4 layout.json → Workspace 'default' migration complete"),i},g=async()=>{try{let e=await t.default.readFile(y,"utf-8"),a=JSON.parse(e);if(!Array.isArray(a.tabs)||0===a.tabs.length)return null;let r=`pane-${(0,i.nanoid)(6)}`,s={root:{type:"pane",id:r,tabs:a.tabs,activeTabId:a.activeTabId??null},activePaneId:r,updatedAt:new Date().toISOString()},o=f+".tmp";try{await t.default.writeFile(o,JSON.stringify(s,null,2),{mode:384}),await t.default.rename(o,f)}catch(e){throw await t.default.unlink(o).catch(()=>{}),e}return d.info("tabs.json → layout.json migration complete"),await $()}catch{return null}},x=async()=>{await t.default.mkdir(a.default.join(p,"workspaces"),{recursive:!0});let e=await v();if(!e&&(await t.default.access(f).then(()=>!0).catch(()=>!1)?e=await $():await t.default.access(y).then(()=>!0).catch(()=>!1)&&(e=await g())),!e){let t=_();await k(t),e=t,d.info("Initial workspaces.json created")}if(0===e.workspaces.length)return;let r=await (0,s.listSessions)();for(let t of e.workspaces){let e=(0,l.resolveLayoutFile)(t.id),a=await (0,l.readLayoutFile)(e);if(!a){d.warn(`Workspace '${t.name}': layout.json corrupted, reset to default pane`),a=await (0,l.createDefaultLayout)(t.id,t.directories[0]),await (0,l.writeLayoutFile)(a,e);continue}let i=(0,c.collectAllTabs)(a.root).map(e=>e.sessionName),s=`pt-${t.id}-`,o=r.filter(e=>i.includes(e)||e.startsWith(s));try{await (0,l.crossCheckLayout)(a,o,t.id,t.directories[0])&&await (0,l.writeLayoutFile)(a,e)}catch(e){d.error(`Workspace '${t.name}': tmux consistency check failed: ${e instanceof Error?e.message:e}`)}}},S=async()=>{let e=await v();return e?{workspaces:e.workspaces,activeWorkspaceId:e.activeWorkspaceId,sidebarCollapsed:e.sidebarCollapsed,sidebarWidth:e.sidebarWidth}:{workspaces:[],sidebarCollapsed:!1,sidebarWidth:220}},b=async()=>{let e=await v();return e?.activeWorkspaceId&&e.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:e?.workspaces[0]?.id??null},T=async e=>{let t=await v();return t?.workspaces.find(t=>t.id===e)},j=async(e,a,r)=>m(async()=>{let s;try{s=await t.default.stat(e)}catch{throw Error("Directory does not exist")}if(!s.isDirectory())throw Error("Please enter a directory path, not a file");let o=await v()??_(),n=`ws-${(0,i.nanoid)(6)}`,c=a?.trim()||(e=>{let t=0;for(let a of e)if(a.name.startsWith(u)){let e=parseInt(a.name.slice(u.length),10);e>t&&(t=e)}return`${u}${t+1}`})(o.workspaces),p=o.workspaces.length,w=await (0,l.createDefaultLayout)(n,e,r);await t.default.mkdir((0,l.resolveLayoutDir)(n),{recursive:!0}),await (0,l.writeLayoutFile)(w,(0,l.resolveLayoutFile)(n));let f={id:n,name:c,directories:[e],order:p};return o.workspaces.push(f),await k(o),d.info(`Created: ${n} (${c}, ${e})`),f}),E=async e=>m(async()=>{let t=await v()??_(),a=t.workspaces.findIndex(t=>t.id===e);if(-1===a)return!1;let r=t.workspaces[a],i=await (0,l.readLayoutFile)((0,l.resolveLayoutFile)(e));if(i)for(let e of(0,c.collectAllTabs)(i.root))try{await (0,s.killSession)(e.sessionName)}catch{}try{await (0,l.removeLayoutFile)(e)}catch{}return t.workspaces.splice(a,1),t.workspaces.forEach((e,t)=>{e.order=t}),await k(t),d.info(`Deleted: ${e} (${r.name})`),!0}),I=async(e,t)=>m(async()=>{let a=await v();if(!a)return null;let r=a.workspaces.find(t=>t.id===e);return r?(r.name=t,await k(a),d.info(`Renamed: ${e} → "${t}"`),{...r}):null}),D=async e=>m(async()=>{let t=await v()??_();void 0!==e.activeWorkspaceId&&(t.activeWorkspaceId=e.activeWorkspaceId),void 0!==e.sidebarCollapsed&&(t.sidebarCollapsed=e.sidebarCollapsed),void 0!==e.sidebarWidth&&(t.sidebarWidth=e.sidebarWidth),await k(t)}),C=async(e,t)=>m(async()=>{let a=await v();if(!a)return;let r=a.workspaces.find(t=>t.id===e);r&&JSON.stringify(r.directories)!==JSON.stringify(t)&&(r.directories=t,await k(a))}),W=async e=>m(async()=>{let t=await v()??_(),a=new Map(t.workspaces.map(e=>[e.id,e])),r=[];for(let t of e){let e=a.get(t);if(!e)return!1;r.push(e)}return r.length===t.workspaces.length&&(r.forEach((e,t)=>{e.order=t}),t.workspaces=r,await k(t),!0)}),O=async e=>{try{if(!(await t.default.stat(e)).isDirectory())return{valid:!1,error:"Please enter a directory path, not a file"}}catch{return{valid:!1,error:"Directory does not exist"}}return{valid:!0,suggestedName:a.default.basename(e)}};e.s(["createWorkspace",0,j,"deleteWorkspace",0,E,"getActiveWorkspaceId",0,b,"getWorkspaceById",0,T,"getWorkspaces",0,S,"initWorkspaceStore",0,x,"renameWorkspace",0,I,"reorderWorkspaces",0,W,"updateActive",0,D,"updateWorkspaceDirectories",0,C,"validateDirectory",0,O])},796902,e=>{"use strict";var t=e.i(814747),a=e.i(446786);let r=t.default.join(a.default.homedir(),".purplemux"),i=t.default.join(r,"statusline.sh"),s=t.default.join(r,"rate-limits.json"),o=`#!/bin/sh
2
+ input=$(cat)
3
+ OUTPUT="$HOME/.purplemux/rate-limits.json"
4
+ HAS_LIMITS=$(echo "$input" | jq -r 'if .rate_limits.five_hour or .rate_limits.seven_day then "yes" else "no" end' 2>/dev/null)
5
+ if [ "$HAS_LIMITS" = "yes" ]; then
6
+ echo "$input" | jq -c '{
7
+ ts: now,
8
+ model: .model.display_name,
9
+ five_hour: .rate_limits.five_hour,
10
+ seven_day: .rate_limits.seven_day,
11
+ context: {
12
+ used_pct: .context_window.used_percentage,
13
+ remaining_pct: .context_window.remaining_percentage,
14
+ input_tokens: .context_window.total_input_tokens,
15
+ output_tokens: .context_window.total_output_tokens,
16
+ window_size: .context_window.context_window_size
17
+ },
18
+ cost: .cost
19
+ }' > "$OUTPUT" 2>/dev/null
20
+ fi
21
+
22
+ # Check user statusLine: project local → project shared → global
23
+ PROJECT_DIR=$(echo "$input" | jq -r '.workspace.project_dir // empty')
24
+ USER_CMD=""
25
+ if [ -n "$PROJECT_DIR" ]; then
26
+ USER_CMD=$(jq -r '.statusLine.command // empty' "$PROJECT_DIR/.claude/settings.local.json" 2>/dev/null)
27
+ [ -z "$USER_CMD" ] && USER_CMD=$(jq -r '.statusLine.command // empty' "$PROJECT_DIR/.claude/settings.json" 2>/dev/null)
28
+ fi
29
+ [ -z "$USER_CMD" ] && USER_CMD=$(jq -r '.statusLine.command // empty' "$HOME/.claude/settings.json" 2>/dev/null)
30
+
31
+ if [ -n "$USER_CMD" ]; then
32
+ echo "$input" | sh -c "$USER_CMD"
33
+ exit 0
34
+ fi
35
+
36
+ MODEL=$(echo "$input" | jq -r '.model.display_name // empty')
37
+ CTX=$(echo "$input" | jq -r '.context_window.used_percentage // empty')
38
+ IN_TOK=$(echo "$input" | jq -r '.context_window.total_input_tokens // 0')
39
+ OUT_TOK=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0')
40
+ ADDED=$(echo "$input" | jq -r '.cost.total_lines_added // 0')
41
+ REMOVED=$(echo "$input" | jq -r '.cost.total_lines_removed // 0')
42
+
43
+ fmt_tokens() {
44
+ val=$1
45
+ if [ "$val" -ge 1000000 ] 2>/dev/null; then
46
+ printf "%.1fM" "$(echo "$val / 1000000" | bc -l)"
47
+ elif [ "$val" -ge 1000 ] 2>/dev/null; then
48
+ printf "%.0fk" "$(echo "$val / 1000" | bc -l)"
49
+ else
50
+ echo "$val"
51
+ fi
52
+ }
53
+
54
+ TOKENS="$(fmt_tokens $((IN_TOK + OUT_TOK)))"
55
+ CTX_FMT=""
56
+ [ -n "$CTX" ] && CTX_FMT=" \xb7 ctx $(printf '%.0f' "$CTX")%"
57
+
58
+ echo "\${MODEL}\${CTX_FMT} \xb7 \${TOKENS} \xb7 +\${ADDED} -\${REMOVED}"
59
+ `;e.s(["RATE_LIMITS_FILE",0,s,"STATUSLINE_SCRIPT_CONTENT",0,o,"STATUSLINE_SCRIPT_PATH",0,i])},561089,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),s=e.i(964759);let o=(0,e.i(25146).createLogger)("tmux"),n=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let a="string"==typeof e.body?.tabId?e.body.tabId:void 0;if(!a)return t.status(400).json({error:"tabId required"});try{let e=await (0,s.getStatusManager)().recoverUnknownIfPending(a);return t.status(200).json(e)}catch(e){return o.error(`recover-unknown failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"recover-unknown failed"})}};e.s(["default",0,n],353162);var l=e.i(353162),c=e.i(7031),d=e.i(181927),u=e.i(846432);let p=(0,i.hoist)(l,"default"),w=(0,i.hoist)(l,"config"),f=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/tmux/recover-unknown",pathname:"/api/tmux/recover-unknown",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function y(e,a,r){r.requestMeta&&(0,u.setRequestMeta)(e,r.requestMeta),f.isDev&&(0,u.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/tmux/recover-unknown";i=i.replace(/\/index$/,"")||"/";let s=await f.prepare(e,a,{srcPage:i});if(!s){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:o,params:n,prerenderManifest:l,routerServerContext:p}=s;try{let t,r=e.method||"GET",s=(0,c.getTracer)(),u=s.getActiveScopeSpan(),w=!!(null==p?void 0:p.isWrappedByNextServer),y=f.instrumentationOnRequestError.bind(f),h=async c=>f.render(e,a,{query:{...o,...n},params:n,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:f.isDev,page:"/api/tmux/recover-unknown",internalRevalidate:null==p?void 0:p.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=e.get("next.route");if(o){let e=`${r} ${o}`;c.setAttributes({"next.route":o,"http.route":o,"next.span_name":e}),c.updateName(e),t&&t!==c&&(t.setAttribute("http.route",o),t.updateName(e))}else c.updateName(`${r} ${i}`)});w&&u?await h(u):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(d.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:c.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},h),void 0,!w))}catch(e){if(f.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,w,"default",0,p,"handler",0,y],561089)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))}];
60
+
61
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0-f8oht._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[270406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,a)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},224361,(e,t,a)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,a)=>{t.exports=e.x("child_process",()=>require("child_process"))},25146,e=>{"use strict";var t=e.i(130146),a=e.i(814747),r=e.i(446786);let i=a.default.join(r.default.homedir(),".purplemux","logs"),n=process.env.LOG_LEVEL||"info",s=(e=>{if(!e)return{};let t={};for(let a of e.split(",")){let[e,r]=a.split("=").map(e=>e.trim());e&&r&&(t[e]=r)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[n,...Object.values(s)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:a.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=s[e]??n,t}])},44014,e=>{"use strict";let t,a;var r=e.i(666680);e.s(["nanoid",0,function(e=21){var i;i=e|=0,!t||t.length<i?(t=Buffer.allocUnsafe(128*i),r.webcrypto.getRandomValues(t),a=0):a+i>t.length&&(r.webcrypto.getRandomValues(t),a=0),a+=i;let n="";for(let r=a-e;r<a;r++)n+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[r]];return n}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),a=e.i(924868),r=e.i(224361),i=e.i(814747),n=e.i(44014),s=e.i(25146);process.platform;let l="linux"===process.platform;e.s(["isLinux",0,l],544538);let o=(0,s.createLogger)("terminal"),u=(0,r.promisify)(t.execFile),c="purple",p=i.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",c,"ls","-F","#{session_name}"],{timeout:5e3});return e.trim().split("\n").map(e=>e.trim()).filter(e=>e.startsWith("pt-"))}catch{return[]}},f=async(e,t,a,r)=>{let i=process.env.SHELL||"/bin/zsh";await u("tmux",["-u","-L",c,"-f",p,"new-session","-d","-s",e,"-x",String(t),"-y",String(a)],{timeout:5e3,env:{...m(),SHELL:i,TERM:"xterm-256color",COLORTERM:"truecolor"},cwd:r||process.env.HOME||"/"}),await _(),o.debug(`tmux session created: ${e} (cols: ${t}, rows: ${a})`)},y=e=>new Promise(t=>setTimeout(t,e)),w=async e=>{if(!await g(e))return;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",c,"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",c,"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",c,"has-session","-t",e],{timeout:5e3}),!0}catch{return!1}},x=async()=>{},v=async()=>{await x();let e=await h();e.length>0&&e.forEach(e=>{o.debug(`existing tmux session found: ${e}`)})},S=async e=>{try{let{stdout:t}=await u("tmux",["-L",c,"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",c,"display-message","-p","-t",e,"#{pane_pid}"],{timeout:5e3}),a=parseInt(t.trim(),10);return Number.isNaN(a)?null:a}catch{return null}},_=async()=>{try{await u("tmux",["-L",c,"source-file",p],{timeout:5e3})}catch{}},P=async e=>{try{let{stdout:t}=await u("tmux",["-L",c,"list-panes","-t",e,"-F","#{pane_current_command}"],{timeout:5e3});return t.trim()||null}catch{return null}},E=async()=>{try{let{stdout:e}=await u("tmux",["-L",c,"list-panes","-a","-F","#{session_name} #{pane_current_command} #{pane_current_path} #{pane_pid} #{window_activity}"],{timeout:5e3}),t=new Map;for(let a of e.trim().split("\n")){if(!a)continue;let[e,r,i,n,s]=a.split(" ");if(e&&r){let a=parseInt(n,10),l=parseInt(s,10);t.set(e,{command:r,path:i||"",pid:Number.isNaN(a)?0:a,windowActivity:Number.isNaN(l)?0:l})}}return t}catch{return new Map}},b=new Set(["bash","zsh","fish","sh","dash"]),R=async e=>{try{let{stdout:t}=await u("tmux",["-L",c,"display-message","-p","-t",e,"#{pane_title}"],{timeout:5e3});return t.trim()||null}catch{return null}},I=async e=>{await u("tmux",["-L",c,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},T=async(e,t)=>{await I(e),await u("tmux",["-L",c,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},$=async(e,t)=>{await I(e),await u("tmux",["-L",c,"send-keys","-t",e,t],{timeout:5e3})},A=async(e,t)=>{await I(e),await u("tmux",["-L",c,"send-keys","-t",e,"-l",`\x1b[200~${t}\x1b[201~`],{timeout:5e3}),await u("tmux",["-L",c,"send-keys","-t",e,"Enter"],{timeout:5e3}),await new Promise(e=>setTimeout(e,600)),await u("tmux",["-L",c,"send-keys","-t",e,"Enter"],{timeout:5e3})},N=async e=>{try{let{stdout:t}=await u("tmux",["-L",c,"display-message","-p","-t",e,"#{pane_current_path} #{pane_current_command} #{pane_pid} #{pane_width} #{pane_height} #{session_created}"],{timeout:5e3}),[a,r,i,n,s,l]=t.trim().split(" ");return{cwd:a||null,command:r||null,pid:i&&parseInt(i,10)||null,width:n&&parseInt(n,10)||null,height:s&&parseInt(s,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},k=new Set(["node","python","python3","ruby","perl","deno","bun"]),M=async()=>{try{await u("tmux",["-L",c,"kill-server"],{timeout:5e3}),o.debug("tmux server killed")}catch{}},C=async e=>{try{let{stdout:t}=await u("tmux",["-L",c,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},q=async(e,t)=>{try{let{stdout:a}=await u("tmux",["-L",c,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return a}catch{return null}},j=async e=>{if(l){let t=[];return await Promise.all(e.map(async e=>{try{for(let r of(await a.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(r,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await u("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},H=async e=>{let t=[],a=[e];for(;a.length>0;){let e=await j(a);if(0===e.length)break;t.push(...e),a=e}return t},O=async e=>{try{let t=new Set(e),{stdout:a}=await u("ss",["-tlnp"],{timeout:5e3}),r=new Set;for(let e of a.split("\n")){let a=e.match(/pid=(\d+)/g);if(!a||!a.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let i=e.match(/:(\d+)\s/);i&&r.add(parseInt(i[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},D=async e=>{let t=await H(e);if(0===t.length)return[];if(l)return O(t);try{let{stdout:e}=await u("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),a=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&a.add(parseInt(e[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},U=async e=>{let t=await L(e);if(!t)return null;try{let{stdout:e}=await u("pgrep",["-n","-P",String(t)],{timeout:5e3}),a=e.trim();if(!a)return null;let{stdout:r}=await u("ps",["-o","args=","-p",a],{timeout:5e3}),n=r.trim();if(!n)return null;let s=n.split(/\s+/);if(0===s.length)return n;if(s[0]=i.default.basename(s[0]),k.has(s[0])&&s.length>1){let e=i.default.basename(s[1]).replace(/\.(c|m)?js$/,"");s.splice(0,2,e)}return s.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,b,"applyConfig",0,_,"capturePaneContent",0,C,"capturePaneContentWithHistory",0,q,"createSession",0,f,"defaultSessionName",0,()=>`pt-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}-${(0,n.nanoid)(6)}`,"exitCopyMode",0,I,"getAllPanesInfo",0,E,"getLastCommand",0,U,"getListeningPorts",0,D,"getPaneCurrentCommand",0,P,"getPaneDetailInfo",0,N,"getPaneTitle",0,R,"getSessionCwd",0,S,"getSessionPanePid",0,L,"hasSession",0,g,"killServer",0,M,"killSession",0,w,"listSessions",0,h,"sanitizedEnv",0,m,"scanSessions",0,v,"sendBracketedPaste",0,A,"sendKeys",0,T,"sendRawKeys",0,$,"workspaceSessionName",0,(e,t,a)=>`pt-${e}-${t}-${a}`],459015)},713915,e=>{"use strict";var t=e.i(233405),a=e.i(924868),r=e.i(446786),i=e.i(814747),n=e.i(224361),s=e.i(459015);let l=(0,n.promisify)(t.execFile),o=null,u=null,c=async()=>{let e=r.default.userInfo().shell||process.env.SHELL||"/bin/bash";try{let{stdout:t}=await l(e,["-ilc",'echo -n "$PATH"'],{timeout:5e3,env:{...(0,s.sanitizedEnv)(),SHELL:e,DISABLE_AUTO_UPDATE:"true",ZSH_TMUX_AUTOSTARTED:"true",TERM:"xterm-256color",COLORTERM:"truecolor"}});return t.toString().trim()}catch{return process.env.PATH||""}},p=async()=>o||(u||(u=c().then(e=>(o=e,u=null,e))),u),d=async(e,t,a)=>{try{let r=await p(),{stdout:i}=await l(e,t,{timeout:5e3,env:{...process.env,PATH:r}});return{installed:!0,version:a(i)}}catch{return{installed:!1,version:null}}},m=e=>e.trim().match(/(\d+\.\d+[\d.]*)/)?.[1]??null,h=[i.default.join(r.default.homedir(),".local","bin")],f=async()=>{for(let e of h)try{return await (0,a.access)(i.default.join(e,"claude")),e}catch{}return null},y=e=>e.installed&&null!==e.version&&parseFloat(e.version)>=2.9,w=async()=>{o=await c();let[e,t,n]=await Promise.all([d("tmux",["-V"],m),d("git",["--version"],m),d("claude",["--version"],m)]),s=(y(e)&&t.installed&&n.installed,n.installed?null:await f()),l=!1;if(n.installed||s)try{await (0,a.access)(i.default.join(r.default.homedir(),".claude")),l=!0}catch{}return{tmux:{...e,compatible:y(e)},git:t,claude:{...n,binaryPath:s,loggedIn:l}}},g=null,x=null,v=async()=>{o=await c();let[e,t,a]=await Promise.all([d("tmux",["-V"],m),d("git",["--version"],m),d("claude",["--version"],m)]);return{tmux:{...e,compatible:y(e)},git:t,claude:a}},S=async()=>g&&Date.now()-g.checkedAt<3e4?g.result:x||(x=v().then(e=>(g={result:e,checkedAt:Date.now()},x=null,e)).catch(e=>{throw x=null,e}));e.s(["getCachedRuntimePreflight",0,S,"getPreflightStatus",0,w,"getShellPath",0,p,"invalidateRuntimeCache",0,()=>{g=null,x=null}])},193367,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),i=e.i(262950),n=e.i(713915);let s=async(e,t)=>{if("GET"===e.method){let e=await (0,n.getCachedRuntimePreflight)();return t.status(200).json(e)}if("POST"===e.method){(0,n.invalidateRuntimeCache)();let e=await (0,n.getCachedRuntimePreflight)();return t.status(200).json(e)}return t.setHeader("Allow","GET, POST"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,s],337990);var l=e.i(337990),o=e.i(7031),u=e.i(181927),c=e.i(846432);let p=(0,i.hoist)(l,"default"),d=(0,i.hoist)(l,"config"),m=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/preflight/runtime",pathname:"/api/preflight/runtime",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function h(e,a,r){r.requestMeta&&(0,c.setRequestMeta)(e,r.requestMeta),m.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/preflight/runtime";i=i.replace(/\/index$/,"")||"/";let n=await m.prepare(e,a,{srcPage:i});if(!n){a.statusCode=400,a.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve());return}let{query:s,params:l,prerenderManifest:p,routerServerContext:d}=n;try{let t,r=e.method||"GET",n=(0,o.getTracer)(),c=n.getActiveScopeSpan(),h=!!(null==d?void 0:d.isWrappedByNextServer),f=m.instrumentationOnRequestError.bind(m),y=async o=>m.render(e,a,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:p.preview,propagateError:!1,dev:m.isDev,page:"/api/preflight/runtime",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!o)return;o.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=n.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${r} ${s}`;o.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),o.updateName(e),t&&t!==o&&(t.setAttribute("http.route",s),t.updateName(e))}else o.updateName(`${r} ${i}`)});h&&c?await y(c):(t=n.getActiveScopeSpan(),await n.withPropagatedContext(e.headers,()=>n.trace(u.BaseServerSpan.handleRequest,{spanName:`${r} ${i}`,kind:o.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},y),void 0,!h))}catch(e){if(m.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,d,"default",0,p,"handler",0,h],193367)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0.5.jh3._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},406461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},524836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},921517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},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),s=e.i(446786);let n=r.default.join(s.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",a=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,s]=r.split("=").map(e=>e.trim());e&&s&&(t[e]=s)}return t})(process.env.LOG_LEVELS),o=["trace","debug","info","warn","error","fatal"],l=globalThis;if(!l.__ptRootLogger){let e=[i,...Object.values(a)].reduce((e,t)=>o.indexOf(t)<o.indexOf(e)?t:e,"fatal");l.__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=l.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=a[e]??i,t}])},44014,e=>{"use strict";let t,r;var s=e.i(666680);e.s(["nanoid",0,function(e=21){var n;n=e|=0,!t||t.length<n?(t=Buffer.allocUnsafe(128*n),s.webcrypto.getRandomValues(t),r=0):r+n>t.length&&(s.webcrypto.getRandomValues(t),r=0),r+=n;let i="";for(let s=r-e;s<r;s++)i+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[s]];return i}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),r=e.i(924868),s=e.i(224361),n=e.i(814747),i=e.i(44014),a=e.i(25146);process.platform;let o="linux"===process.platform;e.s(["isLinux",0,o],544538);let l=(0,a.createLogger)("terminal"),u=(0,s.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"),m=new Set(["AUTH_PASSWORD","NEXTAUTH_SECRET"]),d=()=>Object.fromEntries(Object.entries(process.env).filter(([e])=>!e.startsWith("npm_")&&!e.startsWith("NODE_")&&!m.has(e))),f=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[]}},h=async(e,t,r,s)=>{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:{...d(),SHELL:n,TERM:"xterm-256color",COLORTERM:"truecolor"},cwd:s||process.env.HOME||"/"}),await L(),l.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;l.debug(`killSession start: ${e}`);let t=await _(e);if(t)try{l.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 l.debug(`killSession done (SIGTERM): ${e}`);await y(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 u("tmux",["-L",p,"kill-session","-t",e],{timeout:5e3})}catch{}for(let t=0;t<3;t++){if(!await g(e))return void l.debug(`killSession done (SIGKILL): ${e}`);await y(200)}l.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 f();e.length>0&&e.forEach(e=>{l.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}},_=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}},L=async()=>{try{await u("tmux",["-L",p,"source-file",c],{timeout:5e3})}catch{}},P=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,s,n,i,a]=r.split(" ");if(e&&s){let r=parseInt(i,10),o=parseInt(a,10);t.set(e,{command:s,path:n||"",pid:Number.isNaN(r)?0:r,windowActivity:Number.isNaN(o)?0:o})}}return t}catch{return new Map}},$=new Set(["bash","zsh","fish","sh","dash"]),E=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}},I=async e=>{await u("tmux",["-L",p,"copy-mode","-q","-t",e],{timeout:5e3}).catch(()=>{})},R=async(e,t)=>{await I(e),await u("tmux",["-L",p,"send-keys","-t",e,t,"Enter"],{timeout:5e3})},N=async(e,t)=>{await I(e),await u("tmux",["-L",p,"send-keys","-t",e,t],{timeout:5e3})},q=async(e,t)=>{await I(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})},T=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,s,n,i,a,o]=t.trim().split(" ");return{cwd:r||null,command:s||null,pid:n&&parseInt(n,10)||null,width:i&&parseInt(i,10)||null,height:a&&parseInt(a,10)||null,sessionCreated:o&&parseInt(o,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},k=new Set(["node","python","python3","ruby","perl","deno","bun"]),C=async()=>{try{await u("tmux",["-L",p,"kill-server"],{timeout:5e3}),l.debug("tmux server killed")}catch{}},M=async e=>{try{let{stdout:t}=await u("tmux",["-L",p,"capture-pane","-p","-t",e],{timeout:5e3});return t}catch{return null}},A=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}},j=async e=>{if(o){let t=[];return await Promise.all(e.map(async e=>{try{for(let s of(await r.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(s,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[]}},O=async e=>{let t=[],r=[e];for(;r.length>0;){let e=await j(r);if(0===e.length)break;t.push(...e),r=e}return t},D=async e=>{try{let t=new Set(e),{stdout:r}=await u("ss",["-tlnp"],{timeout:5e3}),s=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&&s.add(parseInt(n[1],10))}return[...s].sort((e,t)=>e-t)}catch{return[]}},G=async e=>{let t=await O(e);if(0===t.length)return[];if(o)return D(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[]}},H=async e=>{let t=await _(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:s}=await u("ps",["-o","args=","-p",r],{timeout:5e3}),i=s.trim();if(!i)return null;let a=i.split(/\s+/);if(0===a.length)return i;if(a[0]=n.default.basename(a[0]),k.has(a[0])&&a.length>1){let e=n.default.basename(a[1]).replace(/\.(c|m)?js$/,"");a.splice(0,2,e)}return a.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,$,"applyConfig",0,L,"capturePaneContent",0,M,"capturePaneContentWithHistory",0,A,"createSession",0,h,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,I,"getAllPanesInfo",0,b,"getLastCommand",0,H,"getListeningPorts",0,G,"getPaneCurrentCommand",0,P,"getPaneDetailInfo",0,T,"getPaneTitle",0,E,"getSessionCwd",0,v,"getSessionPanePid",0,_,"hasSession",0,g,"killServer",0,C,"killSession",0,w,"listSessions",0,f,"sanitizedEnv",0,d,"scanSessions",0,S,"sendBracketedPaste",0,q,"sendKeys",0,R,"sendRawKeys",0,N,"workspaceSessionName",0,(e,t,r)=>`pt-${e}-${t}-${r}`],459015)},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),new TextEncoder,new TextDecoder,(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 n=(e,t,r)=>{for(let n of s.values())if(n.sessionName===e&&!n.cleaned)return void n.pty.resize(t,r)},i=e=>new Promise(t=>setTimeout(t,e)),a=async(e,r,a)=>{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{n(e,r,a),await i(300);let s=await (0,t.capturePaneContent)(e);return n(e,l.cols,l.rows),await i(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,a],971780)},443571,e=>{"use strict";let t=["Yes","Yes,","No","Accept","Decline","Open System Settings","Try again","Use this","Continue without","Resume from summary","Resume full session","Continue this conversation","Send message as","Don't ask me again"],r=/^\s*(?:[❯›>]\s+)?(.+)$/,s=/^\s*[❯›>]\s+/,n=/^\d+\.\s+/,i=/^\s*([❯›>])?\s*(\d+)\.?\s*(\S.*)$/,a=e=>e.replace(n,""),o=(e,t)=>e.some(e=>a(e).startsWith(t)),l=e=>e.match(/^\s*/)?.[0].length??0,u=/^(Yes,\s*and\s+don[\u2019']?t\s+ask)\s*:\s*(.+)$/,p=e=>!(e.length<2)&&(o(e,"Yes")&&o(e,"No")||o(e,"Accept")&&o(e,"Decline")||o(e,"Open System Settings")||o(e,"Use this")&&o(e,"Continue without")||o(e,"Resume from summary")&&o(e,"Resume full session")||o(e,"Continue this conversation")&&o(e,"Send message as"));e.s(["parsePermissionOptions",0,e=>{let n=e.split("\n"),o=(e=>{let t=[],r=[],s=0,n=1,a=0,o=()=>{r.length>=2&&t.push({rawOptions:r.slice(),focusedIndex:s}),r=[],s=0,n=1,a=0};for(let t of e){if(!t.trim())continue;let e=t.match(i);if(e){let i=e[1],u=Number(e[2]),p=e[3].trim();if(p.length>0){if(1===u){o(),r.push(p),i&&(s=0),a=l(t),n=2;continue}if(u===n){i&&(s=r.length),r.push(p),a=l(t),n+=1;continue}}}if(r.length>0){if(l(t)>a){r[r.length-1]+=t.trimStart();continue}if(/^\s+\S/.test(t))continue;o()}}o();let p=t[t.length-1];return p?{options:p.rawOptions.map((e,t)=>{let r;return`${t+1}. ${(r=e.match(u))?`${r[1]} again for: ${r[2].trim()}`:/^Yes(?![,\s]|$)/.test(e)?"Yes":/^No(?![,\s]|$)/.test(e)?"No":e}`}),focusedIndex:p.focusedIndex}:{options:[],focusedIndex:0}})(n);if(o.options.length>=2&&p(o.options))return o;let c=(e=>{let n=[],i=0,o=!1;for(let l of e){if(!l.trim()){if(o)break;continue}let e=s.test(l),u=/^\s+\S/.test(l);if(!e&&!u){if(o)break;continue}let p=l.match(r);if(!p)continue;let c=p[1].trim(),m=a(c);t.some(e=>m.startsWith(e))&&(e&&(i=n.length),n.push(c),o=!0)}return{options:n,focusedIndex:i}})(n);return p(c.options)?c:{options:[],focusedIndex:0}}])},454549,e=>{"use strict";var t=e.i(926747),r=e.i(190406),s=e.i(244898),n=e.i(262950),i=e.i(459015),a=e.i(971780),o=e.i(25146),l=e.i(443571);let u=(0,o.createLogger)("tmux"),p=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,a.capturePaneAtWidth)(r,120,50);if(!e)return t.status(200).json({options:[]});let{options:s}=(0,l.parsePermissionOptions)(e),n=e.includes("Bypass Permissions");return t.status(200).json({options:s,...n&&{isBypassPrompt:!0}})}catch(e){return u.error(`permission-options query failed: ${e instanceof Error?e.message:e}`),t.status(500).json({error:"Terminal capture failed"})}};e.s(["default",0,p],96110);var c=e.i(96110),m=e.i(7031),d=e.i(181927),f=e.i(846432);let h=(0,n.hoist)(c,"default"),y=(0,n.hoist)(c,"config"),w=new s.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/tmux/permission-options",pathname:"/api/tmux/permission-options",bundlePath:"",filename:""},userland:c,distDir:".next",relativeProjectDir:""});async function g(e,r,s){s.requestMeta&&(0,f.setRequestMeta)(e,s.requestMeta),w.isDev&&(0,f.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/tmux/permission-options";n=n.replace(/\/index$/,"")||"/";let i=await w.prepare(e,r,{srcPage:n});if(!i){r.statusCode=400,r.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve());return}let{query:a,params:o,prerenderManifest:l,routerServerContext:u}=i;try{let t,s=e.method||"GET",i=(0,m.getTracer)(),p=i.getActiveScopeSpan(),c=!!(null==u?void 0:u.isWrappedByNextServer),f=w.instrumentationOnRequestError.bind(w),h=async p=>w.render(e,r,{query:{...a,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:w.isDev,page:"/api/tmux/permission-options",internalRevalidate:null==u?void 0:u.revalidate,onError:(...t)=>f(e,...t)}).finally(()=>{if(!p)return;p.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 a=e.get("next.route");if(a){let e=`${s} ${a}`;p.setAttributes({"next.route":a,"http.route":a,"next.span_name":e}),p.updateName(e),t&&t!==p&&(t.setAttribute("http.route",a),t.updateName(e))}else p.updateName(`${s} ${n}`)});c&&p?await h(p):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(d.BaseServerSpan.handleRequest,{spanName:`${s} ${n}`,kind:m.SpanKind.SERVER,attributes:{"http.method":s,"http.target":e.url}},h),void 0,!c))}catch(e){if(w.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==s.waitUntil||s.waitUntil.call(s,Promise.resolve())}}e.s(["config",0,y,"default",0,h,"handler",0,g],454549)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0.xjg-~._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},406461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},524836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},921517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},270406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},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"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),s=process.env.LOG_LEVEL||"info",n=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),o=["trace","debug","info","warn","error","fatal"],l=globalThis;if(!l.__ptRootLogger){let e=[s,...Object.values(n)].reduce((e,t)=>o.indexOf(t)<o.indexOf(e)?t:e,"fatal");l.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=l.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=n[e]??s,t}])},666126,e=>{"use strict";e.i(478319);var t=e.i(220951);(0,e.i(25146).createLogger)("sync");let r=globalThis;r.__ptSyncClients||(r.__ptSyncClients=new Set);let a=r.__ptSyncClients;e.s(["broadcastSync",0,e=>{let r=JSON.stringify(e);for(let e of a)e.readyState===t.WebSocket.OPEN&&e.bufferedAmount<1048576&&e.send(r)}])},845994,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(254799),s=e.i(666126);(0,e.i(25146).createLogger)("config");let n=r.default.join(a.default.homedir(),".purplemux"),o=r.default.join(n,"config.json"),l=globalThis;l.__ptConfigLock||(l.__ptConfigLock=Promise.resolve());let u=async e=>{let t,r=new Promise(e=>{t=e}),a=l.__ptConfigLock;l.__ptConfigLock=r,await a;try{return await e()}finally{t()}},p=()=>({updatedAt:new Date().toISOString()}),d=async()=>{try{let e=await t.default.readFile(o,"utf-8");return JSON.parse(e)}catch{return null}},c=async e=>{let{updatedAt:r,...a}=e,i=JSON.stringify(a);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),r=await new Promise((r,a)=>{i.default.scrypt(e,t,64,(e,t)=>{e?a(e):r(t)})});return`scrypt:${t.toString("hex")}:${r.toString("hex")}`},g=async(e,t)=>{if(!t.startsWith("scrypt:"))return!1;let[,r,a]=t.split(":"),s=Buffer.from(r,"hex"),n=Buffer.from(a,"hex"),o=await new Promise((t,r)=>{i.default.scrypt(e,s,n.length,(e,a)=>{e?r(e):t(a)})});return i.default.timingSafeEqual(o,n)},h=async()=>await d()??p(),m=async e=>u(async()=>{let t=await d()??p();Object.assign(t,e),await c(t)}),y=async()=>{let e=await d();return!e?.authPassword||!e.authPassword.startsWith("scrypt:")},x=async()=>{let e=await d();return e?.dangerouslySkipPermissions??!1};e.s(["generateSecret",0,()=>i.default.randomBytes(32).toString("hex"),"getConfig",0,h,"getDangerouslySkipPermissions",0,x,"hashPassword",0,f,"needsSetup",0,y,"updateConfig",0,m,"verifyPassword",0,g])},671207,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(845994);let n=["appTheme","terminalTheme","customCSS","dangerouslySkipPermissions","editorUrl","authPassword","agentEnabled","notificationsEnabled","locale","fontSize","systemResourcesEnabled"],o=async(e,t)=>{if("GET"===e.method){let{authPassword:e,authSecret:r,...a}=await (0,s.getConfig)();return t.status(200).json({...a,hasAuthPassword:!!e})}if("PATCH"===e.method){let r=e.body??{},a={};for(let e of n)e in r&&(a[e]=r[e]);if("string"==typeof a.authPassword&&a.authPassword){let e=await (0,s.hashPassword)(a.authPassword),t=(0,s.generateSecret)();a.authPassword=e,a.authSecret=t,await (0,s.updateConfig)(a),process.env.AUTH_PASSWORD=e,process.env.NEXTAUTH_SECRET=t}else delete a.authPassword,await (0,s.updateConfig)(a);return t.status(200).json({ok:!0})}return t.setHeader("Allow","GET, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,o],183329);var l=e.i(183329),u=e.i(7031),p=e.i(181927),d=e.i(846432);let c=(0,i.hoist)(l,"default"),f=(0,i.hoist)(l,"config"),g=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/config",pathname:"/api/config",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/config";i=i.replace(/\/index$/,"")||"/";let s=await g.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:n,params:o,prerenderManifest:l,routerServerContext:c}=s;try{let t,a=e.method||"GET",s=(0,u.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==c?void 0:c.isWrappedByNextServer),h=g.instrumentationOnRequestError.bind(g),m=async u=>g.render(e,r,{query:{...n,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:g.isDev,page:"/api/config",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let 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} ${i}`)});f&&d?await m(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},m),void 0,!f))}catch(e){if(g.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,f,"default",0,c,"handler",0,h],671207)}];
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"))},25146,e=>{"use strict";var t=e.i(130146),r=e.i(814747),a=e.i(446786);let i=r.default.join(a.default.homedir(),".purplemux","logs"),s=process.env.LOG_LEVEL||"info",n=(e=>{if(!e)return{};let t={};for(let r of e.split(",")){let[e,a]=r.split("=").map(e=>e.trim());e&&a&&(t[e]=a)}return t})(process.env.LOG_LEVELS),o=["trace","debug","info","warn","error","fatal"],l=globalThis;if(!l.__ptRootLogger){let e=[s,...Object.values(n)].reduce((e,t)=>o.indexOf(t)<o.indexOf(e)?t:e,"fatal");l.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:r.default.join(i,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=l.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=n[e]??s,t}])},688947,(e,t,r)=>{t.exports=e.x("stream",()=>require("stream"))},406461,(e,t,r)=>{t.exports=e.x("zlib",()=>require("zlib"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},524836,(e,t,r)=>{t.exports=e.x("https",()=>require("https"))},921517,(e,t,r)=>{t.exports=e.x("http",()=>require("http"))},504446,(e,t,r)=>{t.exports=e.x("net",()=>require("net"))},755004,(e,t,r)=>{t.exports=e.x("tls",()=>require("tls"))},792509,(e,t,r)=>{t.exports=e.x("url",()=>require("url"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},427699,(e,t,r)=>{t.exports=e.x("events",()=>require("events"))},666126,e=>{"use strict";e.i(478319);var t=e.i(220951);(0,e.i(25146).createLogger)("sync");let r=globalThis;r.__ptSyncClients||(r.__ptSyncClients=new Set);let a=r.__ptSyncClients;e.s(["broadcastSync",0,e=>{let r=JSON.stringify(e);for(let e of a)e.readyState===t.WebSocket.OPEN&&e.bufferedAmount<1048576&&e.send(r)}])},845994,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),i=e.i(254799),s=e.i(666126);(0,e.i(25146).createLogger)("config");let n=r.default.join(a.default.homedir(),".purplemux"),o=r.default.join(n,"config.json"),l=globalThis;l.__ptConfigLock||(l.__ptConfigLock=Promise.resolve());let u=async e=>{let t,r=new Promise(e=>{t=e}),a=l.__ptConfigLock;l.__ptConfigLock=r,await a;try{return await e()}finally{t()}},p=()=>({updatedAt:new Date().toISOString()}),d=async()=>{try{let e=await t.default.readFile(o,"utf-8");return JSON.parse(e)}catch{return null}},c=async e=>{let{updatedAt:r,...a}=e,i=JSON.stringify(a);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),r=await new Promise((r,a)=>{i.default.scrypt(e,t,64,(e,t)=>{e?a(e):r(t)})});return`scrypt:${t.toString("hex")}:${r.toString("hex")}`},g=async(e,t)=>{if(!t.startsWith("scrypt:"))return!1;let[,r,a]=t.split(":"),s=Buffer.from(r,"hex"),n=Buffer.from(a,"hex"),o=await new Promise((t,r)=>{i.default.scrypt(e,s,n.length,(e,a)=>{e?r(e):t(a)})});return i.default.timingSafeEqual(o,n)},h=async()=>await d()??p(),m=async e=>u(async()=>{let t=await d()??p();Object.assign(t,e),await c(t)}),y=async()=>{let e=await d();return!e?.authPassword||!e.authPassword.startsWith("scrypt:")},x=async()=>{let e=await d();return e?.dangerouslySkipPermissions??!1};e.s(["generateSecret",0,()=>i.default.randomBytes(32).toString("hex"),"getConfig",0,h,"getDangerouslySkipPermissions",0,x,"hashPassword",0,f,"needsSetup",0,y,"updateConfig",0,m,"verifyPassword",0,g])},671207,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),i=e.i(262950),s=e.i(845994);let n=["appTheme","terminalTheme","customCSS","dangerouslySkipPermissions","editorUrl","authPassword","agentEnabled","notificationsEnabled","locale","fontSize","systemResourcesEnabled"],o=async(e,t)=>{if("GET"===e.method){let{authPassword:e,authSecret:r,...a}=await (0,s.getConfig)();return t.status(200).json({...a,hasAuthPassword:!!e})}if("PATCH"===e.method){let r=e.body??{},a={};for(let e of n)e in r&&(a[e]=r[e]);if("string"==typeof a.authPassword&&a.authPassword){let e=await (0,s.hashPassword)(a.authPassword),t=(0,s.generateSecret)();a.authPassword=e,a.authSecret=t,await (0,s.updateConfig)(a),process.env.AUTH_PASSWORD=e,process.env.NEXTAUTH_SECRET=t}else delete a.authPassword,await (0,s.updateConfig)(a);return t.status(200).json({ok:!0})}return t.setHeader("Allow","GET, PATCH"),t.status(405).json({error:"Method not allowed"})};e.s(["default",0,o],183329);var l=e.i(183329),u=e.i(7031),p=e.i(181927),d=e.i(846432);let c=(0,i.hoist)(l,"default"),f=(0,i.hoist)(l,"config"),g=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/config",pathname:"/api/config",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function h(e,r,a){a.requestMeta&&(0,d.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,d.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let i="/api/config";i=i.replace(/\/index$/,"")||"/";let s=await g.prepare(e,r,{srcPage:i});if(!s){r.statusCode=400,r.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve());return}let{query:n,params:o,prerenderManifest:l,routerServerContext:c}=s;try{let t,a=e.method||"GET",s=(0,u.getTracer)(),d=s.getActiveScopeSpan(),f=!!(null==c?void 0:c.isWrappedByNextServer),h=g.instrumentationOnRequestError.bind(g),m=async u=>g.render(e,r,{query:{...n,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:g.isDev,page:"/api/config",internalRevalidate:null==c?void 0:c.revalidate,onError:(...t)=>h(e,...t)}).finally(()=>{if(!u)return;u.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=s.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let 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} ${i}`)});f&&d?await m(d):(t=s.getActiveScopeSpan(),await s.withPropagatedContext(e.headers,()=>s.trace(p.BaseServerSpan.handleRequest,{spanName:`${a} ${i}`,kind:u.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},m),void 0,!f))}catch(e){if(g.isDev)throw e;(0,t.sendError)(r,500,"Internal Server Error")}finally{null==a.waitUntil||a.waitUntil.call(a,Promise.resolve())}}e.s(["config",0,f,"default",0,c,"handler",0,h],671207)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0-jdef0._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__00_j5wq._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[669957,e=>{"use strict";var t=e.i(254799);let r=globalThis,a=()=>(r.__ptAgentToken||(r.__ptAgentToken=(0,t.randomBytes)(32).toString("hex")),r.__ptAgentToken);e.s(["getAgentToken",0,a,"verifyAgentToken",0,e=>{let r=e.headers["x-agent-token"];var n="string"==typeof r?r:void 0;if(!n)return!1;let i=a();return n.length===i.length&&(0,t.timingSafeEqual)(Buffer.from(n),Buffer.from(i))}])},386083,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),n=e.i(44014);let i=(0,e.i(25146).createLogger)("agent-chat"),s=r.default.join(a.default.homedir(),".purplemux","agents"),o=e=>r.default.join(s,e),l=e=>r.default.join(s,e,"chat"),d=e=>r.default.join(l(e),"index.json"),u=(e,t)=>r.default.join(l(e),`${t}.jsonl`),c=async e=>{await t.default.mkdir(l(e),{recursive:!0})},f=async e=>{try{let r=await t.default.readFile(d(e),"utf-8");return JSON.parse(r)}catch{return{sessions:[]}}},g=async(e,r)=>{await t.default.writeFile(d(e),JSON.stringify(r,null,2),"utf-8")},p=async e=>{let r=(0,n.nanoid)(12),a=new Date().toISOString(),i=await f(e);return i.sessions.push({id:r,agentId:e,createdAt:a,lastMessageAt:a}),await g(e,i),await t.default.writeFile(u(e,r),"","utf-8"),r},m=async e=>{let t=await f(e);return 0===t.sessions.length?null:t.sessions[t.sessions.length-1].id},h=async(e,r,a)=>{let n=JSON.stringify(a)+"\n";await t.default.appendFile(u(e,r),n,"utf-8");let i=await f(e),s=i.sessions.find(e=>e.id===r);s&&(s.lastMessageAt=a.timestamp,await g(e,i))},w=async(e,r,a)=>{let n,s=a?.limit??50,o=a?.before;try{n=await t.default.readFile(u(e,r),"utf-8")}catch{return{messages:[],hasMore:!1}}let l=n.trim().split("\n").filter(Boolean),d=[];for(let t of l)try{d.push(JSON.parse(t))}catch{i.warn(`invalid jsonl line in ${e}/${r}`)}let c=d;if(o){let e=c.findIndex(e=>e.id===o);e>0&&(c=c.slice(0,e))}let f=c.length>s;return{messages:c.slice(-s),hasMore:f}},y=async e=>{try{await t.default.rm(o(e),{recursive:!0,force:!0})}catch(t){i.error(`failed to remove agent dir ${e}: ${t instanceof Error?t.message:t}`)}},v=e=>r.default.join(s,e,"memory"),A=async e=>{await t.default.mkdir(v(e),{recursive:!0})},S=async(e,a,i)=>{await A(e);let s=(0,n.nanoid)(12),o={id:s,content:a,tags:i,createdAt:new Date().toISOString()},l=["---",`id: ${o.id}`,`tags: ${o.tags.join(", ")}`,`createdAt: ${o.createdAt}`,"---\n",o.content,""].join("\n");return await t.default.writeFile(r.default.join(v(e),`${s}.md`),l,"utf-8"),o},j=(e,t)=>{let r=e.match(/^---\n([\s\S]*?)\n---\n\n?([\s\S]*)$/);if(!r)return null;let a=r[1],n=r[2].trimEnd(),i=t.replace(/\.md$/,""),s=[],o="";for(let e of a.split("\n"))e.startsWith("id: ")?i=e.slice(4).trim():e.startsWith("tags: ")?s=e.slice(6).split(",").map(e=>e.trim()).filter(Boolean):e.startsWith("createdAt: ")&&(o=e.slice(11).trim());return{id:i,content:n,tags:s,createdAt:o}},$=async(e,a,n)=>{let i,s=v(e);try{i=await t.default.readdir(s)}catch{return[]}let o=[],l=a?.toLowerCase();for(let e of i)if(e.endsWith(".md"))try{let a=await t.default.readFile(r.default.join(s,e),"utf-8"),i=j(a,e);if(!i||n&&!i.tags.includes(n)||l&&!i.content.toLowerCase().includes(l))continue;o.push(i)}catch{}return o.sort((e,t)=>t.createdAt.localeCompare(e.createdAt)),o},k=async(e,a)=>{let n=r.default.join(v(e),`${a}.md`);try{let e=await t.default.readFile(n,"utf-8");return j(e,`${a}.md`)}catch{return null}},x=async(e,a)=>{let n=r.default.join(v(e),`${a}.md`);try{return await t.default.rm(n),!0}catch{return!1}};e.s(["appendMessage",0,h,"createChatSession",0,p,"createMessage",0,(e,t,r,a)=>({id:(0,n.nanoid)(16),timestamp:new Date().toISOString(),role:e,type:t,content:r,metadata:a}),"deleteMemoryEntry",0,x,"ensureAgentDir",0,c,"getAgentDir",0,o,"getLatestSessionId",0,m,"getMemoryEntry",0,k,"listMemoryEntries",0,$,"readMessages",0,w,"removeAgentDir",0,y,"saveMemoryEntry",0,S,"writeChatIndex",0,g])},76384,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),n=e.i(262950),i=e.i(457508);let s=(0,e.i(25146).createLogger)("api:agent-workspace"),o=async(e,t)=>{if("GET"!==e.method)return t.setHeader("Allow","GET"),t.status(405).json({error:"Method not allowed"});let{agentId:r}=e.query,a=(0,i.getAgentManager)();if(!a.getAgent(r))return t.status(404).json({error:"Agent not found"});try{let e=await a.getWorkspace(r);if(!e)return t.status(404).json({error:"Workspace not found"});return t.status(200).json(e)}catch(r){let e=r instanceof Error?r.message:"unknown error";return s.error(`fetch workspace failed: ${e}`),t.status(500).json({error:"Failed to fetch workspace"})}};e.s(["default",0,o],384960);var l=e.i(384960),d=e.i(7031),u=e.i(181927),c=e.i(846432);let f=(0,n.hoist)(l,"default"),g=(0,n.hoist)(l,"config"),p=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/agent/[agentId]/workspace",pathname:"/api/agent/[agentId]/workspace",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function m(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),p.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/agent/[agentId]/workspace";n=n.replace(/\/index$/,"")||"/";let i=await p.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:o,prerenderManifest:l,routerServerContext:f}=i;try{let t,a=e.method||"GET",i=(0,d.getTracer)(),c=i.getActiveScopeSpan(),g=!!(null==f?void 0:f.isWrappedByNextServer),m=p.instrumentationOnRequestError.bind(p),h=async d=>p.render(e,r,{query:{...s,...o},params:o,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:l.preview,propagateError:!1,dev:p.isDev,page:"/api/agent/[agentId]/workspace",internalRevalidate:null==f?void 0:f.revalidate,onError:(...t)=>m(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${a} ${s}`;d.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",s),t.updateName(e))}else d.updateName(`${a} ${n}`)});g&&c?await h(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${n}`,kind:d.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},h),void 0,!g))}catch(e){if(p.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,g,"default",0,f,"handler",0,m],76384)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},144264,e=>{e.v(e=>Promise.resolve().then(()=>e(233405)))},534777,e=>{e.v(e=>Promise.resolve().then(()=>e(224361)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__046f4pf._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[669957,e=>{"use strict";var t=e.i(254799);let r=globalThis,a=()=>(r.__ptAgentToken||(r.__ptAgentToken=(0,t.randomBytes)(32).toString("hex")),r.__ptAgentToken);e.s(["getAgentToken",0,a,"verifyAgentToken",0,e=>{let r=e.headers["x-agent-token"];var n="string"==typeof r?r:void 0;if(!n)return!1;let i=a();return n.length===i.length&&(0,t.timingSafeEqual)(Buffer.from(n),Buffer.from(i))}])},386083,e=>{"use strict";var t=e.i(924868),r=e.i(814747),a=e.i(446786),n=e.i(44014);let i=(0,e.i(25146).createLogger)("agent-chat"),s=r.default.join(a.default.homedir(),".purplemux","agents"),l=e=>r.default.join(s,e),o=e=>r.default.join(s,e,"chat"),d=e=>r.default.join(o(e),"index.json"),u=(e,t)=>r.default.join(o(e),`${t}.jsonl`),c=async e=>{await t.default.mkdir(o(e),{recursive:!0})},f=async e=>{try{let r=await t.default.readFile(d(e),"utf-8");return JSON.parse(r)}catch{return{sessions:[]}}},g=async(e,r)=>{await t.default.writeFile(d(e),JSON.stringify(r,null,2),"utf-8")},p=async e=>{let r=(0,n.nanoid)(12),a=new Date().toISOString(),i=await f(e);return i.sessions.push({id:r,agentId:e,createdAt:a,lastMessageAt:a}),await g(e,i),await t.default.writeFile(u(e,r),"","utf-8"),r},m=async e=>{let t=await f(e);return 0===t.sessions.length?null:t.sessions[t.sessions.length-1].id},h=async(e,r,a)=>{let n=JSON.stringify(a)+"\n";await t.default.appendFile(u(e,r),n,"utf-8");let i=await f(e),s=i.sessions.find(e=>e.id===r);s&&(s.lastMessageAt=a.timestamp,await g(e,i))},y=async(e,r,a)=>{let n,s=a?.limit??50,l=a?.before;try{n=await t.default.readFile(u(e,r),"utf-8")}catch{return{messages:[],hasMore:!1}}let o=n.trim().split("\n").filter(Boolean),d=[];for(let t of o)try{d.push(JSON.parse(t))}catch{i.warn(`invalid jsonl line in ${e}/${r}`)}let c=d;if(l){let e=c.findIndex(e=>e.id===l);e>0&&(c=c.slice(0,e))}let f=c.length>s;return{messages:c.slice(-s),hasMore:f}},w=async e=>{try{await t.default.rm(l(e),{recursive:!0,force:!0})}catch(t){i.error(`failed to remove agent dir ${e}: ${t instanceof Error?t.message:t}`)}},v=e=>r.default.join(s,e,"memory"),S=async e=>{await t.default.mkdir(v(e),{recursive:!0})},A=async(e,a,i)=>{await S(e);let s=(0,n.nanoid)(12),l={id:s,content:a,tags:i,createdAt:new Date().toISOString()},o=["---",`id: ${l.id}`,`tags: ${l.tags.join(", ")}`,`createdAt: ${l.createdAt}`,"---\n",l.content,""].join("\n");return await t.default.writeFile(r.default.join(v(e),`${s}.md`),o,"utf-8"),l},j=(e,t)=>{let r=e.match(/^---\n([\s\S]*?)\n---\n\n?([\s\S]*)$/);if(!r)return null;let a=r[1],n=r[2].trimEnd(),i=t.replace(/\.md$/,""),s=[],l="";for(let e of a.split("\n"))e.startsWith("id: ")?i=e.slice(4).trim():e.startsWith("tags: ")?s=e.slice(6).split(",").map(e=>e.trim()).filter(Boolean):e.startsWith("createdAt: ")&&(l=e.slice(11).trim());return{id:i,content:n,tags:s,createdAt:l}},$=async(e,a,n)=>{let i,s=v(e);try{i=await t.default.readdir(s)}catch{return[]}let l=[],o=a?.toLowerCase();for(let e of i)if(e.endsWith(".md"))try{let a=await t.default.readFile(r.default.join(s,e),"utf-8"),i=j(a,e);if(!i||n&&!i.tags.includes(n)||o&&!i.content.toLowerCase().includes(o))continue;l.push(i)}catch{}return l.sort((e,t)=>t.createdAt.localeCompare(e.createdAt)),l},x=async(e,a)=>{let n=r.default.join(v(e),`${a}.md`);try{let e=await t.default.readFile(n,"utf-8");return j(e,`${a}.md`)}catch{return null}},M=async(e,a)=>{let n=r.default.join(v(e),`${a}.md`);try{return await t.default.rm(n),!0}catch{return!1}};e.s(["appendMessage",0,h,"createChatSession",0,p,"createMessage",0,(e,t,r,a)=>({id:(0,n.nanoid)(16),timestamp:new Date().toISOString(),role:e,type:t,content:r,metadata:a}),"deleteMemoryEntry",0,M,"ensureAgentDir",0,c,"getAgentDir",0,l,"getLatestSessionId",0,m,"getMemoryEntry",0,x,"listMemoryEntries",0,$,"readMessages",0,y,"removeAgentDir",0,w,"saveMemoryEntry",0,A,"writeChatIndex",0,g])},903977,e=>{"use strict";var t=e.i(926747),r=e.i(190406),a=e.i(244898),n=e.i(262950),i=e.i(457508);let s=(0,e.i(25146).createLogger)("api:agent-send"),l=async(e,t)=>{if("POST"!==e.method)return t.setHeader("Allow","POST"),t.status(405).json({error:"Method not allowed"});let{agentId:r}=e.query,{content:a}=e.body;if(!a)return t.status(400).json({error:"content is required"});try{let e=await (0,i.getAgentManager)().sendMessage(r,a);return t.status(200).json(e)}catch(r){let e=r instanceof Error?r.message:"unknown error";if("Agent not found"===e)return t.status(404).json({error:e});if("Message queue full"===e)return t.status(429).json({error:e});return s.error(`send message failed: ${e}`),t.status(500).json({error:"Failed to send message"})}};e.s(["default",0,l],677278);var o=e.i(677278),d=e.i(7031),u=e.i(181927),c=e.i(846432);let f=(0,n.hoist)(o,"default"),g=(0,n.hoist)(o,"config"),p=new a.PagesAPIRouteModule({definition:{kind:r.RouteKind.PAGES_API,page:"/api/agent/[agentId]/send",pathname:"/api/agent/[agentId]/send",bundlePath:"",filename:""},userland:o,distDir:".next",relativeProjectDir:""});async function m(e,r,a){a.requestMeta&&(0,c.setRequestMeta)(e,a.requestMeta),p.isDev&&(0,c.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/agent/[agentId]/send";n=n.replace(/\/index$/,"")||"/";let i=await p.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:f}=i;try{let t,a=e.method||"GET",i=(0,d.getTracer)(),c=i.getActiveScopeSpan(),g=!!(null==f?void 0:f.isWrappedByNextServer),m=p.instrumentationOnRequestError.bind(p),h=async d=>p.render(e,r,{query:{...s,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:o.preview,propagateError:!1,dev:p.isDev,page:"/api/agent/[agentId]/send",internalRevalidate:null==f?void 0:f.revalidate,onError:(...t)=>m(e,...t)}).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":r.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=e.get("next.route");if(s){let e=`${a} ${s}`;d.setAttributes({"next.route":s,"http.route":s,"next.span_name":e}),d.updateName(e),t&&t!==d&&(t.setAttribute("http.route",s),t.updateName(e))}else d.updateName(`${a} ${n}`)});g&&c?await h(c):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(u.BaseServerSpan.handleRequest,{spanName:`${a} ${n}`,kind:d.SpanKind.SERVER,attributes:{"http.method":a,"http.target":e.url}},h),void 0,!g))}catch(e){if(p.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,g,"default",0,f,"handler",0,m],903977)},981532,e=>{e.v(e=>Promise.resolve().then(()=>e(322429)))},144264,e=>{e.v(e=>Promise.resolve().then(()=>e(233405)))},534777,e=>{e.v(e=>Promise.resolve().then(()=>e(224361)))},322522,e=>{e.v(e=>Promise.resolve().then(()=>e(459015)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__05d6rxt._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[270406,(e,t,a)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},814747,(e,t,a)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,a)=>{t.exports=e.x("os",()=>require("os"))},924868,(e,t,a)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},130146,(e,t,a)=>{t.exports=e.x("pino-28069d5257187539",()=>require("pino-28069d5257187539"))},666680,(e,t,a)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},224361,(e,t,a)=>{t.exports=e.x("util",()=>require("util"))},233405,(e,t,a)=>{t.exports=e.x("child_process",()=>require("child_process"))},25146,e=>{"use strict";var t=e.i(130146),a=e.i(814747),r=e.i(446786);let s=a.default.join(r.default.homedir(),".purplemux","logs"),i=process.env.LOG_LEVEL||"info",n=(e=>{if(!e)return{};let t={};for(let a of e.split(",")){let[e,r]=a.split("=").map(e=>e.trim());e&&r&&(t[e]=r)}return t})(process.env.LOG_LEVELS),l=["trace","debug","info","warn","error","fatal"],o=globalThis;if(!o.__ptRootLogger){let e=[i,...Object.values(n)].reduce((e,t)=>l.indexOf(t)<l.indexOf(e)?t:e,"fatal");o.__ptRootLogger=(0,t.default)({level:e,transport:{targets:[{target:"pino-roll",level:e,options:{file:a.default.join(s,"purplemux"),frequency:"daily",dateFormat:"yyyy-MM-dd",limit:{count:7},mkdir:!0}},{target:"pino-pretty",level:e,options:{colorize:!0,ignore:"pid,hostname,module",translateTime:"HH:MM:ss",messageFormat:"[{module}] {msg}"}}]}})}let u=o.__ptRootLogger;e.s(["createLogger",0,e=>{let t=u.child({module:e});return t.level=n[e]??i,t}])},44014,e=>{"use strict";let t,a;var r=e.i(666680);e.s(["nanoid",0,function(e=21){var s;s=e|=0,!t||t.length<s?(t=Buffer.allocUnsafe(128*s),r.webcrypto.getRandomValues(t),a=0):a+s>t.length&&(r.webcrypto.getRandomValues(t),a=0),a+=s;let i="";for(let r=a-e;r<a;r++)i+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&t[r]];return i}],44014)},459015,544538,e=>{"use strict";var t=e.i(233405),a=e.i(924868),r=e.i(224361),s=e.i(814747),i=e.i(44014),n=e.i(25146);process.platform;let l="linux"===process.platform;e.s(["isLinux",0,l],544538);let o=(0,n.createLogger)("terminal"),u=(0,r.promisify)(t.execFile),p="purple",c=s.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[]}},y=async(e,t,a,r)=>{let s=process.env.SHELL||"/bin/zsh";await u("tmux",["-u","-L",p,"-f",c,"new-session","-d","-s",e,"-x",String(t),"-y",String(a)],{timeout:5e3,env:{...m(),SHELL:s,TERM:"xterm-256color",COLORTERM:"truecolor"},cwd:r||process.env.HOME||"/"}),await _(),o.debug(`tmux session created: ${e} (cols: ${t}, rows: ${a})`)},f=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 f(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 f(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}),a=parseInt(t.trim(),10);return Number.isNaN(a)?null:a}catch{return null}},_=async()=>{try{await u("tmux",["-L",p,"source-file",c],{timeout:5e3})}catch{}},b=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}},E=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 a of e.trim().split("\n")){if(!a)continue;let[e,r,s,i,n]=a.split(" ");if(e&&r){let a=parseInt(i,10),l=parseInt(n,10);t.set(e,{command:r,path:s||"",pid:Number.isNaN(a)?0:a,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}),[a,r,s,i,n,l]=t.trim().split(" ");return{cwd:a||null,command:r||null,pid:s&&parseInt(s,10)||null,width:i&&parseInt(i,10)||null,height:n&&parseInt(n,10)||null,sessionCreated:l&&parseInt(l,10)||null}}catch{return{cwd:null,command:null,pid:null,width:null,height:null,sessionCreated:null}}},q=new Set(["node","python","python3","ruby","perl","deno","bun"]),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}},C=async(e,t)=>{try{let{stdout:a}=await u("tmux",["-L",p,"capture-pane","-p","-S",`-${t}`,"-t",e],{timeout:5e3});return a}catch{return null}},j=async e=>{if(l){let t=[];return await Promise.all(e.map(async e=>{try{for(let r of(await a.default.readFile(`/proc/${e}/task/${e}/children`,"utf-8")).trim().split(/\s+/)){let e=parseInt(r,10);Number.isNaN(e)||t.push(e)}}catch{}})),t}try{let{stdout:t}=await u("pgrep",["-P",e.join(",")],{timeout:5e3});return t.trim().split("\n").map(e=>parseInt(e,10)).filter(e=>!Number.isNaN(e))}catch{return[]}},O=async e=>{let t=[],a=[e];for(;a.length>0;){let e=await j(a);if(0===e.length)break;t.push(...e),a=e}return t},D=async e=>{try{let t=new Set(e),{stdout:a}=await u("ss",["-tlnp"],{timeout:5e3}),r=new Set;for(let e of a.split("\n")){let a=e.match(/pid=(\d+)/g);if(!a||!a.some(e=>t.has(parseInt(e.replace("pid=",""),10))))continue;let s=e.match(/:(\d+)\s/);s&&r.add(parseInt(s[1],10))}return[...r].sort((e,t)=>e-t)}catch{return[]}},G=async e=>{let t=await O(e);if(0===t.length)return[];if(l)return D(t);try{let{stdout:e}=await u("lsof",["-a","-p",t.join(","),"-i","-sTCP:LISTEN","-P","-Fn"],{timeout:5e3}),a=new Set;for(let t of e.split("\n"))if(t.startsWith("n")){let e=t.match(/:(\d+)$/);e&&a.add(parseInt(e[1],10))}return[...a].sort((e,t)=>e-t)}catch{return[]}},H=async e=>{let t=await L(e);if(!t)return null;try{let{stdout:e}=await u("pgrep",["-n","-P",String(t)],{timeout:5e3}),a=e.trim();if(!a)return null;let{stdout:r}=await u("ps",["-o","args=","-p",a],{timeout:5e3}),i=r.trim();if(!i)return null;let n=i.split(/\s+/);if(0===n.length)return i;if(n[0]=s.default.basename(n[0]),q.has(n[0])&&n.length>1){let e=s.default.basename(n[1]).replace(/\.(c|m)?js$/,"");n.splice(0,2,e)}return n.join(" ")}catch{return null}};e.s(["SAFE_SHELLS",0,P,"applyConfig",0,_,"capturePaneContent",0,A,"capturePaneContentWithHistory",0,C,"createSession",0,y,"defaultSessionName",0,()=>`pt-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}-${(0,i.nanoid)(6)}`,"exitCopyMode",0,$,"getAllPanesInfo",0,E,"getLastCommand",0,H,"getListeningPorts",0,G,"getPaneCurrentCommand",0,b,"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,a)=>`pt-${e}-${t}-${a}`],459015)},668144,e=>{"use strict";var t=e.i(926747),a=e.i(190406),r=e.i(244898),s=e.i(262950),i=e.i(459015);let n=async(e,t)=>{let a=await (0,i.listSessions)();t.status(200).json({count:a.length})};e.s(["default",0,n],877394);var l=e.i(877394),o=e.i(7031),u=e.i(181927),p=e.i(846432);let c=(0,s.hoist)(l,"default"),d=(0,s.hoist)(l,"config"),m=new r.PagesAPIRouteModule({definition:{kind:a.RouteKind.PAGES_API,page:"/api/system/tmux-sessions",pathname:"/api/system/tmux-sessions",bundlePath:"",filename:""},userland:l,distDir:".next",relativeProjectDir:""});async function h(e,a,r){r.requestMeta&&(0,p.setRequestMeta)(e,r.requestMeta),m.isDev&&(0,p.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let s="/api/system/tmux-sessions";s=s.replace(/\/index$/,"")||"/";let i=await m.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:l,prerenderManifest:c,routerServerContext:d}=i;try{let t,r=e.method||"GET",i=(0,o.getTracer)(),p=i.getActiveScopeSpan(),h=!!(null==d?void 0:d.isWrappedByNextServer),y=m.instrumentationOnRequestError.bind(m),f=async o=>m.render(e,a,{query:{...n,...l},params:l,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:c.preview,propagateError:!1,dev:m.isDev,page:"/api/system/tmux-sessions",internalRevalidate:null==d?void 0:d.revalidate,onError:(...t)=>y(e,...t)}).finally(()=>{if(!o)return;o.setAttributes({"http.status_code":a.statusCode,"next.rsc":!1});let e=i.getRootSpanAttributes();if(!e)return;if(e.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${e.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=e.get("next.route");if(n){let e=`${r} ${n}`;o.setAttributes({"next.route":n,"http.route":n,"next.span_name":e}),o.updateName(e),t&&t!==o&&(t.setAttribute("http.route",n),t.updateName(e))}else o.updateName(`${r} ${s}`)});h&&p?await f(p):(t=i.getActiveScopeSpan(),await i.withPropagatedContext(e.headers,()=>i.trace(u.BaseServerSpan.handleRequest,{spanName:`${r} ${s}`,kind:o.SpanKind.SERVER,attributes:{"http.method":r,"http.target":e.url}},f),void 0,!h))}catch(e){if(m.isDev)throw e;(0,t.sendError)(a,500,"Internal Server Error")}finally{null==r.waitUntil||r.waitUntil.call(r,Promise.resolve())}}e.s(["config",0,d,"default",0,c,"handler",0,h],668144)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__08tzm8d._.js.map