purplemux 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +49 -49
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/routes-manifest.json +7 -7
  6. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06an6au._.js +1 -1
  7. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__02f5zis._.js → [root-of-the-server]__08dxtof._.js} +1 -1
  8. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08z3drz._.js +1 -1
  9. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__11uqzxt._.js → [root-of-the-server]__0kumyrr._.js} +2 -2
  10. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s7k1je._.js +3 -0
  11. package/.next/standalone/.next/server/chunks/ssr/{_13qovxu._.js → _0.stp0n._.js} +2 -2
  12. package/.next/standalone/.next/server/chunks/ssr/{_11h746h._.js → _00cx0p2._.js} +2 -2
  13. package/.next/standalone/.next/server/chunks/ssr/_02rms4q._.js +1 -1
  14. package/.next/standalone/.next/server/chunks/ssr/_06_8vkn._.js +2 -2
  15. package/.next/standalone/.next/server/chunks/ssr/{_0uwytsj._.js → _078y4dk._.js} +2 -2
  16. package/.next/standalone/.next/server/chunks/ssr/{_0uph6rf._.js → _0kzht5v._.js} +2 -2
  17. package/.next/standalone/.next/server/chunks/ssr/_0m6flec._.js +1 -1
  18. package/.next/standalone/.next/server/chunks/ssr/_0pg-q18._.js +1 -1
  19. package/.next/standalone/.next/server/chunks/ssr/_0r90z3l._.js +8 -0
  20. package/.next/standalone/.next/server/chunks/ssr/_0w.1ts8._.js +1 -1
  21. package/.next/standalone/.next/server/chunks/ssr/_0w6jc9p._.js +1 -1
  22. package/.next/standalone/.next/server/chunks/ssr/{_0z6yp7a._.js → _0y_feze._.js} +1 -1
  23. package/.next/standalone/.next/server/chunks/ssr/{_0v2czf2._.js → _10dec5o._.js} +1 -1
  24. package/.next/standalone/.next/server/chunks/ssr/{messages_01~7za1._.js → messages_0f3u1ly._.js} +1 -1
  25. package/.next/standalone/.next/server/chunks/ssr/{messages_10_yt3k._.js → messages_0k204ao._.js} +1 -1
  26. package/.next/standalone/.next/server/chunks/ssr/messages_de_terminal_json_[json]_cjs_05jirtw._.js +1 -1
  27. package/.next/standalone/.next/server/chunks/ssr/messages_en_terminal_json_[json]_cjs_0~ls3g-._.js +1 -1
  28. package/.next/standalone/.next/server/chunks/ssr/messages_es_terminal_json_[json]_cjs_04g2b1_._.js +1 -1
  29. package/.next/standalone/.next/server/chunks/ssr/messages_fr_terminal_json_[json]_cjs_0uhakya._.js +1 -1
  30. package/.next/standalone/.next/server/chunks/ssr/messages_ja_terminal_json_[json]_cjs_0776z4f._.js +1 -1
  31. package/.next/standalone/.next/server/chunks/ssr/messages_ko_terminal_json_[json]_cjs_06611.3._.js +1 -1
  32. package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_terminal_json_[json]_cjs_034yyg9._.js +1 -1
  33. package/.next/standalone/.next/server/chunks/ssr/messages_ru_terminal_json_[json]_cjs_0emk8~n._.js +1 -1
  34. package/.next/standalone/.next/server/chunks/ssr/messages_tr_terminal_json_[json]_cjs_0xpix8g._.js +1 -1
  35. package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_terminal_json_[json]_cjs_12vwl8a._.js +1 -1
  36. package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_terminal_json_[json]_cjs_0spg5z5._.js +1 -1
  37. package/.next/standalone/.next/server/chunks/ssr/node_modules_0t5csgq._.js +1 -1
  38. package/.next/standalone/.next/server/chunks/ssr/node_modules_use-intl_dist_esm_production_react_0bnxcps.js +1 -1
  39. package/.next/standalone/.next/server/chunks/ssr/{src_components_00nri37._.js → src_components_05-kki3._.js} +1 -1
  40. package/.next/standalone/.next/server/chunks/ssr/{src_components_0jrgsp7._.js → src_components_0fb83uz._.js} +1 -1
  41. package/.next/standalone/.next/server/chunks/ssr/{src_components_0mhu5-5._.js → src_components_0gkfyrc._.js} +1 -1
  42. package/.next/standalone/.next/server/chunks/ssr/{src_components_0~e6p9k._.js → src_components_0n3s0.7._.js} +1 -1
  43. package/.next/standalone/.next/server/chunks/ssr/src_components_features_mobile_mobile-terminal-page_tsx_02chzch._.js +1 -1
  44. package/.next/standalone/.next/server/chunks/ssr/src_components_features_workspace_terminal-page_tsx_0wuq-jl._.js +1 -1
  45. package/.next/standalone/.next/server/functions-config-manifest.json +1 -1
  46. package/.next/standalone/.next/server/middleware-build-manifest.js +49 -49
  47. package/.next/standalone/.next/server/pages/_app/build-manifest.json +6 -6
  48. package/.next/standalone/.next/server/pages/_app/client-build-manifest.json +1 -1
  49. package/.next/standalone/.next/server/pages/_app.js +2 -2
  50. package/.next/standalone/.next/server/pages/_app.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/pages/_document.js +3 -3
  52. package/.next/standalone/.next/server/pages/_document.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/pages/_error/build-manifest.json +3 -3
  54. package/.next/standalone/.next/server/pages/_error/client-build-manifest.json +1 -1
  55. package/.next/standalone/.next/server/pages/_error.js +4 -4
  56. package/.next/standalone/.next/server/pages/_error.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/pages/de/404.html +1 -1
  58. package/.next/standalone/.next/server/pages/de/500.html +1 -1
  59. package/.next/standalone/.next/server/pages/en/404.html +1 -1
  60. package/.next/standalone/.next/server/pages/en/500.html +1 -1
  61. package/.next/standalone/.next/server/pages/es/404.html +1 -1
  62. package/.next/standalone/.next/server/pages/es/500.html +1 -1
  63. package/.next/standalone/.next/server/pages/fr/404.html +1 -1
  64. package/.next/standalone/.next/server/pages/fr/500.html +1 -1
  65. package/.next/standalone/.next/server/pages/index/build-manifest.json +7 -7
  66. package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
  67. package/.next/standalone/.next/server/pages/index/react-loadable-manifest.json +4 -4
  68. package/.next/standalone/.next/server/pages/index.js +5 -5
  69. package/.next/standalone/.next/server/pages/index.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/pages/ja/404.html +1 -1
  71. package/.next/standalone/.next/server/pages/ja/500.html +1 -1
  72. package/.next/standalone/.next/server/pages/ko/404.html +1 -1
  73. package/.next/standalone/.next/server/pages/ko/500.html +1 -1
  74. package/.next/standalone/.next/server/pages/login/build-manifest.json +4 -4
  75. package/.next/standalone/.next/server/pages/login/client-build-manifest.json +1 -1
  76. package/.next/standalone/.next/server/pages/login.js +4 -4
  77. package/.next/standalone/.next/server/pages/login.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/pages/pt-BR/404.html +1 -1
  79. package/.next/standalone/.next/server/pages/pt-BR/500.html +1 -1
  80. package/.next/standalone/.next/server/pages/reports/build-manifest.json +6 -6
  81. package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
  82. package/.next/standalone/.next/server/pages/reports.js +5 -5
  83. package/.next/standalone/.next/server/pages/reports.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/pages/reset/build-manifest.json +4 -4
  85. package/.next/standalone/.next/server/pages/reset/client-build-manifest.json +1 -1
  86. package/.next/standalone/.next/server/pages/reset.js +5 -5
  87. package/.next/standalone/.next/server/pages/reset.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/pages/ru/404.html +1 -1
  89. package/.next/standalone/.next/server/pages/ru/500.html +1 -1
  90. package/.next/standalone/.next/server/pages/stats/build-manifest.json +6 -6
  91. package/.next/standalone/.next/server/pages/stats/client-build-manifest.json +1 -1
  92. package/.next/standalone/.next/server/pages/stats.js +5 -5
  93. package/.next/standalone/.next/server/pages/stats.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/pages/tools-required/build-manifest.json +4 -4
  95. package/.next/standalone/.next/server/pages/tools-required/client-build-manifest.json +1 -1
  96. package/.next/standalone/.next/server/pages/tools-required.js +5 -5
  97. package/.next/standalone/.next/server/pages/tools-required.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/pages/tr/404.html +1 -1
  99. package/.next/standalone/.next/server/pages/tr/500.html +1 -1
  100. package/.next/standalone/.next/server/pages/webview/build-manifest.json +6 -6
  101. package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
  102. package/.next/standalone/.next/server/pages/webview.js +5 -5
  103. package/.next/standalone/.next/server/pages/webview.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/pages/zh-CN/404.html +1 -1
  105. package/.next/standalone/.next/server/pages/zh-CN/500.html +1 -1
  106. package/.next/standalone/.next/server/pages/zh-TW/404.html +1 -1
  107. package/.next/standalone/.next/server/pages/zh-TW/500.html +1 -1
  108. package/.next/standalone/.next/static/chunks/01.oujz.z9cq..js +1 -0
  109. package/.next/standalone/.next/static/chunks/{0~23in~aqup16.js → 0176ysv-agwwx.js} +1 -1
  110. package/.next/standalone/.next/static/chunks/{0icark0o3b_6j.js → 03s5e91.zrsi_.js} +4 -4
  111. package/.next/standalone/.next/static/chunks/{0h57gqab.hlp8.js → 05zk.ks4roh-4.js} +6 -6
  112. package/.next/standalone/.next/static/chunks/05~6_0_288m3t.js +1 -0
  113. package/.next/standalone/.next/static/chunks/06uy95ammv.ud.js +1 -0
  114. package/.next/standalone/.next/static/chunks/08-el~h0ax929.js +1 -0
  115. package/.next/standalone/.next/static/chunks/{14_wa..vd6~2y.js → 0984g4~der6-4.js} +2 -2
  116. package/.next/standalone/.next/static/chunks/{016ho28abx9rt.js → 0_psc1~qmka.m.js} +4 -4
  117. package/.next/standalone/.next/static/chunks/{00s6ekn81~vi-.js → 0ap~c~__qw2_0.js} +6 -6
  118. package/.next/standalone/.next/static/chunks/0cir.n19rqu--.js +8 -0
  119. package/.next/standalone/.next/static/chunks/0dpud6_2~.2iv.js +1 -0
  120. package/.next/standalone/.next/static/chunks/0euxle0n3zjm3.js +1 -0
  121. package/.next/standalone/.next/static/chunks/0fax5v7rwhm7g.js +6 -0
  122. package/.next/standalone/.next/static/chunks/{0wf0tx~eo05t~.js → 0gfoib7v3q4k_.js} +1 -1
  123. package/.next/standalone/.next/static/chunks/{0538dx15fw8_n.js → 0kep81gqgj5f5.js} +7 -7
  124. package/.next/standalone/.next/static/chunks/0kriln8d9.mdo.js +1 -0
  125. package/.next/standalone/.next/static/chunks/{0eia27slkj8a0.js → 0l.88yoxq6tq8.js} +6 -6
  126. package/.next/standalone/.next/static/chunks/{0ea-k_kbq5gi1.js → 0n7jmg60eqx1a.js} +1 -1
  127. package/.next/standalone/.next/static/chunks/0nm1wy7i1z64_.js +1 -0
  128. package/.next/standalone/.next/static/chunks/0o1e0e_okaxww.js +1 -0
  129. package/.next/standalone/.next/static/chunks/{0l80eb3i.wx6k.js → 0p2m6i37_wprv.js} +1 -1
  130. package/.next/standalone/.next/static/chunks/0qz-agdkp9v1q.js +16 -0
  131. package/.next/standalone/.next/static/chunks/0w1v1a5wi.byq.js +1 -0
  132. package/.next/standalone/.next/static/chunks/0wha_~zny181w.js +1 -0
  133. package/.next/standalone/.next/static/chunks/0wu-q.gmu-64d.js +5 -0
  134. package/.next/standalone/.next/static/chunks/{00l132mp04ubq.js → 0xfp8sfehtui9.js} +1 -1
  135. package/.next/standalone/.next/static/chunks/0yzd69blq638o.js +1 -0
  136. package/.next/standalone/.next/static/chunks/{0erebazb6ppou.js → 12f3vk2rnkb8u.js} +6 -6
  137. package/.next/standalone/.next/static/chunks/135cvydv7redz.js +1 -0
  138. package/.next/standalone/.next/static/chunks/14rrqgjvv0_69.js +1 -0
  139. package/.next/standalone/.next/static/chunks/14vposxx99rq4.js +1 -0
  140. package/.next/standalone/.next/static/chunks/{09mlfwheuib_9.js → 168.xhj-0lt8a.js} +1 -1
  141. package/.next/standalone/.next/static/chunks/1792_-2m366un.js +1 -0
  142. package/.next/standalone/.next/static/chunks/{0nr5ul7mf1bo7.js → 179vwj~zm1gya.js} +1 -1
  143. package/.next/standalone/.next/static/chunks/{turbopack-10c4z.4l4dxnu.js → turbopack-0.6hkxuraykc4.js} +1 -1
  144. package/.next/standalone/.next/static/chunks/{turbopack-05.ehb143ourd.js → turbopack-0g2bivvnd2gyd.js} +1 -1
  145. package/.next/standalone/.next/static/chunks/{turbopack-0ji23rzquaykn.js → turbopack-0heaqdupr4xj6.js} +1 -1
  146. package/.next/standalone/.next/static/chunks/{turbopack-02wj1-z8.1081.js → turbopack-0jcfxeuy1ge85.js} +1 -1
  147. package/.next/standalone/.next/static/chunks/{turbopack-07.z46yb_52p5.js → turbopack-0rntg0~hh7h.0.js} +1 -1
  148. package/.next/standalone/.next/static/chunks/{turbopack-05j~l.6~_nm9l.js → turbopack-0sk1uk-fkcqdx.js} +1 -1
  149. package/.next/standalone/.next/static/chunks/{turbopack-11utvoktq4lmr.js → turbopack-0w89gj59tho~b.js} +1 -1
  150. package/.next/standalone/.next/static/chunks/{turbopack-04t3309-jsj3y.js → turbopack-0~gn911-6yqk2.js} +1 -1
  151. package/.next/standalone/.next/static/chunks/{turbopack-0-rpf9ad3km~v.js → turbopack-14fnzd5yh28gy.js} +1 -1
  152. package/.next/standalone/.next/static/{bybcCRIlOhSPtqdnJUPM- → pZhcwQ83aP87HDTIzzyJ6}/_buildManifest.js +8 -8
  153. package/.next/standalone/.next/static/{bybcCRIlOhSPtqdnJUPM- → pZhcwQ83aP87HDTIzzyJ6}/_clientMiddlewareManifest.js +1 -1
  154. package/.next/standalone/messages/de/terminal.json +1 -1
  155. package/.next/standalone/messages/en/terminal.json +1 -1
  156. package/.next/standalone/messages/es/terminal.json +1 -1
  157. package/.next/standalone/messages/fr/terminal.json +1 -1
  158. package/.next/standalone/messages/ja/terminal.json +1 -1
  159. package/.next/standalone/messages/ko/terminal.json +1 -1
  160. package/.next/standalone/messages/pt-BR/terminal.json +1 -1
  161. package/.next/standalone/messages/ru/terminal.json +1 -1
  162. package/.next/standalone/messages/tr/terminal.json +1 -1
  163. package/.next/standalone/messages/zh-CN/terminal.json +1 -1
  164. package/.next/standalone/messages/zh-TW/terminal.json +1 -1
  165. package/.next/standalone/package.json +6 -5
  166. package/.next/standalone/server.js +1 -1
  167. package/.next/standalone/src/config/tmux.conf +11 -3
  168. package/README.de.md +41 -14
  169. package/README.es.md +41 -14
  170. package/README.fr.md +41 -14
  171. package/README.ja.md +41 -14
  172. package/README.ko.md +41 -14
  173. package/README.md +41 -14
  174. package/README.pt-BR.md +41 -14
  175. package/README.ru.md +41 -14
  176. package/README.tr.md +41 -14
  177. package/README.zh-CN.md +41 -14
  178. package/README.zh-TW.md +41 -14
  179. package/dist/server.js +6 -5
  180. package/package.json +6 -5
  181. package/src/config/tmux.conf +11 -3
  182. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y7-o~r._.js +0 -3
  183. package/.next/standalone/.next/server/chunks/ssr/_08ytq3p._.js +0 -8
  184. package/.next/standalone/.next/static/chunks/00snihvygw9l4.js +0 -1
  185. package/.next/standalone/.next/static/chunks/00yfl7agnve...js +0 -5
  186. package/.next/standalone/.next/static/chunks/02ocrfbfg24nx.js +0 -1
  187. package/.next/standalone/.next/static/chunks/04rkjr-2duj5b.js +0 -1
  188. package/.next/standalone/.next/static/chunks/0c8wt2p0xhe5i.js +0 -1
  189. package/.next/standalone/.next/static/chunks/0duqg-kf_y-i3.js +0 -1
  190. package/.next/standalone/.next/static/chunks/0ep22zye8flqz.js +0 -1
  191. package/.next/standalone/.next/static/chunks/0ff6a07hvp4pu.js +0 -6
  192. package/.next/standalone/.next/static/chunks/0fg9x61ohrtv3.js +0 -1
  193. package/.next/standalone/.next/static/chunks/0fgx5m8vdxaap.js +0 -1
  194. package/.next/standalone/.next/static/chunks/0m_sn0gry7q~c.js +0 -1
  195. package/.next/standalone/.next/static/chunks/0p5c0gp6gyhh6.js +0 -1
  196. package/.next/standalone/.next/static/chunks/0qsmo2marl-6d.js +0 -16
  197. package/.next/standalone/.next/static/chunks/0ul9.j_tmw365.js +0 -1
  198. package/.next/standalone/.next/static/chunks/107yj1xx63glr.js +0 -1
  199. package/.next/standalone/.next/static/chunks/12_04jv.ecbd-.js +0 -1
  200. package/.next/standalone/.next/static/chunks/14cccdp9z2qvf.js +0 -8
  201. package/.next/standalone/.next/static/chunks/14yj.l6qq359_.js +0 -1
  202. package/.next/standalone/.next/static/chunks/1786bmcy3s8sd.js +0 -1
  203. package/.next/standalone/.next/static/chunks/17mf_h-e8sebp.js +0 -1
  204. /package/.next/standalone/.next/static/{bybcCRIlOhSPtqdnJUPM- → pZhcwQ83aP87HDTIzzyJ6}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,169690,(e,n,t)=>{n.exports={editorUrlNotSet:"Editor ist nicht konfiguriert. Bitte öffne Einstellungen > Editor.",editorRemoteNotSupported:"Remote-Verzeichnisse werden nicht unterstützt",openEditor:"Editor öffnen",splitVertical:"Vertikal teilen",splitVerticalShortcut:"Vertikal teilen ({shortcut})",splitHorizontal:"Horizontal teilen",splitHorizontalShortcut:"Horizontal teilen ({shortcut})",equalSplit:"Gleichmäßig aufteilen",creatingConversation:"Neue Sitzung wird erstellt...",resumingSession:"Sitzung wird fortgesetzt...",claudeBootMain:"Claude wird gestartet...",claudeBootResuming:"Claude wird fortgesetzt...",claudeBootAlmostReady:"Fast fertig...",claudeBootSubtitle:"Einen Moment bitte",checkTerminal:"Terminal prüfen",trustPromptTitle:"Diesem Ordner vertrauen?",trustPromptDescription:"Claude benötigt Ihre Erlaubnis, Dateien in diesem Ordner zu lesen, zu bearbeiten und auszuführen.",trustPromptYes:"Ja, ich vertraue diesem Ordner",trustPromptNo:"Nein, beenden",resumeBlocked:"Ein anderer Prozess läuft im Terminal",resumeBlockedProcess:"Aktuell laufender Prozess: {name}",resumeFailed:"Sitzung konnte nicht fortgesetzt werden",addFailed:"Hinzufügen fehlgeschlagen",removeFailed:"Entfernen fehlgeschlagen",openNewTab:"Neuen Tab öffnen",newTabTooltip:"Neuen Tab öffnen ({shortcut})",claudeNewConversation:"Claude",claudeSessionList:"Claude-Sitzungen",disconnectedSessionNotFound:"Sitzung nicht gefunden",restartWithCommand:"Mit diesem Befehl starten",or:"oder",restartNewTerminal:"Neues Terminal starten",interruptTitle:"Unterbrechen",interruptDescription:"Agent unterbrechen? Die aktuelle Aufgabe wird abgebrochen.",interruptConfirm:"Unterbrechen",connecting:"Verbindung wird hergestellt...",retryAction:"Wiederholen",cannotSwitch:"Wechsel nicht möglich",newWorkspace:"Neuer Arbeitsbereich",inputDisabledPlaceholder:"Claude Code läuft nicht",inputPlaceholder:"Nachricht eingeben...",inputAriaLabel:"Claude Code Nachrichteneingabe",codexInputAriaLabel:"Codex message input",claudeConnecting:"Claude verbindet...",interruptAriaLabel:"Aufgabe unterbrechen",sendAriaLabel:"Nachricht senden",attachAriaLabel:"Bild anhängen",attachmentLimitReached:"Maximal {max} Anhänge pro Nachricht",attachmentNotConfirmed:"Bildanhang konnte nicht bestätigt werden",attachingImages:"{count} Bild(er) werden angehängt…",closeAllTabs:"Alle Tabs schließen",retryLoad:"Wiederholen",sessions:"Sitzungen",newConversation:"Neuer Chat",bypassSendFailed:"Auswahl konnte nicht gesendet werden",bypassPermissions:"Berechtigungsprüfung umgehen",quickPrompts:"Schnellbefehle",switchToAgentMode:"In den {name}-Modus wechseln?",switchMode:"Wechseln",statusBusy:"Verarbeitung,",statusNeedsInput:"Eingabe erforderlich,",statusNeedsReview:"Überprüfung erforderlich,",sessionEnded:"Sitzung beendet.",startNewSession:"Neue Sitzung starten",rename:"Umbenennen",dragDropNotSupported:"Drag & Drop wird im Webbrowser nicht unterstützt",fullPathPlaceholder:"Vollständigen Pfad eingeben (z.B. /Users/...)",closeTabLabel:"Tab schließen",newTabLabel:"Neuer Tab",sessionList:"Sitzungsliste",tabStatus:"Tab-Status",messageHistory:"Nachrichtenverlauf",installRunning:"Wird ausgeführt...",installDone:"Fertig",fallbackLayout:"Starte mit Standard-Layout",layoutFetchError:"Layout konnte nicht geladen werden",splitFailed:"Teilen fehlgeschlagen",tabCreateFailed:"Tab konnte nicht erstellt werden",tabDeleteError:"Fehler beim Löschen des Tabs",sessionRestartFailed:"Sitzung konnte nicht neu gestartet werden",tabRenameFailed:"Tab-Umbenennung fehlgeschlagen",tabReorderFailed:"Tab-Neuanordnung fehlgeschlagen",dragCopyHint:"Halten Sie Shift gedrückt und ziehen Sie, um Text zu kopieren",copyPaneLabel:"Terminal-Ausgabe kopieren",copyPaneDrawerTitle:"Terminal-Ausgabe kopieren",copyPaneDrawerHint:"Text zum Auswählen lang drücken oder unten auf „Alles kopieren“ tippen.",copyPaneLoading:"Wird geladen...",copyPaneCaptureFailed:"Terminal-Ausgabe konnte nicht geladen werden",copyPaneCopyAll:"Alles kopieren",copyPaneSuccess:"In die Zwischenablage kopiert",copyPaneCopyFailed:"Kopieren fehlgeschlagen",codexNotInstalled:"Install Codex CLI: npm i -g @openai/codex or brew install --cask codex",codexHookInstallFailed:"Codex hook installation failed. State detection may be inaccurate.",codexConfigParseFailed:"Failed to parse ~/.codex/config.toml. Only purplemux hooks applied.",codexLaunchFailed:"Codex launch failed. Check the terminal.",codexResumeFailed:"Codex resume failed.",codexApprovalSendFailed:"Failed to send approval response. Please try again.",codexApprovalNotApplied:"Response did not reach codex. Check your keymap.",codexApprovalGranted:"Permission granted",codexApprovalDenied:"Permission denied",codexPermissionTitle:"Permission requested",codexPermissionExecMessage:"Run the following command?",codexPermissionPatchMessage:"Apply the following file changes?",codexPermissionPermissionsMessage:"The following permissions are required",codexPermissionExecBadge:"Exec",codexPermissionPatchBadge:"Apply Patch",codexPermissionPermissionsBadge:"Permission",codexPermissionShowDetails:"Show details",codexPermissionHideDetails:"Hide details",codexPermissionYes:"Yes",codexPermissionNo:"No",codexPermissionSendingResponse:"Sending response…",codexPermissionFilesMore:"and {count} more",codexPermissionPatchOpModify:"modify",codexPermissionPatchOpCreate:"create",codexPermissionPatchOpDelete:"delete",codexPermissionCwd:"Working directory",codexPermissionEnv:"Environment variables",codexPermissionNoDetails:"Permission requested — no further details",codexCopyCommand:"Copy command",codexCopyConfigPath:"Copy config.toml path",codexCopied:"Copied",codexRetry:"Retry",codexBootMain:"Starting Codex...",codexBootAlmostReady:"Almost ready...",codexBootSubtitle:"Just a moment",codexBootFailed:"Codex failed to start",codexBootFailedHint:"Check the terminal for details",codexBootRestart:"Restart",codexBootShowTerminal:"Show terminal",codexNewConversation:"Codex",codexSessionList:"Codex Sessions",codexSessionsSheetSubtitle:"Codex sessions in this workspace",codexSessionsEmpty:"No Codex sessions in this workspace yet",codexSessionsLoadFailed:"Failed to load Codex sessions",codexSessionsTokens:"tokens",codexSessionsModelLabel:"Model",codexSessionsUnknownModel:"Unknown",codexInactiveMessage:"Codex session is not running",codexStartSession:"Start Codex",codexResumeLastSession:"Resume",codexLastSessionLabel:"Last session:",codexConnecting:"Codex connecting...",codexTimelinePlaceholder:"Timeline integration coming soon",switchAgentBlocked:"{name} is running. Exit with /quit or Ctrl+D in the terminal first",codexUpdateTitle:"Update Codex?",codexUpdateVersion:"{current} -> {latest}",codexUpdateDescription:"Codex needs a quick update before starting this session.",codexUpdateNow:"Update now",codexUpdateSkip:"Skip",codexUpdateSkipVersion:"Skip this version",codexUpdateRunning:"Updating Codex...",codexUpdateRunningHint:"This can take a few seconds. Codex will restart when the update finishes.",codexUpdateSuccess:"Update finished. Restarting Codex...",codexUpdateRestarting:"Restarting Codex"}}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,432270,e=>{"use strict";var t=e.i(391398),n=e.i(191788),s=e.i(432237),a=e.i(398957),l=e.i(482192),r=e.i(972733),i=e.i(352819),o=e.i(199648),c=e.i(679935),d=e.i(939310),u=e.i(335288),f=e.i(806185),m=e.i(490034),x=e.i(453783),p=e.i(868462),g=e.i(570513),h=e.i(876208),b=e.i(721070),y=e.i(235090),w=e.i(462376),S=e.i(714233),C=e.i(413646),v=e.i(883590),j=e.i(57098),k=e.i(13628);let N=({open:e,onOpenChange:s,sessionName:a})=>{let l=(0,i.useTranslations)("terminal"),[r,o]=(0,n.useState)(""),[u,f]=(0,n.useState)(!1),[m,x]=(0,n.useState)(null),[p,g]=(0,n.useState)(null),b=e&&a?a:null;b!==p&&(g(b),o(""),x(null),f(null!==b)),(0,n.useEffect)(()=>{if(!p)return;let e=!1;return fetch(`/api/tmux/capture?session=${encodeURIComponent(p)}`).then(e=>{if(!e.ok)throw Error("capture failed");return e.json()}).then(t=>{e||(o((t.content??"").replace(/\s+$/g,"")),f(!1))}).catch(()=>{e||(x(l("copyPaneCaptureFailed")),f(!1))}),()=>{e=!0}},[p,l]);let y=(0,n.useCallback)(async()=>{r&&(await (0,k.copyToClipboard)(r)?(c.toast.success(l("copyPaneSuccess"),{duration:1500}),s(!1)):c.toast.error(l("copyPaneCopyFailed")))},[r,s,l]);return(0,t.jsx)(j.Drawer,{open:e,onOpenChange:s,children:(0,t.jsxs)(j.DrawerContent,{className:"h-[80dvh] data-[vaul-drawer-direction=bottom]:max-h-[80dvh]",children:[(0,t.jsxs)(j.DrawerHeader,{className:"pb-2",children:[(0,t.jsx)(j.DrawerTitle,{children:l("copyPaneDrawerTitle")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:l("copyPaneDrawerHint")})]}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-3 px-4 pb-4",children:[u?(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center py-8 text-sm text-muted-foreground",children:l("copyPaneLoading")}):m?(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center py-8 text-sm text-ui-red",children:m}):(0,t.jsx)("textarea",{value:r,onChange:e=>o(e.target.value),spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",className:"min-h-0 flex-1 w-full resize-none rounded border border-border bg-muted/30 p-3 font-mono text-xs text-foreground outline-none focus:ring-1 focus:ring-ring"}),(0,t.jsxs)(d.Button,{onClick:y,disabled:u||!!m||!r,className:"w-full",children:[(0,t.jsx)(h.Copy,{className:"mr-2 h-4 w-4"}),l("copyPaneCopyAll")]})]})]})})};var T=e.i(399267),I=e.i(320183),P=e.i(353533),R=e.i(237022),A=e.i(509637),L=e.i(212283);let E="relative inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",D="h-4 w-4 shrink-0",B={dirty:"text-muted-foreground/75",sync:"text-muted-foreground/75",stash:"text-muted-foreground/65"},z=e=>"claude-code"===e||"codex-cli"===e?"Chat":"Terminal",M=({tabId:e,tabName:s,sessionName:a,cwdKey:l,panelType:o,onSwitchPanelType:c,onCreateTab:d,onOpenGit:u,onClose:f})=>{let m=(0,i.useTranslations)("mobile"),x=(0,i.useTranslations)("common"),k=(0,i.useTranslations)("terminal"),[M,O]=(0,n.useState)(!1),[$,W]=(0,n.useState)(!1),F="terminal"===o&&!!a,V=(0,T.default)(t=>t.tabs[e]),H=(0,R.default)(e=>e.phase),U=(0,R.default)(e=>e.status),G=(0,R.default)(e=>e.branch),K=(0,R.default)(e=>e.resetForTarget),_=(0,R.default)(e=>e.fetchForTarget),q=(0,R.getGitStatusIndicators)(U),J=(0,R.formatGitStatusSummary)(H,G,U,"Open Git"),Q=q.length>0||"error"===H;(0,n.useEffect)(()=>{let e={cwdKey:l,tmuxSession:a};if(K(e),_(e),!l||!a)return;let t=window.setInterval(()=>{_(e)},15e3);return()=>window.clearInterval(t)},[l,_,K,a]);let X="terminal"===o||"claude-code"===o||"codex-cli"===o,Y=(0,A.getAgentPanelTypeFromProvider)(V?.agentProviderId),Z=!!Y&&(V?.agentProcess===!0||((e,t)=>{if(!t)return!1;let n=t.toLowerCase();return"claude-code"===e?"claude"===n:"codex-cli"===e&&"codex"===n})(Y,V?.currentProcess)),ee=(0,A.isAgentPanel)(o)?o:Z?Y:void 0,et=[{type:"terminal",label:"Terminal"},...ee?[{type:ee,label:z(ee)}]:[{type:"claude-code",label:"Claude",startAction:!0},{type:"codex-cli",label:"Codex",startAction:!0}]],en=V?.terminalStatus==="server"?"text-ui-green":V?.terminalStatus==="running"?"text-ui-blue":"text-muted-foreground/50";return(0,t.jsxs)("div",{className:"flex h-11 shrink-0 items-center border-b border-border/50 bg-background",children:[(0,t.jsx)("div",{className:"flex min-w-0 flex-1 items-center gap-2 px-2",children:(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2 px-1.5 py-1",children:[(0,t.jsx)(v.default,{tabId:e,panelType:o}),"claude-code"===o?(0,t.jsx)(S.default,{size:16}):"codex-cli"===o?(0,t.jsx)(C.default,{size:16,className:"shrink-0 text-foreground","aria-label":"Codex"}):"diff"===o?(0,t.jsx)(g.GitCompareArrows,{className:(0,P.cn)(D,"text-muted-foreground")}):"agent-sessions"===o?(0,t.jsx)(b.History,{className:(0,P.cn)(D,"text-muted-foreground")}):(0,t.jsx)(I.default,{process:V?.currentProcess,className:(0,P.cn)(D,en)}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-foreground",children:s}),X&&(0,t.jsx)("button",{type:"button",className:"h-7 rounded border border-border/70 bg-muted/30 px-2 text-xs text-muted-foreground",onClick:()=>W(!0),"aria-label":"Select tab mode",children:z(o)})]})}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5 pr-0.5",children:[F&&(0,t.jsx)("button",{className:E,onClick:()=>O(!0),"aria-label":k("copyPaneLabel"),title:k("copyPaneLabel"),children:(0,t.jsx)(h.Copy,{className:D})}),(0,t.jsxs)("button",{className:(0,P.cn)(E,Q&&"w-auto gap-1 px-2"),onClick:u,"aria-label":"Open Git",title:J,children:[(0,t.jsx)(g.GitCompareArrows,{className:D}),"error"===H&&(0,t.jsx)("span",{className:"text-[10px] font-semibold leading-none text-negative/70","aria-hidden":"true",children:"!"}),q.map(e=>(0,t.jsx)("span",{className:(0,P.cn)("flex h-4 min-w-0 items-center justify-center text-[10px] font-medium leading-none",B[e.tone]),"aria-hidden":"true",children:e.label},e.key))]}),(0,t.jsx)("button",{className:E,onClick:d,"aria-label":m("newTab"),title:m("newTab"),children:(0,t.jsx)(r.Plus,{className:D})}),(0,t.jsxs)(L.AlertDialog,{children:[(0,t.jsx)(L.AlertDialogTrigger,{className:(0,P.cn)(E,"hover:text-ui-red"),"aria-label":m("closeTab"),title:m("closeTab"),children:(0,t.jsx)(p.X,{className:D})}),(0,t.jsxs)(L.AlertDialogContent,{children:[(0,t.jsxs)(L.AlertDialogHeader,{children:[(0,t.jsx)(L.AlertDialogTitle,{children:m("closeTab")}),(0,t.jsx)(L.AlertDialogDescription,{children:m("closeTabConfirm",{name:s})})]}),(0,t.jsxs)(L.AlertDialogFooter,{children:[(0,t.jsx)(L.AlertDialogCancel,{children:x("cancel")}),(0,t.jsx)(L.AlertDialogAction,{className:"bg-ui-red hover:bg-ui-red/80",onClick:f,children:x("close")})]})]})]})]}),(0,t.jsx)(N,{open:M,onOpenChange:O,sessionName:a}),(0,t.jsx)(j.Drawer,{open:$,onOpenChange:W,children:(0,t.jsxs)(j.DrawerContent,{children:[(0,t.jsx)(j.DrawerHeader,{children:(0,t.jsx)(j.DrawerTitle,{children:"View as"})}),(0,t.jsx)("div",{className:"flex flex-col gap-1 px-4 pb-[calc(1rem+env(safe-area-inset-bottom))]",children:et.map(n=>(0,t.jsxs)("button",{type:"button",className:(0,P.cn)("flex min-h-11 items-center gap-3 rounded-md px-3 text-left text-sm text-foreground hover:bg-accent",o===n.type&&"bg-accent font-medium"),onClick:()=>(t=>{if(o===t.type)return void W(!1);if((0,A.tryAgentSwitch)({current:o,target:t.type,cliState:V?.cliState,agentProcess:V?.agentProcess,runningAgentPanelType:Y})){if(W(!1),t.startAction&&("claude-code"===t.type||"codex-cli"===t.type))return void window.dispatchEvent(new CustomEvent("purplemux-start-agent",{detail:{tabId:e,provider:"codex-cli"===t.type?"codex":"claude"}}));c(t.type)}})(n),children:["terminal"===n.type?(0,t.jsx)(w.TerminalSquare,{className:(0,P.cn)(D,"text-muted-foreground")}):(0,t.jsx)(y.MessageSquare,{className:(0,P.cn)(D,"text-muted-foreground")}),(0,t.jsx)("span",{children:n.startAction?`Start ${n.label}`:n.label})]},n.type))})]})})]})};var O=e.i(125687),$=e.i(40830),W=e.i(236495),F=e.i(244046),V=e.i(355327),H=e.i(756494),U=e.i(391046),G=e.i(918324),K=e.i(231382),_=e.i(377181),q=e.i(418760),J=e.i(815435),Q=e.i(967086),X=e.i(541301),Y=e.i(767708),Z=e.i(650001),ee=e.i(441693),et=e.i(17122),en=e.i(74531),es=e.i(273062),ea=e.i(165137),el=e.i(87093),er=e.i(124726),ei=e.i(148141),eo=e.i(624306),ec=e.i(706140),ed=e.i(529511);let eu=({open:e,onOpenChange:n,meta:s,toolCount:a,toolBreakdown:l,branch:r,isBranchLoading:i,sessionId:o,gitStatus:c,tmuxInfo:d})=>(0,t.jsx)(ed.Sheet,{open:e,onOpenChange:n,children:(0,t.jsxs)(ed.SheetContent,{side:"bottom",showCloseButton:!1,className:"rounded-t-xl",children:[(0,t.jsx)("div",{className:"mx-auto mt-2 h-1.5 w-12 rounded-full bg-muted-foreground/20"}),(0,t.jsx)("div",{className:"px-4 pt-4 pb-6",children:(0,t.jsx)(ec.MetaDetail,{title:s.title,sessionId:o,createdAt:s.createdAt,updatedAt:s.updatedAt,fileSize:s.fileSize,userCount:s.userCount,assistantCount:s.assistantCount,toolCount:a,toolBreakdown:l,inputTokens:s.inputTokens,cachedInputTokens:s.cachedInputTokens,outputTokens:s.outputTokens,reasoningOutputTokens:s.reasoningOutputTokens,totalCost:s.totalCost,currentContextTokens:s.currentContextTokens,contextWindowSize:s.contextWindowSize,usedPercentage:s.usedPercentage,model:s.model,branch:r,isBranchLoading:i,gitStatus:c,tmuxInfo:d})})]})});var ef=e.i(639530);let em=({tabId:e,wsId:s,sessionName:a,claudeSessionId:l,cwd:r,sendStdin:d,terminalWsConnected:u,focusTerminal:f,focusInputRef:m,setInputValueRef:x,onCliStateChange:p,onInputVisibleChange:g,onRestartSession:h,onNewSession:b,trustPrompt:y,onTrustResponse:w})=>{let S=(0,i.useTranslations)("terminal"),{prompts:C}=(0,ef.default)(),[v,j]=(0,n.useState)(null),[k,N]=(0,n.useState)(!1),I=(0,n.useRef)(void 0),P=(0,T.default)(t=>e?t.tabs[e]?.agentProcess??null:null),R=(0,T.default)(t=>!e||(t.tabs[e]?.agentInstalled??!0)),A=(0,T.default)(t=>e?t.tabs[e]?.cliState??"inactive":"inactive"),L=(0,T.default)(t=>e?t.tabs[e]?.compactingSince??null:null),E=(0,T.default)(t=>e?t.tabs[e]?.agentSummary??null:null),D=(0,T.default)(t=>e?t.tabs[e]?.lastUserMessage??null:null),B=(0,n.useCallback)(()=>{j(null)},[]),z=(0,n.useCallback)(e=>{j(null),c.toast.warning(S("resumeBlocked"),{description:e.processName?S("resumeBlockedProcess",{name:e.processName}):void 0})},[S]),M=(0,n.useCallback)(()=>{j(null),c.toast.error(S("resumeFailed"))},[S]),{entries:O,tasks:$,sessionId:W,jsonlPath:F,sessionSummary:V,initMeta:H,sessionStats:U,agentProcess:ed,wsStatus:em,isLoading:ex,error:ep,loadMore:eg,hasMore:eh,retrySession:eb,sendResume:ey,addPendingUserMessage:ew,removePendingUserMessage:eS}=(0,K.default)({sessionName:a,claudeSessionId:l,enabled:!!a,resumeCallbacks:{onResumeStarted:B,onResumeBlocked:z,onResumeError:M},onSync:e?t=>{let n=Date.now();null!==t.agentProcess&&T.default.getState().setAgentProcess(e,t.agentProcess,n),t.agentInstalled||T.default.getState().setAgentInstalled(e,!1),T.default.getState().setTimelineLoading(e,t.isLoading)}:void 0,getCliState:e?()=>T.default.getState().tabs[e]?.cliState:void 0}),eC=e?P:ed,{sessions:ev,hasMore:ej,isLoading:ek,isLoadingMore:eN,error:eT,refetch:eI,loadMore:eP}=(0,q.default)({tmuxSession:a,enabled:!!a&&!0!==eC,cwd:r}),eR=(0,n.useRef)(P);(0,n.useEffect)(()=>{let e=eR.current;eR.current=P,!0!==e&&!0===P&&!0!==ed&&eb()},[P,ed,eb]);let eA=(0,T.default)(t=>e?(0,T.selectSessionView)(t.tabs,e):"session-list"),{meta:eL}=(0,J.default)(O,V,H,U,E,D),{branch:eE,isLoading:eD}=(0,Q.default)(a),{status:eB}=(0,X.default)(a,k),ez=(0,Y.default)(a,k),eM=(0,Z.default)(F,k),eO=eM?{...eL,userCount:eM.userCount,assistantCount:eM.assistantCount}:eL,e$="timeline"===eA,eW=(0,_.default)("check"===eA,a);(0,n.useEffect)(()=>{p(A)},[A,p]),(0,n.useEffect)(()=>{g(e$)},[e$,g]);let eF=(0,n.useCallback)(()=>{"idle"===A&&I.current?.()},[A]),eV=(0,n.useCallback)(e=>{x.current?.(e),m.current?.()},[x,m]),eH=(0,n.useCallback)(e=>{v||(j(e),ey(e,a))},[v,ey,a]);return R?y&&w?(0,t.jsx)("div",{className:"animate-delayed-fade-in flex min-h-0 flex-1 flex-col items-center justify-center bg-muted px-4",children:(0,t.jsx)(ea.default,{folderPath:y.folderPath,onRespond:w})}):null===P&&"check"!==eA?(0,t.jsx)("div",{className:"animate-delayed-fade-in flex min-h-0 flex-1 flex-col items-center justify-center bg-muted",children:(0,t.jsx)(o.default,{className:"h-4 w-4 text-muted-foreground"})}):"check"===eA?eW?(0,t.jsx)("div",{className:"animate-delayed-fade-in flex min-h-0 flex-1 flex-col items-center justify-center bg-muted",children:eW.isBypassPrompt&&eW.options.length>0?(0,t.jsx)(es.default,{sessionName:a,options:eW.options,fallback:(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:S("checkTerminal")})}):(0,t.jsx)("span",{className:"mt-3 text-xs text-muted-foreground",children:S("checkTerminal")})}):(0,t.jsx)(en.default,{icon:(0,t.jsx)(er.default,{className:"h-8 w-8 text-foreground motion-safe:animate-spin motion-reduce:opacity-70 [animation-duration:1.5s]"}),main:l||W?S("claudeBootResuming"):S("claudeBootMain"),almostReady:S("claudeBootAlmostReady"),subtitle:S("claudeBootSubtitle"),className:"animate-delayed-fade-in min-h-0 flex-1 bg-muted"}):"session-list"===eA?ek&&0===ev.length?(0,t.jsx)("div",{className:"animate-delayed-fade-in flex min-h-0 flex-1 flex-col items-center justify-center bg-muted",children:(0,t.jsx)(o.default,{className:"h-4 w-4 text-muted-foreground"})}):0!==ev.length||eT?(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col bg-muted",children:(0,t.jsx)(ee.default,{sessions:ev,isLoading:ek,isLoadingMore:eN,hasMore:ej,error:eT,resumingSessionId:v,onSelectSession:eH,onRefresh:eI,onLoadMore:eP,onNewSession:b})}):(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col bg-muted",children:(0,t.jsx)(et.default,{onNewSession:b})}):(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col bg-muted",children:[(0,t.jsxs)("div",{className:"flex shrink-0 cursor-pointer items-center justify-between border-b px-4 py-1.5 hover:bg-muted/30",role:"button",tabIndex:0,onClick:()=>N(!0),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),N(!0))},children:[(0,t.jsx)(ec.MetaCompact,{title:eL.title,totalCost:eL.totalCost,branch:eE,usedPercentage:eL.usedPercentage,currentContextTokens:eL.currentContextTokens,contextWindowSize:eL.contextWindowSize}),(0,t.jsx)(G.ChevronDown,{size:14,className:"shrink-0 text-muted-foreground"})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1",children:(0,t.jsx)(el.default,{entries:O,tasks:$,sessionId:W,sessionName:a,tabId:e,initMeta:H,sessionStats:U,cliState:A,compactingSince:L,wsStatus:em,isLoading:ex,error:ep,onRetry:eb,onLoadMore:eg,hasMore:eh,scrollToBottomRef:I})}),(0,t.jsxs)("div",{className:"shrink-0 pb-3",children:[(0,t.jsx)(ei.default,{tabId:e,wsId:s,sessionName:a,agentSessionId:l,cliState:A,sendStdin:d,terminalWsConnected:u,visible:e$,focusTerminal:f,focusInputRef:m,setInputValueRef:x,maxRows:3,onRestartSession:h,onSend:eF,onOptimisticSend:ew,onAddPendingMessage:ew,onRemovePendingMessage:eS}),(0,t.jsx)(eo.default,{prompts:C,visible:e$,onSelect:eV})]}),(0,t.jsx)(eu,{open:k,onOpenChange:N,meta:eO,toolCount:eM?.toolCount??null,toolBreakdown:eM?.toolBreakdown??null,branch:eE,isBranchLoading:eD,sessionId:W,gitStatus:eB,tmuxInfo:ez})]}):(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-3 bg-muted text-muted-foreground",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:S("installClaude")}),(0,t.jsx)("span",{className:"text-xs",children:S("installClaudeHint")})]})};var ex=e.i(224050),ep=e.i(695813),eg=e.i(672432),eh=e.i(326287);let eb=({tabId:e,wsId:s,sessionName:a,cwd:l,sendStdin:u,terminalWsConnected:f,focusTerminal:m,focusInputRef:x,setInputValueRef:p,onNewSession:g,onRestart:h,updatePrompt:b,onUpdatePromptResponse:y})=>{let w=(0,i.useTranslations)("terminal"),S=(0,T.default)(t=>e?t.tabs[e]?.agentProcess??null:null),v=(0,T.default)(t=>!e||(t.tabs[e]?.agentInstalled??!0)),j=(0,T.default)(t=>e?t.tabs[e]?.cliState??"inactive":"inactive"),k=(0,T.default)(t=>e?t.tabs[e]?.compactingSince??null:null),N=(0,T.default)(t=>e?t.tabs[e]?.agentSessionId??null:null),I=(0,T.default)(t=>e?t.tabs[e]?.agentSummary??null:null),P=(0,T.default)(t=>e?t.tabs[e]?.lastUserMessage??null:null),R=(0,T.default)(t=>e?(0,T.selectSessionView)(t.tabs,e):"session-list"),[A,L]=(0,n.useState)(!1),[E,D]=(0,n.useState)(null),B=(0,n.useRef)(void 0),{prompts:z}=(0,ef.default)(),M=(0,n.useCallback)(()=>g?.(),[g]),O=(0,n.useCallback)(()=>{"idle"===j&&B.current?.()},[j]),$=(0,n.useCallback)(e=>{p.current?.(e),x.current?.()},[p,x]),W=(0,n.useCallback)(()=>{D(null)},[]),F=(0,n.useCallback)(e=>{D(null),c.toast.warning(w("resumeBlocked"),{description:e.processName?w("resumeBlockedProcess",{name:e.processName}):void 0})},[w]),V=(0,n.useCallback)(()=>{D(null),c.toast.error(w("codexResumeFailed"))},[w]),{entries:H,tasks:U,sessionId:_,jsonlPath:q,sessionSummary:ee,initMeta:et,sessionStats:en,wsStatus:es,isLoading:ea,error:er,loadMore:ed,hasMore:em,retrySession:eb,sendResume:ey,addPendingUserMessage:ew,removePendingUserMessage:eS,agentProcess:eC}=(0,K.default)({sessionName:a??"",agentSessionId:N,panelType:"codex-cli",enabled:!!a,resumeCallbacks:{onResumeStarted:W,onResumeBlocked:F,onResumeError:V},onSync:e?t=>{let n=Date.now();null!==t.agentProcess&&T.default.getState().setAgentProcess(e,t.agentProcess,n),t.agentInstalled||T.default.getState().setAgentInstalled(e,!1),T.default.getState().setTimelineLoading(e,t.isLoading)}:void 0,getCliState:e?()=>T.default.getState().tabs[e]?.cliState:void 0}),{sessions:ev,isLoading:ej,error:ek,refresh:eN}=(0,ex.useCodexSessions)(l,!!l&&"session-list"===R&&!0!==S),eT=(0,n.useRef)(S);(0,n.useEffect)(()=>{let e=eT.current;eT.current=S,!0!==e&&!0===S&&!0!==eC&&eb()},[S,eC,eb]),(0,n.useEffect)(()=>{if(!e||"unknown"!==j)return;let t=new AbortController;return fetch("/api/tmux/recover-unknown",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tabId:e}),signal:t.signal}).catch(()=>{}),()=>t.abort()},[e,j]),(0,n.useEffect)(()=>{if(!e||!a||"check"!==R)return;if("inactive"!==j&&"unknown"!==j&&"cancelled"!==j)return void T.default.getState().setSessionView(e,"timeline");if(!0===S||!0===eC)return void T.default.getState().setAgentProcess(e,!0,Date.now());let t=!1,n=async()=>{try{let n=await fetch(`/api/check-agent?session=${a}`);if(!n.ok)return;let s=await n.json();if(t||!0!==s.running||"codex-cli"!==s.providerPanelType)return;T.default.getState().setAgentProcess(e,!0,"number"==typeof s.checkedAt?s.checkedAt:Date.now())}catch{}};n();let s=window.setInterval(n,800);return()=>{t=!0,window.clearInterval(s)}},[S,eC,j,a,e,R]);let{meta:eI}=(0,J.default)(H,ee,et,en,I,P),{branch:eP,isLoading:eR}=(0,Q.default)(a??""),{status:eA}=(0,X.default)(a??"",A),eL=(0,Y.default)(a??"",A),eE=(0,Z.default)(q,A),eD=eE?{...eI,userCount:eE.userCount,assistantCount:eE.assistantCount}:eI,eB=(0,n.useCallback)(e=>{a&&!E&&(D(e.sessionId),ey(e.sessionId,a))},[E,ey,a]);return v?b&&y?(0,t.jsx)("div",{className:"animate-delayed-fade-in flex min-h-0 flex-1 flex-col items-center justify-center bg-muted px-4",children:(0,t.jsx)(eg.default,{prompt:b,onRespond:y})}):"check"===R?(0,t.jsx)("div",{className:"animate-delayed-fade-in flex min-h-0 flex-1 flex-col items-center justify-center bg-muted px-4",children:(0,t.jsx)(ep.default,{onRestart:h})}):"session-list"===R?null!==S&&l?(0,t.jsx)("div",{className:"min-h-0 flex-1 bg-muted",children:(0,t.jsx)(eh.default,{sessions:ev,isLoading:ej,error:ek?w("codexSessionsLoadFailed"):null,resumingSessionId:E,onSelectSession:eB,onRefresh:eN,onNewSession:g})}):(0,t.jsx)("div",{className:"animate-delayed-fade-in flex min-h-0 flex-1 flex-col items-center justify-center bg-muted px-4",children:(0,t.jsx)(o.default,{className:"h-4 w-4 text-muted-foreground"})}):"inactive"!==j||!1!==S||N||ea?(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col bg-muted",children:[(0,t.jsxs)("div",{className:"flex shrink-0 cursor-pointer items-center justify-between border-b px-4 py-1.5 hover:bg-muted/30",role:"button",tabIndex:0,onClick:()=>L(!0),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),L(!0))},children:[(0,t.jsx)(ec.MetaCompact,{title:eI.title,totalCost:eI.totalCost,branch:eP,usedPercentage:eI.usedPercentage,currentContextTokens:eI.currentContextTokens,contextWindowSize:eI.contextWindowSize}),(0,t.jsx)(G.ChevronDown,{size:14,className:"shrink-0 text-muted-foreground"})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1",children:(0,t.jsx)(el.default,{entries:H,tasks:U,sessionId:_,sessionName:a,tabId:e,initMeta:et,sessionStats:en,cliState:j,compactingSince:k,wsStatus:es,isLoading:ea,error:er,onRetry:eb,onLoadMore:ed,hasMore:em,scrollToBottomRef:B})}),(0,t.jsxs)("div",{className:"shrink-0 pb-3",children:[(0,t.jsx)(ei.default,{tabId:e,wsId:s,sessionName:a,agentSessionId:N,provider:"codex",cliState:j,sendStdin:u,terminalWsConnected:f,visible:"timeline"===R,focusTerminal:m,focusInputRef:x,setInputValueRef:p,maxRows:3,onRestartSession:h,onSend:O,onOptimisticSend:ew,onAddPendingMessage:ew,onRemovePendingMessage:eS}),(0,t.jsx)(eo.default,{prompts:z,visible:"timeline"===R,onSelect:$})]}),(0,t.jsx)(eu,{open:A,onOpenChange:L,meta:eD,toolCount:eE?.toolCount??null,toolBreakdown:eE?.toolBreakdown??null,branch:eP,isBranchLoading:eR,sessionId:_,gitStatus:eA,tmuxInfo:eL})]}):(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-4 bg-muted px-6 text-center",role:"status",children:[(0,t.jsx)(C.default,{size:32,className:"text-muted-foreground/60"}),(0,t.jsx)("p",{className:"text-sm font-medium text-foreground",children:w("codexInactiveMessage")}),g&&(0,t.jsxs)(d.Button,{size:"default",className:"min-h-11",onClick:M,children:[(0,t.jsx)(r.Plus,{className:"size-4"}),w("codexStartSession")]})]}):(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-3 bg-muted px-6 text-center text-muted-foreground",role:"status",children:[(0,t.jsx)(C.default,{size:32,className:"text-muted-foreground/60"}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:w("codexNotInstalled")})]})};var ey=e.i(204360),ew=e.i(166229);let eS="__CTRL__",eC="__SHIFT__",ev={fontFamily:"MesloLGLDZ, monospace"},ej=[{label:"Tab",value:" "},{label:"Esc",value:"\x1b"},{label:"Ctrl",value:eS},{label:"Shift",value:eC},{label:"󱞥",value:"\r",nerd:!0},{label:"󰁝",value:"\x1b[A",nerd:!0},{label:"󰁅",value:"\x1b[B",nerd:!0},{label:"󰁍",value:"\x1b[D",nerd:!0},{label:"󰁔",value:"\x1b[C",nerd:!0},{label:"󰍴",value:"|",nerd:!0,rotate:!0},{label:"󰜥",value:"~",nerd:!0}],ek=({sendStdin:e,terminalConnected:s})=>{let a=(0,i.useTranslations)("mobile"),[l,r]=(0,n.useState)(""),[o,c]=(0,n.useState)(!1),[u,f]=(0,n.useState)(!1),m=(0,n.useRef)(null),x=(0,n.useCallback)(()=>{let e=m.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,76)}px`)},[]);(0,n.useEffect)(()=>{x()},[l,x]);let p=(0,n.useCallback)(()=>{s&&(l&&e(l),e("\r"),r(""))},[l,e,s]),g=(0,n.useCallback)(t=>{let n=t.target.value;if(o&&n.length===l.length+1){let t=n[n.length-1].toLowerCase().charCodeAt(0);if(t>=97&&t<=122){e(String.fromCharCode(t-96)),c(!1);return}}if(u&&n.length===l.length+1){let e=n[n.length-1],t=e.toUpperCase();if(t!==e){r(l+t),f(!1);return}}r(n)},[o,u,l,e]),h=(0,n.useCallback)(t=>{t.value===eS?c(e=>!e):t.value===eC?f(e=>!e):(e(t.value),o&&c(!1),u&&f(!1))},[o,u,e]);return(0,t.jsxs)("div",{className:"shrink-0 border-t border-border bg-background",children:[(0,t.jsxs)("div",{className:"flex items-end gap-2 px-3 py-2",children:[(0,t.jsx)("textarea",{ref:m,value:l,onChange:g,placeholder:o?"Ctrl + ...":u?"Shift + ...":a("commandPlaceholder"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,rows:1,className:(0,P.cn)("flex-1 resize-none rounded-md border px-3 py-1.5 text-sm text-foreground outline-none placeholder:text-muted-foreground",o||u?"border-claude-active bg-claude-active/10":"border-border bg-black/5 focus:border-ring dark:bg-white/5"),style:{lineHeight:"20px",maxHeight:"76px",overflowY:"auto"}}),(0,t.jsx)(d.Button,{variant:"ghost",size:"sm",className:(0,P.cn)("h-8 w-8 shrink-0 p-0 text-muted-foreground hover:text-foreground",l.trim()&&"text-claude-active"),onClick:p,"aria-label":a("send"),children:(0,t.jsx)(ew.SendHorizontal,{size:16})})]}),(0,t.jsx)("div",{className:"flex items-center gap-1 overflow-x-auto px-3 pb-2",style:{scrollbarWidth:"none",WebkitOverflowScrolling:"touch"},children:ej.map(e=>(0,t.jsx)("button",{className:(0,P.cn)("shrink-0 rounded-md border px-2.5 py-1 text-xs font-medium transition-colors",e.value===eS&&o||e.value===eC&&u?"border-claude-active bg-claude-active/20 text-claude-active":"border-border bg-muted/50 text-muted-foreground active:bg-muted"),onClick:()=>h(e),children:(0,t.jsx)("span",{className:(0,P.cn)("inline-block",e.rotate&&"rotate-90"),style:e.nerd?ev:void 0,children:e.label})},e.label))})]})};var eN=e.i(196755),eT=e.i(251748),eI=e.i(610782),eP=e.i(117369),eR=e.i(31050),eA=e.i(750147),eL=e.i(732859),eE=e.i(1398),eD=e.i(828324),eB=e.i(827294),ez=e.i(530417),eM=e.i(824075),eO=e.i(635255);let e$={write:()=>{},reset:()=>{},fit:()=>({cols:40,rows:24}),focus:()=>{},getBufferText:()=>""},eW={sendStdin:()=>{},sendResize:()=>{}},eF=({paneId:e,tabs:s,activeTabId:a,panelType:l,onCreateTab:f,onDeleteTab:m,onSwitchTab:p,onRemoveTabLocally:g,onUpdateTabPanelType:h,onUpdateDiffSettings:b,onCliStateChange:y,onOpenNewTabDialog:w})=>{let S=(0,i.useTranslations)("mobile"),C=(0,i.useTranslations)("terminal"),v=s.find(e=>e.id===a),j="claude-code"===l,k="codex-cli"===l,N="agent-sessions"===l,I=j||k,R=I||N,A="web-browser"===l,L="diff"===l,{ensureAgentInstalled:E,installDialogs:D}=(0,eE.useAgentInstallCheck)(),B=(0,x.default)(e=>a?e.metadata[a]?.cwd:void 0),z=(0,u.useLayoutStore)(e=>e.workspaceId),M=(0,u.useLayoutStore)(e=>e.layout?.diffSettings),{theme:G}=(0,eP.default)(),[K,_]=(0,n.useState)(!1),[q,J]=(0,n.useState)(!1),[Q,X]=(0,n.useState)(!0),Y=(0,n.useRef)(e$),Z=(0,n.useRef)(eW),ee=(0,n.useRef)(null),et=(0,n.useRef)(null),en=(0,n.useRef)(null),[es,ea]=(0,n.useState)(null),el=(0,n.useRef)(null),er=(0,n.useRef)(!1),ei=(0,n.useRef)(s),eo=(0,n.useRef)(a);(0,n.useEffect)(()=>{ei.current=s,eo.current=a});let ec=(0,n.useCallback)(async()=>{let e=eo.current,t=e?ei.current.find(t=>t.id===e):null;if(t)try{let e=await fetch(`/api/layout/cwd?session=${t.sessionName}`);if(!e.ok)return;let{cwd:n}=await e.json();n&&x.default.getState().setCwd(t.id,n)}catch{}},[]),ed=(0,n.useRef)(()=>{}),eu=(0,n.useRef)(void 0),ef=(0,n.useRef)(void 0),ex=(0,n.useRef)(null),ep=(0,n.useRef)(null),eg=(0,n.useRef)(()=>{}),eh=(0,n.useRef)(""),ew=(0,T.default)(e=>a?e.tabs[a]?.agentProcess??null:null),eS=(0,T.default)(e=>a?e.tabs[a]?.agentSessionId??null:null),eC=(0,T.default)(e=>a?(0,T.selectSessionView)(e.tabs,a):null),ev=(0,T.default)(e=>a?e.tabs[a]?.cliState??"inactive":"inactive"),ej=(0,n.useRef)(new Set),[eF,eV]=(0,n.useState)(null),eH=(0,n.useCallback)((e,t)=>{if(!0!==t.running||!(0,eM.isAgentPanelType)(t.providerPanelType))return void eV(t=>t?.tabId===e?null:t);let n="string"==typeof t.providerId&&t.providerId?t.providerId:t.providerPanelType,s=`${e}:${n}`;if(ej.current.has(s))return;ej.current.add(s);let a="string"==typeof t.providerDisplayName&&t.providerDisplayName?t.providerDisplayName:n;eV({tabId:e,providerId:n,displayName:a,panelType:t.providerPanelType,sessionId:"string"==typeof t.sessionId&&t.sessionId?t.sessionId:null,resumable:!0===t.resumable})},[]),{trustPrompt:eU,onTerminalData:eG,onTrustResponse:eK}=(0,eA.default)({enabled:j&&"inactive"===ev,getBufferText:()=>Y.current.getBufferText(),sendStdin:e=>Z.current.sendStdin(e)}),{updatePrompt:e_,onTerminalData:eq,onRespond:eJ}=(0,eL.default)({enabled:k&&"inactive"===ev,scopeKey:a,getBufferText:()=>Y.current.getBufferText(),sendStdin:e=>Z.current.sendStdin(e),onUpdated:()=>{eg.current()}}),eQ=(0,n.useCallback)(e=>{y?.(e)},[y]),eX=(0,n.useCallback)(e=>{},[]),eY=(0,n.useCallback)(e=>(0,eI.isAppShortcut)(e)?(e.preventDefault(),(0,eI.isClearShortcut)(e)&&ed.current(),(0,eI.isFocusInputShortcut)(e)&&eu.current?.(),!1):!(0,eI.isShiftEnter)(e)||(e.preventDefault(),Z.current.sendStdin("\n"),!1),[]),{terminalRef:eZ,write:e0,clear:e1,reset:e3,fit:e2,focus:e5,isReady:e4,getBufferText:e7}=(0,F.default)({theme:G.colors,fontSize:I?void 0:11,onInput:e=>Z.current.sendStdin(e),onResize:(e,t)=>{Z.current.sendResize(e,t),er.current&&(el.current&&clearTimeout(el.current),el.current=setTimeout(()=>{er.current=!1,X(!0)},200))},onTitleChange:e=>{let t=eo.current;if(!t)return;let n=ei.current.find(e=>e.id===t);if(!n||"web-browser"===n.panelType||"agent-sessions"===n.panelType||e===eh.current)return;eh.current=e;let s=(0,eT.formatTabTitle)(e,n?.panelType);if(x.default.getState().setTitle(t,s),(0,eT.isShellProcess)(e)&&ex.current){let e=ex.current;ex.current=null,Z.current.sendStdin(`${e}\r`)}let a=ei.current.find(e=>e.id===t);if(a){let e=T.default.getState().tabs[t]?.agentProcessCheckedAt??0;fetch(`/api/check-agent?session=${a.sessionName}`).then(e=>e.json()).then(s=>{n?.panelType==="terminal"&&eH(t,s);let l=!0===s.running&&(0,eM.isAgentPanelType)(s.providerPanelType),r=T.default.getState().tabs[t];if(r&&r.agentProcessCheckedAt!==e){r.agentProcess!==l&&setTimeout(()=>{fetch(`/api/check-agent?session=${a.sessionName}`).then(e=>e.json()).then(e=>{n?.panelType==="terminal"&&eH(t,e),(0,eM.applyAgentCheckResult)(t,e)}).catch(()=>{})},500);return}(0,eM.applyAgentCheckResult)(t,s)}).catch(()=>{})}ec()},customKeyEventHandler:eY});(0,n.useEffect)(()=>{ed.current=e1});let e6=(0,n.useCallback)(async()=>{if(en.current)return;let t=ei.current,n=eo.current;if(!n)return;en.current=n;let s=[...t].sort((e,t)=>e.order-t.order),a=s.findIndex(e=>e.id===n),l=s[a+1]||s[a-1];l&&p(e,l.id);try{await m(e,n)}finally{en.current=null}},[e,p,m]),{status:e8,retryCount:e9,disconnectReason:te,connect:tt,reconnect:tn,sendStdin:ts,sendWebStdin:ta,sendResize:tl}=(0,V.default)({onData:e=>{Y.current.write(e),eG(),eq()},onConnected:()=>{_(!0),ea(eo.current),et.current=eo.current;let e=eo.current;e&&T.default.getState().setTerminalConnected(e,!0);let{cols:t,rows:n}=Y.current.fit();Z.current.sendResize(t,n),ec()},onSessionEnded:e6});(0,n.useEffect)(()=>{Y.current={write:e0,reset:e3,fit:e2,focus:e5,getBufferText:e7},Z.current={sendStdin:ts,sendResize:tl}}),(0,n.useEffect)(()=>{e4||(ee.current=null)},[e4]),(0,n.useEffect)(()=>{if(!e4||!a)return;let e=s.find(e=>e.id===a);if(!e)return;if("web-browser"===e.panelType){ee.current=null,eh.current="";return}if(ee.current===e.sessionName)return;null!==ee.current&&e3();let t=T.default.getState(),n=t.tabs[a];t.initTab(a,{terminalConnected:!1,panelType:e.panelType,...!n?(0,T.getInitialTabStateFromLayoutTab)(e):{}}),ee.current=e.sessionName,tt(e.sessionName)},[e4,a]),(0,n.useEffect)(()=>{let e=eo.current;e&&T.default.getState().setTerminalConnected(e,"connected"===e8)},[e8]),(0,n.useEffect)(()=>{"disconnected"===e8&&K&&ea(eo.current)},[e8,K]),(0,n.useEffect)(()=>{"disconnected"===e8&&K&&et.current&&et.current!==a&&s.some(e=>e.id===et.current)&&(ee.current=null,p(e,et.current))},[e8]),(0,n.useEffect)(()=>{if(!e4||"connected"!==e8)return;let e=setTimeout(()=>{let{cols:e,rows:t}=e2();Z.current.sendResize(e,t)},300);return()=>clearTimeout(e)},[e8]),(0,n.useEffect)(()=>{if(I){er.current=!1,el.current&&clearTimeout(el.current),ec();return}if(e4&&"connected"===e8)return er.current=!0,queueMicrotask(()=>X(!1)),el.current=setTimeout(()=>{er.current=!1,X(!0)},200),()=>{el.current&&clearTimeout(el.current),er.current=!1};queueMicrotask(()=>X(!0))},[I]);let tr=(0,n.useCallback)(async()=>{J(!0),await f(e),J(!1)},[e,f]),ti=(0,n.useCallback)(e=>(0,eD.buildClaudeLaunchCommand)({workspaceId:z,dangerouslySkipPermissions:eR.default.getState().dangerouslySkipPermissions,resumeSessionId:e}),[z]),to=(0,n.useCallback)(async()=>{"connected"!==e8||!a||await E("claude")&&(T.default.getState().setSessionView(a,"check"),ts(`${ti(null)}\r`))},[e8,ts,a,ti,E]),tc=(0,n.useCallback)(async()=>{"connected"!==e8||!a||await E("claude")&&(ex.current=ti(null),T.default.getState().setSessionView(a,"check"),ts("/exit\r"))},[e8,ts,a,ti,E]),td=(0,n.useCallback)(()=>(0,eB.fetchCodexLaunchCommand)(z),[z]),tu=(0,n.useCallback)((e,t)=>{fetch("/api/status/agent-launch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tabId:e,resetAgentSession:t?.resetAgentSession===!0})}).catch(()=>{})},[]),tf=(0,n.useCallback)(async()=>{let e;if("connected"===e8&&a&&await E("codex")){try{e=await td()}catch{c.toast.error(C("codexLaunchFailed"));return}tu(a,{resetAgentSession:!0}),T.default.getState().setSessionView(a,"check"),ts(`${e}\r`)}},[e8,ts,a,td,E,tu,C]),tm=(0,n.useCallback)(async()=>{!a||await E("claude")&&(h(e,a,"claude-code"),to())},[a,E,to,h,e]),tx=(0,n.useCallback)(async()=>{!a||await E("codex")&&(h(e,a,"codex-cli"),tf())},[a,E,tf,h,e]),tp=(0,n.useCallback)(async t=>{if("connected"!==e8||!a)return;let n="codex"===t.provider?"codex-cli":"claude-code";if(await E(t.provider)){if(h(e,a,n),T.default.getState().setSessionView(a,"check"),"codex"===t.provider){let e;try{e=await (0,eB.fetchCodexLaunchCommand)(z,t.sessionId)}catch{c.toast.error(C("codexLaunchFailed"));return}tu(a,{resetAgentSession:!1}),ts(`${e}\r`);return}ts(`${ti(t.sessionId)}\r`)}},[a,ti,E,z,tu,h,e,ts,e8,C]),tg=(0,n.useCallback)(async()=>{let e;if("connected"===e8&&a&&await E("codex")){try{e=await td()}catch{c.toast.error(C("codexLaunchFailed"));return}tu(a,{resetAgentSession:!0}),T.default.getState().setSessionView(a,"check"),ts(`${e}\r`)}},[e8,ts,a,td,E,tu,C]);(0,n.useEffect)(()=>{eg.current=tg},[tg]);let th=(0,n.useCallback)(async()=>{let e;if("connected"===e8&&a&&await E("codex")){try{e=await td()}catch{c.toast.error(C("codexLaunchFailed"));return}ex.current=e,tu(a,{resetAgentSession:!0}),T.default.getState().setSessionView(a,"check"),(0,ez.sendCodexQuitCommand)(ts)}},[e8,ts,a,td,E,tu,C]);(0,n.useEffect)(()=>{let t=t=>{let n=t.detail;if(n?.tabId!==a||"claude"!==n.provider&&"codex"!==n.provider)return;let s=n.provider;(async()=>{if(await E(s)){if(h(e,a,"codex"===s?"codex-cli":"claude-code"),"codex"===s)return tf();to()}})()};return window.addEventListener("purplemux-start-agent",t),()=>window.removeEventListener("purplemux-start-agent",t)},[a,E,to,tf,h,e]),(0,n.useEffect)(()=>{if(!ex.current||!0===ew||"connected"!==e8||!(0,eT.isShellProcess)(eh.current))return;let e=ex.current;ex.current=null;let t=eo.current;t&&tu(t),ts(`${e}\r`)},[ew,e8,ts,tu]),(0,n.useEffect)(()=>{if(!a||!0!==ew||"terminal"!==l)return void eV(null);if(eF?.tabId!==a)return},[a,ew,l,eF]),(0,n.useEffect)(()=>{if(!a||!0!==ew||"terminal"!==l||eF?.tabId===a)return;let e=v?.sessionName;if(!e)return;let t=!1;return fetch(`/api/check-agent?session=${e}`).then(e=>e.json()).then(e=>{t||eH(a,e)}).catch(()=>{}),()=>{t=!0}},[a,v?.sessionName,ew,l,eF?.tabId,eH]);let tb=(0,n.useCallback)(async()=>{if(!a||!eF||eF.tabId!==a||(eV(null),h(e,a,eF.panelType),"connected"!==e8))return;let t=eF.resumable?eF.sessionId:null;if("codex-cli"===eF.panelType){let e;if(!await E("codex"))return;try{e=await (0,eB.fetchCodexLaunchCommand)(z,t)}catch{c.toast.error(C("codexLaunchFailed"));return}ex.current=e,tu(a,{resetAgentSession:!t}),T.default.getState().setSessionView(a,"check"),(0,ez.sendCodexQuitCommand)(ts);return}await E("claude")&&(ex.current=ti(t),T.default.getState().setSessionView(a,"check"),ts("\x03"),setTimeout(()=>ts("\x03"),300))},[a,eF,ti,E,z,tu,h,e,ts,e8,C]),ty=(0,n.useCallback)(async(t,n)=>{!a||await E(n)&&(ep.current={text:t,provider:n},h(e,a,"codex"===n?"codex-cli":"claude-code"))},[a,E,e,h]);(0,n.useEffect)(()=>{let t=t=>{let n=t.detail;n?.paneId===e&&n.text&&n.provider&&ty(n.text,n.provider)};return window.addEventListener("purplemux-send-to-agent",t),()=>window.removeEventListener("purplemux-send-to-agent",t)},[e,ty]),(0,n.useEffect)(()=>{let e=ep.current;if(!e||l!==("codex"===e.provider?"codex-cli":"claude-code"))return;ep.current=null;let t=window.setTimeout(()=>{ef.current?.(e.text),eu.current?.()},100);return()=>window.clearTimeout(t)},[l]);let tw=(0,n.useCallback)(t=>{a&&z&&fetch(`/api/layout/pane/${e}/tabs/${a}?workspace=${z}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({webUrl:t})}).catch(()=>{})},[a,e,z]),tS=0===s.length,tC=A||L||N||e4&&"connected"===e8&&!tS,tv=null!==a&&es!==a,tj=(0,n.useRef)(new Set);return(0,n.useEffect)(()=>{"disconnected"!==e8||"session-not-found"!==te||tv||!a||!v||"terminal"!==(v.panelType??"terminal")||v.lastCommand||tj.current.has(a)||(tj.current.add(a),(async()=>{await u.useLayoutStore.getState().restartTabInPane(e,a)&&tn()})())},[e8,te,a,v,tv,e,tn]),(0,t.jsxs)("div",{className:"relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden",style:{backgroundColor:G.colors.background,overscrollBehavior:"none"},children:[A&&a&&(0,t.jsx)($.default,{tabId:a,initialUrl:v?.webUrl,onUrlChange:tw},a),L&&v&&(0,t.jsx)(W.default,{sessionName:v.sessionName,onSendToAgent:ty,settings:M,onSettingsChange:b},v.sessionName),N&&v&&(0,t.jsx)(ey.default,{sessionName:v.sessionName,cwd:B||v.cwd,onSelectSession:tp,onNewClaudeSession:tm,onNewCodexSession:tx},v.sessionName),j&&v&&(0,t.jsx)(em,{tabId:a??void 0,wsId:z??void 0,sessionName:v.sessionName,claudeSessionId:eS,cwd:B,sendStdin:ta,terminalWsConnected:"connected"===e8,focusTerminal:e5,focusInputRef:eu,setInputValueRef:ef,onCliStateChange:eQ,onInputVisibleChange:eX,onRestartSession:tc,onNewSession:to,trustPrompt:eU,onTrustResponse:eK}),k&&v&&(0,t.jsx)(eb,{tabId:a??void 0,wsId:z??void 0,sessionName:v.sessionName,cwd:B||v.cwd,sendStdin:ta,terminalWsConnected:"connected"===e8,focusTerminal:e5,focusInputRef:eu,setInputValueRef:ef,onNewSession:tf,onRestart:th,updatePrompt:e_,onUpdatePromptResponse:eJ}),!A&&!L&&(0,t.jsx)(H.default,{ref:eZ,className:(0,P.cn)(!R&&"transition-opacity duration-150",R?"absolute inset-0 pointer-events-none opacity-0":"min-h-0 flex-1",!R&&tC&&Q?"opacity-100":"",R||tC&&Q?"":"opacity-0")}),!I&&!A&&!L&&!N&&"connected"===e8&&(0,t.jsx)(ek,{sendStdin:ta,terminalConnected:"connected"===e8}),eF&&eF.tabId===a&&"terminal"===l&&(0,t.jsx)(eN.default,{modeName:eF.displayName,onSwitch:tb,onDismiss:()=>eV(null),className:"bottom-28"}),tS&&(0,t.jsx)("div",{className:"absolute inset-0 z-20 flex flex-col items-center justify-center gap-3",children:(0,t.jsxs)(d.Button,{className:"gap-1.5",onClick:w??tr,disabled:q,children:[q?(0,t.jsx)(o.default,{className:"h-3 w-3"}):(0,t.jsx)(r.Plus,{className:"h-3.5 w-3.5"}),C("openNewTab")]})}),!tS&&!A&&"disconnected"===e8&&!tv&&(0,t.jsxs)("div",{className:"absolute inset-0 z-20 flex flex-col items-center justify-center gap-3",children:[(0,t.jsx)(O.WifiOff,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"max-connections"===te?S("disconnectedMaxConnections"):"pty-error"===te?S("disconnectedPtyError"):"session-not-found"===te?C("disconnectedSessionNotFound"):S("cannotConnectServer")}),"session-not-found"===te&&a?(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Button,{variant:"outline",size:"sm",onClick:async()=>{await u.useLayoutStore.getState().restartTabInPane(e,a)&&tn()},children:S("restart")}),(0,t.jsx)(d.Button,{variant:"ghost",size:"sm",onClick:()=>m(e,a),children:C("closeTabLabel")})]}):"reconnect-exhausted"===te?(0,t.jsx)(d.Button,{variant:"outline",size:"sm",onClick:()=>(0,eO.reloadForReconnectRecovery)("terminal"),children:S("restart")}):(0,t.jsx)(d.Button,{variant:"outline",size:"sm",onClick:tn,children:S("reconnect")})]}),!tS&&!A&&!L&&!(I&&"check"===eC)&&(0,t.jsx)(U.default,{status:e8,retryCount:e9,disconnectReason:te,onReconnect:tn}),D]})};var eV=e.i(875284),eH=e.i(296202);let eU=({open:e,onOpenChange:s,onCreateTab:a})=>{let l=(0,i.useTranslations)("terminal"),r=(0,i.useTranslations)("mobile"),[c,d]=(0,n.useState)(null),u=[{key:"claude",type:"claude-code",icon:(0,t.jsx)(S.default,{className:"h-5 w-5"}),label:l("claudeNewConversation"),startCommand:"claude-new"},{key:"codex",type:"codex-cli",icon:(0,t.jsx)(C.default,{className:"h-5 w-5"}),label:l("codexNewConversation"),startCommand:"codex-new"},{key:"agent-sessions",type:"agent-sessions",icon:(0,t.jsx)(b.History,{className:"h-5 w-5 text-muted-foreground"}),label:l("sessionList")},{key:"terminal",type:"terminal",icon:(0,t.jsx)(eV.Terminal,{className:"h-5 w-5 text-muted-foreground"}),label:"Terminal"}],f=async e=>{d(e.key),await a(e.type),d(null),s(!1)},m=async e=>{d(`${e.key}-new`),await a(e.type,{command:e.startCommand}),d(null),s(!1)},x=async e=>{"startCommand"in e?await m(e):await f(e)};return(0,t.jsx)(eH.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(eH.DialogContent,{className:"w-[calc(100%-2rem)] max-w-xs gap-2 rounded-xl p-4",children:[(0,t.jsx)(eH.DialogHeader,{children:(0,t.jsx)(eH.DialogTitle,{className:"text-sm font-medium",children:r("newTab")})}),(0,t.jsx)("div",{className:"grid grid-cols-2 gap-2",children:u.map(e=>(0,t.jsx)("div",{className:"relative aspect-square rounded-lg border border-border bg-background text-foreground transition-colors",children:(0,t.jsxs)("button",{className:"flex h-full w-full flex-col items-center justify-center gap-2 rounded-lg transition-colors active:bg-accent disabled:pointer-events-none disabled:opacity-50",disabled:null!==c,onClick:()=>x(e),children:[(0,t.jsx)("span",{className:"flex h-5 w-5 items-center justify-center",children:c===`${e.key}-new`?(0,t.jsx)(o.default,{className:"h-4 w-4"}):e.icon}),(0,t.jsx)("span",{className:"line-clamp-2 max-w-full px-1 text-center text-xs leading-tight",children:e.label})]})},e.key))})]})})},eG=({open:e,sessionName:n,onClose:s,onSendToAgent:a,settings:l,onSettingsChange:r})=>e?(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex flex-col bg-card text-foreground",children:(0,t.jsx)("div",{className:"min-h-0 flex-1",children:n?(0,t.jsx)(W.default,{sessionName:n,onSendToAgent:a,onClose:s,settings:l,onSettingsChange:r}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-6 text-center text-sm text-muted-foreground",children:"Open a terminal or agent tab first."})})}):null;var eK=e.i(3450),e_=e.i(157016),eq=e.i(566736);e.s(["default",0,()=>{let e=(0,i.useTranslations)("terminal"),p=(0,i.useTranslations)("mobile"),g=(0,i.useTranslations)("common"),{ensureAgentInstalled:h,installDialogs:b}=(0,eE.useAgentInstallCheck)(),y=(0,m.default)(e=>e.isLoading),w=(0,m.default)(e=>e.error),S=(0,m.default)(e=>e.activeWorkspaceId),C=(0,m.default)(e=>e.workspaces).length,v=(0,n.useRef)(null),j=(0,n.useCallback)(()=>{let t=v.current;t&&(m.default.getState().switchWorkspace(t),c.toast.error(e("cannotSwitch")))},[e]),k=(0,u.default)({workspaceId:S,onFetchError:j}),N=(0,n.useMemo)(()=>k.layout?(0,f.collectPanes)(k.layout.root):[],[k.layout]),I=!!(k.layout&&!k.isLoading&&N.every(e=>0===e.tabs.length)),P=k.layout?.updatedAt,R=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!k.layout||!P||R.current===P)return;R.current=P;let e={};for(let t of(0,f.collectPanes)(k.layout.root))for(let n of t.tabs)"agent-sessions"!==n.panelType&&(n.title||n.cwd)&&(e[n.id]={title:n.title,cwd:n.cwd});x.default.getState().hydrate(e)},[P]),(0,n.useEffect)(()=>{if(!k.layout)return;let e=new Set((0,f.collectPanes)(k.layout.root).flatMap(e=>e.tabs.map(e=>e.id)));x.default.getState().retainOnly(e)},[k.layout]),(0,eq.useAutoDeleteEmptyWorkspace)(I,k.clearLayout);let A=k.layout?.activePaneId??null,L=(A?N.find(e=>e.id===A):null)??N[0]??null,E=L?.id??null,D=L?.activeTabId??null,B=L?.tabs.find(e=>e.id===D)??null,z=B?.panelType??"terminal",O=(0,n.useCallback)(e=>{let{activeWorkspaceId:t}=m.default.getState();e!==t&&(v.current=t,x.default.getState().reset(),k.clearLayout(),m.default.getState().switchWorkspace(e))},[k]);(0,n.useEffect)(()=>(e_.default.getState().register({onSelectWorkspace:O}),()=>e_.default.getState().unregister()),[O]);let[$,W]=(0,n.useState)(!1),[F,V]=(0,n.useState)("inactive"),[H,U]=(0,n.useState)(!1),[G,K]=(0,n.useState)(null),_=(0,n.useCallback)(e=>{V(e)},[]);(0,n.useEffect)(()=>{D&&(0,eK.dismissTab)(D)},[D]),(0,n.useEffect)(()=>{D&&"claude-code"===z&&"inactive"!==F&&"idle"===F&&(0,eK.dismissTab)(D)},[D,F,z]);let q=(0,T.default)(e=>{if(!D)return!1;let t=e.tabs[D];return t?.cliState==="ready-for-review"||t?.cliState==="needs-input"});(0,n.useEffect)(()=>{q&&D&&(0,eK.dismissTab)(D)},[q,D]);let J=(0,x.default)(e=>D?e.metadata[D]:void 0),Q=(0,n.useCallback)(()=>{B?.sessionName&&K({sessionName:B.sessionName,cwdKey:J?.cwd||B.cwd||B.sessionName}),U(!0)},[B,J?.cwd]),X=(0,n.useCallback)((e,t)=>{L?.id&&(U(!1),window.dispatchEvent(new CustomEvent("purplemux-send-to-agent",{detail:{paneId:L.id,text:e,provider:t}})))},[L?.id]),Y=(0,n.useMemo)(()=>{if(!B)return"";if(B.name)return B.name;if("agent-sessions"===B.panelType)return e("sessionList");let t=J?.title||B.title,n=t?(0,eT.formatTabTitle)(t,B.panelType):"";return n||""},[B,J,e]),Z=(0,n.useCallback)(e=>{L&&D&&k.updateTabPanelType(L.id,D,e)},[L,D,k]),ee=(0,n.useCallback)(()=>{W(!0)},[]),et=(0,n.useCallback)(async(t,n)=>{let s;if(!L)return;if(n?.command==="claude-new"){if(!await h("claude"))return;s=(0,eD.buildClaudeLaunchCommand)({workspaceId:S,dangerouslySkipPermissions:eR.default.getState().dangerouslySkipPermissions})}else if(n?.command==="codex-new"){if(!await h("codex"))return;try{s=await (0,eB.fetchCodexLaunchCommand)(S)}catch{c.toast.error(e("codexLaunchFailed"));return}}let a=await k.createTabInPane(L.id,t,s,n?.resumeSessionId);a&&(T.default.getState().initTab(a.id,{panelType:t,workspaceId:S??""}),(s||n?.resumeSessionId)&&T.default.getState().setSessionView(a.id,"check"))},[L,h,k,S,e]),en=(0,n.useCallback)(()=>{L&&D&&k.deleteTabInPane(L.id,D)},[L,D,k]);return y?(0,t.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center",children:[(0,t.jsx)(o.default,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"mt-3 text-sm text-muted-foreground",children:e("connecting")})]}):w&&!C?(0,t.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-3",children:[(0,t.jsx)(s.AlertTriangle,{className:"h-5 w-5 text-ui-amber"}),(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:w}),(0,t.jsxs)(d.Button,{variant:"outline",size:"sm",className:"gap-1.5",onClick:m.default.getState().fetchWorkspaces,children:[(0,t.jsx)(a.RefreshCw,{className:"h-3.5 w-3.5"}),g("retry")]})]}):S||y||w?!k.layout||k.isLoading?(0,t.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center",children:(0,t.jsx)(o.default,{className:"h-4 w-4 text-muted-foreground"})}):k.error&&!k.isLoading?(0,t.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-3",children:[(0,t.jsx)(s.AlertTriangle,{className:"h-5 w-5 text-ui-amber"}),(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:k.error}),(0,t.jsxs)(d.Button,{variant:"outline",size:"sm",className:"gap-1.5",onClick:()=>k.fetchLayout(),children:[(0,t.jsx)(a.RefreshCw,{className:"h-3.5 w-3.5"}),g("retry")]})]}):(0,t.jsxs)(t.Fragment,{children:[L&&D&&(0,t.jsx)(M,{tabId:D,tabName:Y,sessionName:B?.sessionName??null,cwdKey:J?.cwd||B?.cwd||B?.sessionName||null,panelType:z,onSwitchPanelType:Z,onCreateTab:ee,onOpenGit:Q,onClose:en},D),L&&D&&(0,t.jsx)(eF,{paneId:L.id,tabs:L.tabs,activeTabId:D,panelType:z,onCreateTab:k.createTabInPane,onDeleteTab:k.deleteTabInPane,onSwitchTab:k.switchTabInPane,onRemoveTabLocally:k.removeTabLocally,onUpdateTabPanelType:k.updateTabPanelType,onUpdateDiffSettings:k.updateDiffSettings,onCliStateChange:_,onOpenNewTabDialog:ee},`${E}-${D}`),(0,t.jsx)(eU,{open:$,onOpenChange:W,onCreateTab:et}),(0,t.jsx)(eG,{open:H,sessionName:G?.sessionName,onClose:()=>U(!1),onSendToAgent:X,settings:k.layout?.diffSettings,onSettingsChange:k.updateDiffSettings}),b]}):(0,t.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-6 text-center",children:[(0,t.jsx)(l.Monitor,{className:"h-8 w-8 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:p("noWorkspace")}),(0,t.jsxs)(d.Button,{variant:"outline",size:"sm",className:"gap-1.5",onClick:async()=>{let e=await m.default.getState().createWorkspace("");e&&m.default.getState().switchWorkspace(e.id)},children:[(0,t.jsx)(r.Plus,{className:"h-3.5 w-3.5"}),e("newWorkspace")]})]})}],432270)},938280,e=>{e.n(e.i(432270))}]);