purplemux 0.2.1 → 0.2.3

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 (569) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +90 -90
  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 +51 -7
  6. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0t1c-6w._.js → [root-of-the-server]__016s4a9._.js} +2 -2
  7. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05ij_ys._.js +2 -2
  8. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0cjfc~l._.js → [root-of-the-server]__06h3gzy._.js} +2 -2
  9. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08tdlcm._.js +3 -0
  10. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0qda0wx._.js → [root-of-the-server]__0_fu3k.._.js} +1 -1
  11. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0pv48rv._.js → [root-of-the-server]__0_imm_0._.js} +1 -1
  12. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ef59mr._.js → [root-of-the-server]__0abp0lo._.js} +1 -1
  13. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0auutl5._.js +2 -2
  14. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bo-su1._.js +3 -0
  15. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bocpgx._.js +30 -0
  16. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c-bb5d._.js +3 -0
  17. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0dt2efu._.js +3 -0
  18. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0zjping._.js → [root-of-the-server]__0g8mjyh._.js} +1 -1
  19. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ihlt6s._.js +3 -0
  20. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__045g9-a._.js → [root-of-the-server]__0lk7ru8._.js} +1 -1
  21. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l~_wd0._.js +1 -1
  22. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04o.cbq._.js → [root-of-the-server]__0m99ffd._.js} +2 -2
  23. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0hzysmw._.js → [root-of-the-server]__0q8lffz._.js} +1 -1
  24. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vjtjtc._.js +3 -0
  25. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0x_e0yw._.js +3 -0
  26. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0t7wqt6._.js → [root-of-the-server]__10h2vlr._.js} +2 -2
  27. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11iyaqz._.js +3 -0
  28. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11j9~6h._.js +1 -1
  29. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__00yjayf._.js → [root-of-the-server]__121-6-e._.js} +2 -2
  30. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12ksl6n._.js +2 -2
  31. package/.next/standalone/.next/server/chunks/{_0out7wm._.js → _0-mgr1c._.js} +1 -1
  32. package/.next/standalone/.next/server/chunks/_0.5a4bu._.js +3 -0
  33. package/.next/standalone/.next/server/chunks/{_06vitke._.js → _03-duro._.js} +1 -1
  34. package/.next/standalone/.next/server/chunks/_05-8rnc._.js +3 -0
  35. package/.next/standalone/.next/server/chunks/{_0d415er._.js → _07097f~._.js} +1 -1
  36. package/.next/standalone/.next/server/chunks/{_0st-_d~._.js → _0jzxge9._.js} +1 -1
  37. package/.next/standalone/.next/server/chunks/{_0xmsr59._.js → _0ll-5~7._.js} +1 -1
  38. package/.next/standalone/.next/server/chunks/_0mhomq~._.js +3 -0
  39. package/.next/standalone/.next/server/chunks/{_0.hbe-v._.js → _0pk0hms._.js} +1 -1
  40. package/.next/standalone/.next/server/chunks/_0qm27ix._.js +3 -0
  41. package/.next/standalone/.next/server/chunks/{_0_1vqqb._.js → _0v81st0._.js} +1 -1
  42. package/.next/standalone/.next/server/chunks/_0vgpyhz._.js +3 -0
  43. package/.next/standalone/.next/server/chunks/{_1368r9s._.js → _0w0qjyh._.js} +1 -1
  44. package/.next/standalone/.next/server/chunks/_0wok5xu._.js +3 -0
  45. package/.next/standalone/.next/server/chunks/{_0tumyht._.js → _0wu6uxd._.js} +1 -1
  46. package/.next/standalone/.next/server/chunks/{_05otee~._.js → _0z7d6.z._.js} +1 -1
  47. package/.next/standalone/.next/server/chunks/{_0c63jma._.js → _0zf5mig._.js} +1 -1
  48. package/.next/standalone/.next/server/chunks/{_0mnwbyo._.js → _0~~9-pj._.js} +1 -1
  49. package/.next/standalone/.next/server/chunks/{src_lib_136edwc._.js → src_lib_0p.xsqi._.js} +1 -1
  50. package/.next/standalone/.next/server/chunks/src_lib_layout-store_ts_0fanx7c._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/src_lib_session-parser_ts_0~rhicw._.js +3 -3
  52. package/.next/standalone/.next/server/chunks/src_lib_workspace-store_ts_0vqt073._.js +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da5cj~._.js +3 -0
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0glt298._.js +3 -0
  55. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0hwcydd._.js → [root-of-the-server]__0grkevn._.js} +1 -1
  56. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0t9ru13._.js +3 -0
  57. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12b2-y_._.js +3 -0
  58. package/.next/standalone/.next/server/chunks/ssr/_0-ug5tr._.js +3 -0
  59. package/.next/standalone/.next/server/chunks/ssr/{_00rrt71._.js → _016o9_-._.js} +1 -1
  60. package/.next/standalone/.next/server/chunks/ssr/{_0y5jzd3._.js → _020f2r.._.js} +1 -1
  61. package/.next/standalone/.next/server/chunks/ssr/{_0_c~3id._.js → _02jzd5g._.js} +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/_04iqb-o._.js +3 -0
  63. package/.next/standalone/.next/server/chunks/ssr/{_0sfctwm._.js → _04q3_kj._.js} +2 -2
  64. package/.next/standalone/.next/server/chunks/ssr/{_08h9ynz._.js → _058y~nz._.js} +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/{_0_soefg._.js → _0a_u5qm._.js} +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/{_00ehnd~._.js → _0c1yivm._.js} +2 -2
  67. package/.next/standalone/.next/server/chunks/ssr/{_0kno-5w._.js → _0d58w1~._.js} +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/{_0rxhzwm._.js → _0ftinmo._.js} +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/_0h4kenr._.js +3 -0
  70. package/.next/standalone/.next/server/chunks/ssr/{_0z61aq-._.js → _0ihbr8k._.js} +2 -2
  71. package/.next/standalone/.next/server/chunks/ssr/_0js4l3t._.js +1 -1
  72. package/.next/standalone/.next/server/chunks/ssr/_0nib_x8._.js +3 -0
  73. package/.next/standalone/.next/server/chunks/ssr/_0nuztht._.js +18 -0
  74. package/.next/standalone/.next/server/chunks/ssr/_0nvs1~o._.js +3 -0
  75. package/.next/standalone/.next/server/chunks/ssr/_0oca87b._.js +3 -0
  76. package/.next/standalone/.next/server/chunks/ssr/_0ovjjn5._.js +3 -0
  77. package/.next/standalone/.next/server/chunks/ssr/{_0lnui2f._.js → _0ozy~xe._.js} +2 -2
  78. package/.next/standalone/.next/server/chunks/ssr/_0pg-q18._.js +3 -0
  79. package/.next/standalone/.next/server/chunks/ssr/{_0svke5s._.js → _0pk4~_0._.js} +2 -2
  80. package/.next/standalone/.next/server/chunks/ssr/_0qt-m3l._.js +3 -0
  81. package/.next/standalone/.next/server/chunks/ssr/_0w.1ts8._.js +3 -0
  82. package/.next/standalone/.next/server/chunks/ssr/_0w1phzp._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/ssr/_0w6jc9p._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/ssr/_101yu0w._.js +18 -0
  85. package/.next/standalone/.next/server/chunks/ssr/_13c-b~p._.js +3 -0
  86. package/.next/standalone/.next/server/chunks/ssr/_13lrp9_._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/ssr/{messages_046iw4z._.js → messages_02eoowy._.js} +1 -1
  88. package/.next/standalone/.next/server/chunks/ssr/{messages_0zr0cc7._.js → messages_0hmq5dp._.js} +1 -1
  89. package/.next/standalone/.next/server/chunks/ssr/messages_de_diff_json_[json]_cjs_0w6blyy._.js +1 -1
  90. package/.next/standalone/.next/server/chunks/ssr/messages_de_settings_json_[json]_cjs_0ksu4_w._.js +1 -1
  91. package/.next/standalone/.next/server/chunks/ssr/messages_de_sidebar_json_[json]_cjs_0loc-1-._.js +1 -1
  92. package/.next/standalone/.next/server/chunks/ssr/messages_de_workspace_json_[json]_cjs_0g7nkdq._.js +1 -1
  93. package/.next/standalone/.next/server/chunks/ssr/messages_en_diff_json_[json]_cjs_0z34_dc._.js +1 -1
  94. package/.next/standalone/.next/server/chunks/ssr/messages_en_settings_json_[json]_cjs_0qwl-zt._.js +1 -1
  95. package/.next/standalone/.next/server/chunks/ssr/messages_en_sidebar_json_[json]_cjs_0un0e3f._.js +1 -1
  96. package/.next/standalone/.next/server/chunks/ssr/messages_en_workspace_json_[json]_cjs_0m9rzyy._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/ssr/messages_es_diff_json_[json]_cjs_0kheix4._.js +1 -1
  98. package/.next/standalone/.next/server/chunks/ssr/messages_es_settings_json_[json]_cjs_0ce_kv6._.js +1 -1
  99. package/.next/standalone/.next/server/chunks/ssr/messages_es_sidebar_json_[json]_cjs_080u46~._.js +1 -1
  100. package/.next/standalone/.next/server/chunks/ssr/messages_es_workspace_json_[json]_cjs_0xf0_50._.js +1 -1
  101. package/.next/standalone/.next/server/chunks/ssr/messages_fr_diff_json_[json]_cjs_11vxoy5._.js +1 -1
  102. package/.next/standalone/.next/server/chunks/ssr/messages_fr_settings_json_[json]_cjs_0h_6lba._.js +1 -1
  103. package/.next/standalone/.next/server/chunks/ssr/messages_fr_sidebar_json_[json]_cjs_05y8v8h._.js +1 -1
  104. package/.next/standalone/.next/server/chunks/ssr/messages_fr_workspace_json_[json]_cjs_0h88f-g._.js +1 -1
  105. package/.next/standalone/.next/server/chunks/ssr/messages_ja_diff_json_[json]_cjs_0t~9dro._.js +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/messages_ja_settings_json_[json]_cjs_0pg~fls._.js +1 -1
  107. package/.next/standalone/.next/server/chunks/ssr/messages_ja_sidebar_json_[json]_cjs_0i0x8w9._.js +1 -1
  108. package/.next/standalone/.next/server/chunks/ssr/messages_ja_workspace_json_[json]_cjs_03dlzmi._.js +1 -1
  109. package/.next/standalone/.next/server/chunks/ssr/messages_ko_diff_json_[json]_cjs_0cw7xj1._.js +1 -1
  110. package/.next/standalone/.next/server/chunks/ssr/messages_ko_settings_json_[json]_cjs_07xpfc8._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/ssr/messages_ko_sidebar_json_[json]_cjs_0mql5dv._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/ssr/messages_ko_workspace_json_[json]_cjs_0frxg.r._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_diff_json_[json]_cjs_0vc-p7n._.js +1 -1
  114. package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_settings_json_[json]_cjs_0frspzp._.js +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_sidebar_json_[json]_cjs_07h4b1q._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/messages_pt-BR_workspace_json_[json]_cjs_0lahru2._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/messages_ru_diff_json_[json]_cjs_07na~n8._.js +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/messages_ru_settings_json_[json]_cjs_08ex00.._.js +1 -1
  119. package/.next/standalone/.next/server/chunks/ssr/messages_ru_sidebar_json_[json]_cjs_0aksrjo._.js +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/messages_ru_workspace_json_[json]_cjs_0wm5nhc._.js +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/messages_tr_diff_json_[json]_cjs_0a00gr_._.js +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/messages_tr_settings_json_[json]_cjs_0piu0da._.js +1 -1
  123. package/.next/standalone/.next/server/chunks/ssr/messages_tr_sidebar_json_[json]_cjs_0yj47nu._.js +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/messages_tr_workspace_json_[json]_cjs_0wygfyf._.js +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_diff_json_[json]_cjs_0b01x_1._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_settings_json_[json]_cjs_0uazwgy._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_sidebar_json_[json]_cjs_0yzmolg._.js +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/messages_zh-CN_workspace_json_[json]_cjs_0h3v0-e._.js +1 -1
  129. package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_diff_json_[json]_cjs_088r89k._.js +1 -1
  130. package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_settings_json_[json]_cjs_09u0c5l._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_sidebar_json_[json]_cjs_0pnu~0h._.js +1 -1
  132. package/.next/standalone/.next/server/chunks/ssr/messages_zh-TW_workspace_json_[json]_cjs_0ymw5wz._.js +1 -1
  133. package/.next/standalone/.next/server/chunks/ssr/node_modules_02oar3h._.js +3 -0
  134. package/.next/standalone/.next/server/chunks/ssr/node_modules_0_2gaq0._.js +1 -1
  135. package/.next/standalone/.next/server/chunks/ssr/node_modules_0bbmd88._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/ssr/node_modules_0ydhwnx._.js +1 -1
  137. package/.next/standalone/.next/server/chunks/ssr/node_modules_1294wzs._.js +1 -1
  138. package/.next/standalone/.next/server/chunks/ssr/{src_components_0rs9yzr._.js → src_components_0_aiven._.js} +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/{src_components_0cflin8._.js → src_components_0geizrr._.js} +1 -1
  140. package/.next/standalone/.next/server/chunks/ssr/{src_components_0g.s~e7._.js → src_components_11_1i~k._.js} +1 -1
  141. package/.next/standalone/.next/server/chunks/ssr/{src_components_0jrj_vu._.js → src_components_12mrirb._.js} +1 -1
  142. package/.next/standalone/.next/server/chunks/ssr/src_components_features_mobile_mobile-terminal-page_tsx_02chzch._.js +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/src_components_features_workspace_terminal-page_tsx_0wuq-jl._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/src_components_ui_input_tsx_0pgha5u._.js +3 -0
  145. package/.next/standalone/.next/server/chunks/ssr/src_hooks_use-browser-title_ts_0bw6.cb._.js +1 -1
  146. package/.next/standalone/.next/server/chunks/ssr/src_hooks_use-workspace-store_ts_0h40e5c._.js +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/src_lib_workspace-store_ts_00x-rec._.js +1 -1
  148. package/.next/standalone/.next/server/middleware-build-manifest.js +90 -90
  149. package/.next/standalone/.next/server/pages/_app/build-manifest.json +9 -8
  150. package/.next/standalone/.next/server/pages/_app/client-build-manifest.json +1 -1
  151. package/.next/standalone/.next/server/pages/_app.js +6 -6
  152. package/.next/standalone/.next/server/pages/_app.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/pages/_document.js +3 -3
  154. package/.next/standalone/.next/server/pages/_document.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/pages/_error.js +6 -6
  156. package/.next/standalone/.next/server/pages/_error.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js +2 -2
  158. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/result.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/send.js +2 -2
  160. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/send.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/status.js +2 -2
  162. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId]/status.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId].js +2 -2
  164. package/.next/standalone/.next/server/pages/api/cli/tabs/[tabId].js.nft.json +1 -1
  165. package/.next/standalone/.next/server/pages/api/cli/tabs.js +2 -2
  166. package/.next/standalone/.next/server/pages/api/cli/tabs.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/pages/api/cli/workspaces.js +1 -1
  168. package/.next/standalone/.next/server/pages/api/cli/workspaces.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/pages/api/git/sync/pages-manifest.json +3 -0
  170. package/.next/standalone/.next/server/pages/api/git/sync.js +5 -0
  171. package/.next/standalone/.next/server/pages/api/git/sync.js.map +5 -0
  172. package/.next/standalone/.next/server/pages/api/git/sync.js.nft.json +1 -0
  173. package/.next/standalone/.next/server/pages/api/layout/commit-diff/pages-manifest.json +3 -0
  174. package/.next/standalone/.next/server/pages/api/layout/commit-diff.js +5 -0
  175. package/.next/standalone/.next/server/pages/api/layout/commit-diff.js.map +5 -0
  176. package/.next/standalone/.next/server/pages/api/layout/commit-diff.js.nft.json +1 -0
  177. package/.next/standalone/.next/server/pages/api/layout/file-content/pages-manifest.json +3 -0
  178. package/.next/standalone/.next/server/pages/api/layout/file-content.js +5 -0
  179. package/.next/standalone/.next/server/pages/api/layout/file-content.js.map +5 -0
  180. package/.next/standalone/.next/server/pages/api/layout/file-content.js.nft.json +1 -0
  181. package/.next/standalone/.next/server/pages/api/layout/git-log/pages-manifest.json +3 -0
  182. package/.next/standalone/.next/server/pages/api/layout/git-log.js +5 -0
  183. package/.next/standalone/.next/server/pages/api/layout/git-log.js.map +5 -0
  184. package/.next/standalone/.next/server/pages/api/layout/git-log.js.nft.json +1 -0
  185. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js +2 -2
  186. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js +3 -3
  188. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/[tabId].js.nft.json +1 -1
  189. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js +2 -2
  190. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs/order.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js +3 -3
  192. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId]/tabs.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js +2 -2
  194. package/.next/standalone/.next/server/pages/api/layout/pane/[paneId].js.nft.json +1 -1
  195. package/.next/standalone/.next/server/pages/api/layout/pane.js +2 -2
  196. package/.next/standalone/.next/server/pages/api/layout/pane.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/pages/api/layout.js +2 -2
  198. package/.next/standalone/.next/server/pages/api/layout.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/pages/api/message-history.js +1 -1
  200. package/.next/standalone/.next/server/pages/api/message-history.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/pages/api/push/vapid-key.js +1 -1
  202. package/.next/standalone/.next/server/pages/api/push/vapid-key.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js +1 -1
  204. package/.next/standalone/.next/server/pages/api/stats/daily-report/cache.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js +1 -1
  206. package/.next/standalone/.next/server/pages/api/stats/daily-report/generate.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js +2 -2
  208. package/.next/standalone/.next/server/pages/api/stats/daily-report/list.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/pages/api/stats/projects.js +2 -2
  210. package/.next/standalone/.next/server/pages/api/stats/projects.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/pages/api/stats/sessions.js +2 -2
  212. package/.next/standalone/.next/server/pages/api/stats/sessions.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/pages/api/stats/uptime.js +2 -2
  214. package/.next/standalone/.next/server/pages/api/stats/uptime.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/pages/api/status/hook.js +3 -3
  216. package/.next/standalone/.next/server/pages/api/status/hook.js.nft.json +1 -1
  217. package/.next/standalone/.next/server/pages/api/status/statusline.js +5 -5
  218. package/.next/standalone/.next/server/pages/api/status/statusline.js.nft.json +1 -1
  219. package/.next/standalone/.next/server/pages/api/tmux/permission-options.js +1 -1
  220. package/.next/standalone/.next/server/pages/api/tmux/permission-options.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js +5 -5
  222. package/.next/standalone/.next/server/pages/api/tmux/recover-unknown.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/pages/api/tmux/reset.js +3 -3
  224. package/.next/standalone/.next/server/pages/api/tmux/reset.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js +2 -2
  226. package/.next/standalone/.next/server/pages/api/workspace/[workspaceId].js.nft.json +1 -1
  227. package/.next/standalone/.next/server/pages/api/workspace/active.js +2 -2
  228. package/.next/standalone/.next/server/pages/api/workspace/active.js.nft.json +1 -1
  229. package/.next/standalone/.next/server/pages/api/workspace/group/[groupId]/pages-manifest.json +3 -0
  230. package/.next/standalone/.next/server/pages/api/workspace/group/[groupId].js +8 -0
  231. package/.next/standalone/.next/server/pages/api/workspace/group/[groupId].js.map +5 -0
  232. package/.next/standalone/.next/server/pages/api/workspace/group/[groupId].js.nft.json +1 -0
  233. package/.next/standalone/.next/server/pages/api/workspace/group/pages-manifest.json +3 -0
  234. package/.next/standalone/.next/server/pages/api/workspace/group/reorder/pages-manifest.json +3 -0
  235. package/.next/standalone/.next/server/pages/api/workspace/group/reorder.js +8 -0
  236. package/.next/standalone/.next/server/pages/api/workspace/group/reorder.js.map +5 -0
  237. package/.next/standalone/.next/server/pages/api/workspace/group/reorder.js.nft.json +1 -0
  238. package/.next/standalone/.next/server/pages/api/workspace/group.js +8 -0
  239. package/.next/standalone/.next/server/pages/api/workspace/group.js.map +5 -0
  240. package/.next/standalone/.next/server/pages/api/workspace/group.js.nft.json +1 -0
  241. package/.next/standalone/.next/server/pages/api/workspace/reorder.js +2 -2
  242. package/.next/standalone/.next/server/pages/api/workspace/reorder.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/pages/api/workspace/validate.js +2 -2
  244. package/.next/standalone/.next/server/pages/api/workspace/validate.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/pages/api/workspace.js +4 -4
  246. package/.next/standalone/.next/server/pages/api/workspace.js.nft.json +1 -1
  247. package/.next/standalone/.next/server/pages/de/404.html +1 -1
  248. package/.next/standalone/.next/server/pages/de/500.html +1 -1
  249. package/.next/standalone/.next/server/pages/en/404.html +1 -1
  250. package/.next/standalone/.next/server/pages/en/500.html +1 -1
  251. package/.next/standalone/.next/server/pages/es/404.html +1 -1
  252. package/.next/standalone/.next/server/pages/es/500.html +1 -1
  253. package/.next/standalone/.next/server/pages/fr/404.html +1 -1
  254. package/.next/standalone/.next/server/pages/fr/500.html +1 -1
  255. package/.next/standalone/.next/server/pages/index/build-manifest.json +17 -17
  256. package/.next/standalone/.next/server/pages/index/client-build-manifest.json +1 -1
  257. package/.next/standalone/.next/server/pages/index/react-loadable-manifest.json +8 -10
  258. package/.next/standalone/.next/server/pages/index.js +18 -18
  259. package/.next/standalone/.next/server/pages/index.js.nft.json +1 -1
  260. package/.next/standalone/.next/server/pages/ja/404.html +1 -1
  261. package/.next/standalone/.next/server/pages/ja/500.html +1 -1
  262. package/.next/standalone/.next/server/pages/ko/404.html +1 -1
  263. package/.next/standalone/.next/server/pages/ko/500.html +1 -1
  264. package/.next/standalone/.next/server/pages/login/build-manifest.json +9 -10
  265. package/.next/standalone/.next/server/pages/login/client-build-manifest.json +1 -1
  266. package/.next/standalone/.next/server/pages/login.js +12 -12
  267. package/.next/standalone/.next/server/pages/login.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/pages/pt-BR/404.html +1 -1
  269. package/.next/standalone/.next/server/pages/pt-BR/500.html +1 -1
  270. package/.next/standalone/.next/server/pages/reports/build-manifest.json +17 -17
  271. package/.next/standalone/.next/server/pages/reports/client-build-manifest.json +1 -1
  272. package/.next/standalone/.next/server/pages/reports.js +18 -18
  273. package/.next/standalone/.next/server/pages/reports.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/pages/reset.js +7 -7
  275. package/.next/standalone/.next/server/pages/reset.js.nft.json +1 -1
  276. package/.next/standalone/.next/server/pages/ru/404.html +1 -1
  277. package/.next/standalone/.next/server/pages/ru/500.html +1 -1
  278. package/.next/standalone/.next/server/pages/stats/build-manifest.json +16 -16
  279. package/.next/standalone/.next/server/pages/stats/client-build-manifest.json +1 -1
  280. package/.next/standalone/.next/server/pages/stats.js +19 -19
  281. package/.next/standalone/.next/server/pages/stats.js.nft.json +1 -1
  282. package/.next/standalone/.next/server/pages/tools-required/build-manifest.json +3 -3
  283. package/.next/standalone/.next/server/pages/tools-required/client-build-manifest.json +1 -1
  284. package/.next/standalone/.next/server/pages/tools-required.js +8 -8
  285. package/.next/standalone/.next/server/pages/tools-required.js.nft.json +1 -1
  286. package/.next/standalone/.next/server/pages/tr/404.html +1 -1
  287. package/.next/standalone/.next/server/pages/tr/500.html +1 -1
  288. package/.next/standalone/.next/server/pages/webview/build-manifest.json +16 -16
  289. package/.next/standalone/.next/server/pages/webview/client-build-manifest.json +1 -1
  290. package/.next/standalone/.next/server/pages/webview.js +20 -20
  291. package/.next/standalone/.next/server/pages/webview.js.nft.json +1 -1
  292. package/.next/standalone/.next/server/pages/zh-CN/404.html +1 -1
  293. package/.next/standalone/.next/server/pages/zh-CN/500.html +1 -1
  294. package/.next/standalone/.next/server/pages/zh-TW/404.html +1 -1
  295. package/.next/standalone/.next/server/pages/zh-TW/500.html +1 -1
  296. package/.next/standalone/.next/server/pages-manifest.json +7 -0
  297. package/.next/standalone/.next/static/{gVdGG0_U0ysjrgmO5yh0M → X7BRO7ORR4bKFt1LXzGU8}/_buildManifest.js +13 -6
  298. package/.next/standalone/.next/static/chunks/0-7en.d6a3jki.js +1 -0
  299. package/.next/standalone/.next/static/chunks/0-p.9vdmq-_co.js +13 -0
  300. package/.next/standalone/.next/static/chunks/0-pm5wxsyxs3e.js +1 -0
  301. package/.next/standalone/.next/static/chunks/00ljvc.i_9p~6.js +1 -0
  302. package/.next/standalone/.next/static/chunks/01raz3nv-e~~d.js +1 -0
  303. package/.next/standalone/.next/static/chunks/01ul8lmr04ls3.js +1 -0
  304. package/.next/standalone/.next/static/chunks/024gkwka6p59k.js +1 -0
  305. package/.next/standalone/.next/static/chunks/{0.ecwkadp7-hq.js → 034_utxy1sujb.js} +1 -1
  306. package/.next/standalone/.next/static/chunks/038h8wl_~fi3u.js +1 -0
  307. package/.next/standalone/.next/static/chunks/038s7u_er9zkt.js +1 -0
  308. package/.next/standalone/.next/static/chunks/03ljx9csfmrpn.js +1 -0
  309. package/.next/standalone/.next/static/chunks/03sj62c3p8g11.js +1 -0
  310. package/.next/standalone/.next/static/chunks/{17l496oycdhjx.js → 03vck__37a5cl.js} +1 -1
  311. package/.next/standalone/.next/static/chunks/05b7zy0n0vhms.js +1 -0
  312. package/.next/standalone/.next/static/chunks/05kshd9vdrl4o.js +1 -0
  313. package/.next/standalone/.next/static/chunks/{0w_03xk_xkc5a.js → 05kyduw8swd_h.js} +1 -1
  314. package/.next/standalone/.next/static/chunks/05w~qu2zpvh2f.js +1 -0
  315. package/.next/standalone/.next/static/chunks/05zne4hn1v65k.js +24 -0
  316. package/.next/standalone/.next/static/chunks/06vobum5720oa.js +1 -0
  317. package/.next/standalone/.next/static/chunks/06vxx-4w.uvj0.js +23 -0
  318. package/.next/standalone/.next/static/chunks/06zq-2isv5vn6.js +1 -0
  319. package/.next/standalone/.next/static/chunks/{0fotmrplo6yc7.js → 07.5h~7~q9~1e.js} +1 -1
  320. package/.next/standalone/.next/static/chunks/071hdd91oy~.7.js +1 -0
  321. package/.next/standalone/.next/static/chunks/08e5.t4gotxaw.js +1 -0
  322. package/.next/standalone/.next/static/chunks/{0v6__.cfcitpl.js → 08qhrobub25u0.js} +1 -1
  323. package/.next/standalone/.next/static/chunks/08ttt2~ok56v6.js +1 -0
  324. package/.next/standalone/.next/static/chunks/{11wdicoufd516.js → 094_-.5.ue3p4.js} +1 -1
  325. package/.next/standalone/.next/static/chunks/09qd4fo1rz3it.js +1 -0
  326. package/.next/standalone/.next/static/chunks/09sf~1tyznv2b.js +1 -0
  327. package/.next/standalone/.next/static/chunks/09x4be2pfe6z0.js +1 -0
  328. package/.next/standalone/.next/static/chunks/0a7eicps6hbl6.js +1 -0
  329. package/.next/standalone/.next/static/chunks/{0i2uqmry6cyl_.js → 0c2_tqkbyti3h.js} +1 -1
  330. package/.next/standalone/.next/static/chunks/0di4o-khzv2gt.js +1 -0
  331. package/.next/standalone/.next/static/chunks/0e20ujygcf3hc.js +1 -0
  332. package/.next/standalone/.next/static/chunks/0e5t3kx~_brfk.js +1 -0
  333. package/.next/standalone/.next/static/chunks/0ebjicjua7yl-.js +1 -0
  334. package/.next/standalone/.next/static/chunks/0evu-825nnqef.js +1 -0
  335. package/.next/standalone/.next/static/chunks/0f.5lthmbt~yc.js +1 -0
  336. package/.next/standalone/.next/static/chunks/0gr4lznv-6qml.js +1 -0
  337. package/.next/standalone/.next/static/chunks/0hl3ccityypgx.js +1 -0
  338. package/.next/standalone/.next/static/chunks/0hzis~e79cnwi.js +1 -0
  339. package/.next/standalone/.next/static/chunks/0j.sfmmqj2xel.js +23 -0
  340. package/.next/standalone/.next/static/chunks/0jkvb4hgqlgxk.js +1 -0
  341. package/.next/standalone/.next/static/chunks/0k2_zze3o98ow.js +1 -0
  342. package/.next/standalone/.next/static/chunks/0kaufevqdhsld.js +1 -0
  343. package/.next/standalone/.next/static/chunks/0mvvym~9uf429.js +1 -0
  344. package/.next/standalone/.next/static/chunks/0n2k1al4sr_qq.css +1 -0
  345. package/.next/standalone/.next/static/chunks/0n4fv8.loh_0x.js +1 -0
  346. package/.next/standalone/.next/static/chunks/0nn618je7_7ec.js +16 -0
  347. package/.next/standalone/.next/static/chunks/{0pb15t~lqcp4y.js → 0oh5xnzizgxt1.js} +1 -1
  348. package/.next/standalone/.next/static/chunks/0po8l-8pns0vb.js +1 -0
  349. package/.next/standalone/.next/static/chunks/0pv9~yath4mjh.js +1 -0
  350. package/.next/standalone/.next/static/chunks/0q0yh17_ncipj.js +1 -0
  351. package/.next/standalone/.next/static/chunks/0q9nn4yuva4jl.js +1 -0
  352. package/.next/standalone/.next/static/chunks/0qkrdmhiv-0d3.js +1 -0
  353. package/.next/standalone/.next/static/chunks/{14xlpbx6dj_4i.js → 0r9z55-r31en8.js} +1 -1
  354. package/.next/standalone/.next/static/chunks/{0efkrks2gm27v.js → 0ra09kjja5rf..js} +1 -1
  355. package/.next/standalone/.next/static/chunks/0reai1zdu.khx.js +1 -0
  356. package/.next/standalone/.next/static/chunks/0sc7tkg1gojr..js +1 -0
  357. package/.next/standalone/.next/static/chunks/0szl_dovu0hgw.js +1 -0
  358. package/.next/standalone/.next/static/chunks/{0axhnd2vw3m5e.js → 0t-o-jwf0~-b5.js} +1 -1
  359. package/.next/standalone/.next/static/chunks/{0ml5~2ty-rbv_.js → 0t5w4x7owhfbe.js} +1 -1
  360. package/.next/standalone/.next/static/chunks/{02mfn213kze9c.js → 0te1jnz5.rt.r.js} +3 -3
  361. package/.next/standalone/.next/static/chunks/{0jxk8j~j30thp.js → 0u9yrtrs1bktp.js} +1 -1
  362. package/.next/standalone/.next/static/chunks/0uhkmh73bi.8w.js +1 -0
  363. package/.next/standalone/.next/static/chunks/0v6zafwjb5kk6.js +1 -0
  364. package/.next/standalone/.next/static/chunks/0vvqh.pfm9jum.js +1 -0
  365. package/.next/standalone/.next/static/chunks/0w6_q_4rzxy6l.js +1 -0
  366. package/.next/standalone/.next/static/chunks/0wjrfyntnywn5.js +1 -0
  367. package/.next/standalone/.next/static/chunks/0wvu-lowt9uem.js +1 -0
  368. package/.next/standalone/.next/static/chunks/0x.dxrfqc.ix9.js +16 -0
  369. package/.next/standalone/.next/static/chunks/0xvbx6ob2wnco.js +1 -0
  370. package/.next/standalone/.next/static/chunks/0yd3l8p2m9-c_.js +1 -0
  371. package/.next/standalone/.next/static/chunks/0ynitrrzdxcnh.js +15 -0
  372. package/.next/standalone/.next/static/chunks/0z_~g~mb.kjs1.js +1 -0
  373. package/.next/standalone/.next/static/chunks/0~nexgc77r_hk.js +23 -0
  374. package/.next/standalone/.next/static/chunks/{0afll97o4hu39.js → 0~ts_4hi7.u_0.js} +1 -1
  375. package/.next/standalone/.next/static/chunks/105sb_yg7fcpu.js +1 -0
  376. package/.next/standalone/.next/static/chunks/107edt81z_gzy.css +3 -0
  377. package/.next/standalone/.next/static/chunks/{0a0wcelktujjt.js → 119t_hwpxj_ko.js} +1 -1
  378. package/.next/standalone/.next/static/chunks/{128d.rbx4e4rt.js → 121i8u8byuotx.js} +1 -1
  379. package/.next/standalone/.next/static/chunks/13_l03e3sab-g.js +1 -0
  380. package/.next/standalone/.next/static/chunks/13~.y-z7wud.h.js +1 -0
  381. package/.next/standalone/.next/static/chunks/140j4evqxtxmn.js +1 -0
  382. package/.next/standalone/.next/static/chunks/142km8a40ar5o.js +1 -0
  383. package/.next/standalone/.next/static/chunks/149sb_-h03mxq.js +1 -0
  384. package/.next/standalone/.next/static/chunks/156~ejmpjxu8e.js +1 -0
  385. package/.next/standalone/.next/static/chunks/169ui~u~dpalg.js +1 -0
  386. package/.next/standalone/.next/static/chunks/16bag6z7n~ffw.js +1 -0
  387. package/.next/standalone/.next/static/chunks/171_ek.xwzobw.js +1 -0
  388. package/.next/standalone/.next/static/chunks/179zldqdb4pm2.js +1 -0
  389. package/.next/standalone/.next/static/chunks/{turbopack-0hwi_g-tegs_u.js → turbopack-0d-xk62f1t05v.js} +1 -1
  390. package/.next/standalone/.next/static/chunks/{turbopack-0yi-pm9y8p4fu.js → turbopack-0nn9kx.dkgwqs.js} +1 -1
  391. package/.next/standalone/.next/static/chunks/turbopack-0rb3q18bhb2hu.js +1 -0
  392. package/.next/standalone/.next/static/chunks/turbopack-0zcblahe.hdqd.js +1 -0
  393. package/.next/standalone/.next/static/chunks/{turbopack-06kgnfn.-xny..js → turbopack-0~wmco6ifn20m.js} +1 -1
  394. package/.next/standalone/.next/static/chunks/{turbopack-104j33xbofdmk.js → turbopack-1469mxaruw82d.js} +1 -1
  395. package/.next/standalone/.next/static/chunks/{turbopack-08ayk-1mt1q-w.js → turbopack-15bv~a4hbvh29.js} +1 -1
  396. package/.next/standalone/messages/de/diff.json +26 -1
  397. package/.next/standalone/messages/de/settings.json +3 -1
  398. package/.next/standalone/messages/de/sidebar.json +10 -1
  399. package/.next/standalone/messages/de/workspace.json +2 -0
  400. package/.next/standalone/messages/en/diff.json +26 -1
  401. package/.next/standalone/messages/en/settings.json +3 -1
  402. package/.next/standalone/messages/en/sidebar.json +10 -1
  403. package/.next/standalone/messages/en/workspace.json +2 -0
  404. package/.next/standalone/messages/es/diff.json +26 -1
  405. package/.next/standalone/messages/es/settings.json +3 -1
  406. package/.next/standalone/messages/es/sidebar.json +10 -1
  407. package/.next/standalone/messages/es/workspace.json +2 -0
  408. package/.next/standalone/messages/fr/diff.json +26 -1
  409. package/.next/standalone/messages/fr/settings.json +3 -1
  410. package/.next/standalone/messages/fr/sidebar.json +10 -1
  411. package/.next/standalone/messages/fr/workspace.json +2 -0
  412. package/.next/standalone/messages/ja/diff.json +26 -1
  413. package/.next/standalone/messages/ja/settings.json +3 -1
  414. package/.next/standalone/messages/ja/sidebar.json +10 -1
  415. package/.next/standalone/messages/ja/workspace.json +2 -0
  416. package/.next/standalone/messages/ko/diff.json +26 -1
  417. package/.next/standalone/messages/ko/settings.json +3 -1
  418. package/.next/standalone/messages/ko/sidebar.json +10 -1
  419. package/.next/standalone/messages/ko/workspace.json +2 -0
  420. package/.next/standalone/messages/pt-BR/diff.json +26 -1
  421. package/.next/standalone/messages/pt-BR/settings.json +3 -1
  422. package/.next/standalone/messages/pt-BR/sidebar.json +10 -1
  423. package/.next/standalone/messages/pt-BR/workspace.json +2 -0
  424. package/.next/standalone/messages/ru/diff.json +26 -1
  425. package/.next/standalone/messages/ru/settings.json +3 -1
  426. package/.next/standalone/messages/ru/sidebar.json +10 -1
  427. package/.next/standalone/messages/ru/workspace.json +2 -0
  428. package/.next/standalone/messages/tr/diff.json +26 -1
  429. package/.next/standalone/messages/tr/settings.json +3 -1
  430. package/.next/standalone/messages/tr/sidebar.json +10 -1
  431. package/.next/standalone/messages/tr/workspace.json +2 -0
  432. package/.next/standalone/messages/zh-CN/diff.json +26 -1
  433. package/.next/standalone/messages/zh-CN/settings.json +3 -1
  434. package/.next/standalone/messages/zh-CN/sidebar.json +10 -1
  435. package/.next/standalone/messages/zh-CN/workspace.json +2 -0
  436. package/.next/standalone/messages/zh-TW/diff.json +26 -1
  437. package/.next/standalone/messages/zh-TW/settings.json +3 -1
  438. package/.next/standalone/messages/zh-TW/sidebar.json +10 -1
  439. package/.next/standalone/messages/zh-TW/workspace.json +2 -0
  440. package/.next/standalone/package.json +4 -3
  441. package/.next/standalone/server.js +1 -1
  442. package/.next/standalone/src/pages/api/layout/commit-diff.ts +94 -0
  443. package/.next/standalone/src/pages/api/layout/cwd.ts +38 -0
  444. package/.next/standalone/src/pages/api/layout/diff.ts +196 -0
  445. package/.next/standalone/src/pages/api/layout/file-content.ts +130 -0
  446. package/.next/standalone/src/pages/api/layout/git-log.ts +55 -0
  447. package/.next/standalone/src/pages/api/layout/index.ts +38 -0
  448. package/.next/standalone/src/pages/api/layout/pane/[paneId]/index.ts +38 -0
  449. package/.next/standalone/src/pages/api/layout/pane/[paneId]/tabs/[tabId]/index.ts +94 -0
  450. package/.next/standalone/src/pages/api/layout/pane/[paneId]/tabs/[tabId]/move.ts +31 -0
  451. package/.next/standalone/src/pages/api/layout/pane/[paneId]/tabs/index.ts +66 -0
  452. package/.next/standalone/src/pages/api/layout/pane/[paneId]/tabs/order.ts +30 -0
  453. package/.next/standalone/src/pages/api/layout/pane/index.ts +38 -0
  454. package/dist/server.js +326 -12
  455. package/package.json +4 -3
  456. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0n61.a8._.js +0 -30
  457. package/.next/standalone/.next/server/chunks/_04pfden._.js +0 -3
  458. package/.next/standalone/.next/server/chunks/_0e8e4zn._.js +0 -3
  459. package/.next/standalone/.next/server/chunks/_0isokfh._.js +0 -3
  460. package/.next/standalone/.next/server/chunks/_0j2u-od._.js +0 -3
  461. package/.next/standalone/.next/server/chunks/_0t8j4qd._.js +0 -3
  462. package/.next/standalone/.next/server/chunks/_0uxocm.._.js +0 -3
  463. package/.next/standalone/.next/server/chunks/_0xd1ivw._.js +0 -3
  464. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07i-oza._.js +0 -3
  465. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0au.ssp._.js +0 -3
  466. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0c0bz7t._.js +0 -3
  467. package/.next/standalone/.next/server/chunks/ssr/_0-67bvb._.js +0 -3
  468. package/.next/standalone/.next/server/chunks/ssr/_02nf4d7._.js +0 -3
  469. package/.next/standalone/.next/server/chunks/ssr/_05dcjwi._.js +0 -3
  470. package/.next/standalone/.next/server/chunks/ssr/_06yggfn._.js +0 -3
  471. package/.next/standalone/.next/server/chunks/ssr/_0_owbnq._.js +0 -3
  472. package/.next/standalone/.next/server/chunks/ssr/_0al4.z9._.js +0 -3
  473. package/.next/standalone/.next/server/chunks/ssr/_0dg4_bi._.js +0 -3
  474. package/.next/standalone/.next/server/chunks/ssr/_0gp1meg._.js +0 -3
  475. package/.next/standalone/.next/server/chunks/ssr/_0hqzsa8._.js +0 -3
  476. package/.next/standalone/.next/server/chunks/ssr/_0iy5a-w._.js +0 -7
  477. package/.next/standalone/.next/server/chunks/ssr/_0nkeoiw._.js +0 -3
  478. package/.next/standalone/.next/server/chunks/ssr/_0ob2rr-._.js +0 -3
  479. package/.next/standalone/.next/server/chunks/ssr/_0qbbxeq._.js +0 -7
  480. package/.next/standalone/.next/server/chunks/ssr/_0ulmx3c._.js +0 -3
  481. package/.next/standalone/.next/server/chunks/ssr/_0wlh.pc._.js +0 -3
  482. package/.next/standalone/.next/server/chunks/ssr/_0~.theb._.js +0 -3
  483. package/.next/standalone/.next/server/chunks/ssr/_11rnj4l._.js +0 -3
  484. package/.next/standalone/.next/server/chunks/ssr/_124p60s._.js +0 -3
  485. package/.next/standalone/.next/server/chunks/ssr/node_modules_0kc8lix._.js +0 -3
  486. package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_react_esm_03v8q-a._.js +0 -3
  487. package/.next/standalone/.next/server/chunks/ssr/node_modules_@base-ui_react_esm_0wddb~n._.js +0 -3
  488. package/.next/standalone/.next/server/chunks/ssr/node_modules_highlight_js_lib_core_0h1yngz.js +0 -3
  489. package/.next/standalone/.next/server/chunks/ssr/src_lib_message-namespaces_ts_0wjpvu5._.js +0 -3
  490. package/.next/standalone/.next/static/chunks/0-8-cf3vuob~..js +0 -1
  491. package/.next/standalone/.next/static/chunks/0-97ruc25d2lz.js +0 -1
  492. package/.next/standalone/.next/static/chunks/0-xrsiia9hc.c.js +0 -1
  493. package/.next/standalone/.next/static/chunks/00g7isu_5s43..js +0 -1
  494. package/.next/standalone/.next/static/chunks/00nx1s6rpu537.js +0 -1
  495. package/.next/standalone/.next/static/chunks/00s-0sui~_24w.js +0 -1
  496. package/.next/standalone/.next/static/chunks/01-fb9rb-21.a.js +0 -1
  497. package/.next/standalone/.next/static/chunks/02dumv8n.ewiw.js +0 -1
  498. package/.next/standalone/.next/static/chunks/02r-a1_lz7fuk.js +0 -1
  499. package/.next/standalone/.next/static/chunks/03eaekq6omt65.js +0 -1
  500. package/.next/standalone/.next/static/chunks/04~p~.qz9diil.js +0 -1
  501. package/.next/standalone/.next/static/chunks/05_e09pgcymkh.js +0 -1
  502. package/.next/standalone/.next/static/chunks/05i5jeaz~7tg6.js +0 -1
  503. package/.next/standalone/.next/static/chunks/05y90.zbqijkv.js +0 -1
  504. package/.next/standalone/.next/static/chunks/06e51nokt~dtt.js +0 -1
  505. package/.next/standalone/.next/static/chunks/07-xm--o034du.js +0 -1
  506. package/.next/standalone/.next/static/chunks/072ccw0gkueqq.js +0 -1
  507. package/.next/standalone/.next/static/chunks/07i6~xrmgspp8.js +0 -1
  508. package/.next/standalone/.next/static/chunks/07rq~qv9ldwo~.js +0 -1
  509. package/.next/standalone/.next/static/chunks/08ip~fc41h84_.js +0 -24
  510. package/.next/standalone/.next/static/chunks/08vvx8xtxwt5o.js +0 -1
  511. package/.next/standalone/.next/static/chunks/09agwg~-xbxbs.js +0 -1
  512. package/.next/standalone/.next/static/chunks/0a1hi9y0lwv3j.js +0 -1
  513. package/.next/standalone/.next/static/chunks/0aizxgkga9-f..js +0 -5
  514. package/.next/standalone/.next/static/chunks/0ajkjqq1xc_.a.js +0 -1
  515. package/.next/standalone/.next/static/chunks/0chjvj73yfmoj.js +0 -1
  516. package/.next/standalone/.next/static/chunks/0d4vi6-ju6lha.js +0 -1
  517. package/.next/standalone/.next/static/chunks/0daflfjkvkh-d.js +0 -1
  518. package/.next/standalone/.next/static/chunks/0dl23f6c62aoa.js +0 -23
  519. package/.next/standalone/.next/static/chunks/0dqb3atw-kpb2.js +0 -1
  520. package/.next/standalone/.next/static/chunks/0fuay9akccsr9.js +0 -1
  521. package/.next/standalone/.next/static/chunks/0fwnzw~qq_abm.js +0 -1
  522. package/.next/standalone/.next/static/chunks/0h-7ntqpip4oi.js +0 -1
  523. package/.next/standalone/.next/static/chunks/0idah_uu8ylro.js +0 -1
  524. package/.next/standalone/.next/static/chunks/0ilhql60o6txw.js +0 -23
  525. package/.next/standalone/.next/static/chunks/0iw7xjsfo1v-u.js +0 -16
  526. package/.next/standalone/.next/static/chunks/0jj7ska-q4zmb.js +0 -1
  527. package/.next/standalone/.next/static/chunks/0k50-hp08.xtp.js +0 -1
  528. package/.next/standalone/.next/static/chunks/0n1xl_9xb64~a.js +0 -1
  529. package/.next/standalone/.next/static/chunks/0nh~2y4pr-6b-.js +0 -1
  530. package/.next/standalone/.next/static/chunks/0nyar-7g9rya6.js +0 -1
  531. package/.next/standalone/.next/static/chunks/0o_yi7-4-ckig.js +0 -1
  532. package/.next/standalone/.next/static/chunks/0otoymu09sgml.js +0 -1
  533. package/.next/standalone/.next/static/chunks/0oxlivdn8c89b.js +0 -1
  534. package/.next/standalone/.next/static/chunks/0plurywt71.qj.js +0 -1
  535. package/.next/standalone/.next/static/chunks/0r7uk81oh650e.js +0 -1
  536. package/.next/standalone/.next/static/chunks/0ro78lxc~ndn_.js +0 -1
  537. package/.next/standalone/.next/static/chunks/0t_38o03_pjwq.js +0 -1
  538. package/.next/standalone/.next/static/chunks/0tq53zgriddtp.js +0 -1
  539. package/.next/standalone/.next/static/chunks/0u9~wuf2zbs5z.js +0 -1
  540. package/.next/standalone/.next/static/chunks/0vmc7tq7ze-wk.js +0 -1
  541. package/.next/standalone/.next/static/chunks/0wlz6--vu7adu.js +0 -1
  542. package/.next/standalone/.next/static/chunks/0wp13r5su.j3e.js +0 -1
  543. package/.next/standalone/.next/static/chunks/0wx.aq674yk~q.js +0 -1
  544. package/.next/standalone/.next/static/chunks/0xas4ca5n6mzi.js +0 -1
  545. package/.next/standalone/.next/static/chunks/0xmalbon9eqvg.js +0 -1
  546. package/.next/standalone/.next/static/chunks/0y1_gk64rkp0g.js +0 -1
  547. package/.next/standalone/.next/static/chunks/0z3gpm0o.mwwy.css +0 -3
  548. package/.next/standalone/.next/static/chunks/0zz.9uk42mbks.js +0 -1
  549. package/.next/standalone/.next/static/chunks/0~ku-hjx17-lg.js +0 -5
  550. package/.next/standalone/.next/static/chunks/0~nlz9.lltzrz.js +0 -1
  551. package/.next/standalone/.next/static/chunks/10bvbbw1062os.js +0 -1
  552. package/.next/standalone/.next/static/chunks/10r8rypk5fanv.js +0 -1
  553. package/.next/standalone/.next/static/chunks/10wa7lt~l.b6d.js +0 -1
  554. package/.next/standalone/.next/static/chunks/11gch78bg_qsn.js +0 -1
  555. package/.next/standalone/.next/static/chunks/11nk1lwom62oe.js +0 -1
  556. package/.next/standalone/.next/static/chunks/131tx--pi8.tm.js +0 -1
  557. package/.next/standalone/.next/static/chunks/13nitezuv6q6x.js +0 -1
  558. package/.next/standalone/.next/static/chunks/13zzmkwag6vsm.css +0 -1
  559. package/.next/standalone/.next/static/chunks/13~7v30_nnqks.js +0 -1
  560. package/.next/standalone/.next/static/chunks/14bh~6-ggh.16.js +0 -23
  561. package/.next/standalone/.next/static/chunks/15hinpm-o8x5a.js +0 -12
  562. package/.next/standalone/.next/static/chunks/16dbi-ty-ptnr.js +0 -1
  563. package/.next/standalone/.next/static/chunks/17jcucuef_33-.js +0 -1
  564. package/.next/standalone/.next/static/chunks/186b1th1fl440.js +0 -1
  565. package/.next/standalone/.next/static/chunks/18d9u7jni2vco.js +0 -1
  566. package/.next/standalone/.next/static/chunks/turbopack-0950wwl2vzfu8.js +0 -1
  567. package/.next/standalone/.next/static/chunks/turbopack-0np.oib7-.1fp.js +0 -1
  568. /package/.next/standalone/.next/static/{gVdGG0_U0ysjrgmO5yh0M → X7BRO7ORR4bKFt1LXzGU8}/_clientMiddlewareManifest.js +0 -0
  569. /package/.next/standalone/.next/static/{gVdGG0_U0ysjrgmO5yh0M → X7BRO7ORR4bKFt1LXzGU8}/_ssgManifest.js +0 -0
@@ -0,0 +1,55 @@
1
+ import type { NextApiRequest, NextApiResponse } from 'next';
2
+ import { execFile as execFileCb } from 'child_process';
3
+ import { promisify } from 'util';
4
+ import { getSessionCwd, hasSession } from '@/lib/tmux';
5
+ import { getCommitLog } from '@/lib/git-log';
6
+ import { createLogger } from '@/lib/logger';
7
+
8
+ const execFile = promisify(execFileCb);
9
+ const log = createLogger('git-log');
10
+ const CMD_TIMEOUT = 5000;
11
+ const DEFAULT_LIMIT = 50;
12
+ const MAX_LIMIT = 500;
13
+
14
+ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
15
+ if (req.method !== 'GET') {
16
+ res.setHeader('Allow', 'GET');
17
+ return res.status(405).json({ error: 'Method not allowed' });
18
+ }
19
+
20
+ const session = req.query.session as string | undefined;
21
+ const limitParam = parseInt(req.query.limit as string, 10);
22
+ const limit = Math.min(Number.isFinite(limitParam) && limitParam > 0 ? limitParam : DEFAULT_LIMIT, MAX_LIMIT);
23
+ const skipParam = parseInt(req.query.skip as string, 10);
24
+ const skip = Number.isFinite(skipParam) && skipParam > 0 ? skipParam : 0;
25
+
26
+ if (!session) {
27
+ return res.status(400).json({ error: 'session parameter required' });
28
+ }
29
+
30
+ const exists = await hasSession(session);
31
+ if (!exists) {
32
+ return res.status(404).json({ error: 'Session not found' });
33
+ }
34
+
35
+ const cwd = await getSessionCwd(session);
36
+ if (!cwd) {
37
+ return res.status(500).json({ error: 'Failed to get CWD' });
38
+ }
39
+
40
+ try {
41
+ await execFile('git', ['-C', cwd, 'rev-parse', '--is-inside-work-tree'], { timeout: CMD_TIMEOUT });
42
+ } catch {
43
+ return res.status(200).json({ isGitRepo: false, commits: [] });
44
+ }
45
+
46
+ try {
47
+ const result = await getCommitLog(cwd, limit, skip);
48
+ return res.status(200).json({ isGitRepo: true, ...result });
49
+ } catch (err) {
50
+ log.error(`git log failed: ${err instanceof Error ? err.message : err}`);
51
+ return res.status(500).json({ error: 'Failed to get commit log' });
52
+ }
53
+ };
54
+
55
+ export default handler;
@@ -0,0 +1,38 @@
1
+ import type { NextApiRequest, NextApiResponse } from 'next';
2
+ import { getLayout, patchLayout } from '@/lib/layout-store';
3
+ import { getActiveWorkspaceId, getWorkspaceById } from '@/lib/workspace-store';
4
+ import { createLogger } from '@/lib/logger';
5
+
6
+ const log = createLogger('layout');
7
+
8
+ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
9
+ const wsId = (req.query.workspace as string) || await getActiveWorkspaceId();
10
+ if (!wsId) {
11
+ return res.status(400).json({ error: 'No workspace found' });
12
+ }
13
+
14
+ if (req.method === 'GET') {
15
+ try {
16
+ const ws = await getWorkspaceById(wsId);
17
+ const layout = await getLayout(wsId, ws?.directories[0]);
18
+ return res.status(200).json(layout);
19
+ } catch (err) {
20
+ log.error(`GET failed: ${err instanceof Error ? err.message : err}`);
21
+ return res.status(500).json({ error: 'Failed to load layout' });
22
+ }
23
+ }
24
+
25
+ if (req.method === 'PATCH') {
26
+ const { activePaneId, ratioUpdate, equalize } = req.body ?? {};
27
+ const result = await patchLayout(wsId, { activePaneId, ratioUpdate, equalize });
28
+ if (!result) {
29
+ return res.status(404).json({ error: 'Target not found' });
30
+ }
31
+ return res.status(200).json(result);
32
+ }
33
+
34
+ res.setHeader('Allow', 'GET, PATCH');
35
+ return res.status(405).json({ error: 'Method not allowed' });
36
+ };
37
+
38
+ export default handler;
@@ -0,0 +1,38 @@
1
+ import type { NextApiRequest, NextApiResponse } from 'next';
2
+ import { deletePane, patchPane, closePaneInLayout } from '@/lib/layout-store';
3
+ import { getActiveWorkspaceId } from '@/lib/workspace-store';
4
+
5
+ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
6
+ const wsId = (req.query.workspace as string) || await getActiveWorkspaceId();
7
+ const paneId = req.query.paneId as string;
8
+
9
+ if (req.method === 'DELETE') {
10
+ if (!wsId) {
11
+ const sessions: string[] = req.body?.sessions ?? [];
12
+ await deletePane(paneId, sessions);
13
+ return res.status(204).end();
14
+ }
15
+ const result = await closePaneInLayout(wsId, paneId);
16
+ if (!result) {
17
+ return res.status(404).json({ error: 'Pane not found' });
18
+ }
19
+ return res.status(200).json(result);
20
+ }
21
+
22
+ if (req.method === 'PATCH') {
23
+ if (!wsId) {
24
+ return res.status(400).json({ error: 'No workspace found' });
25
+ }
26
+ const { activeTabId } = req.body ?? {};
27
+ const result = await patchPane(wsId, paneId, { activeTabId });
28
+ if (!result) {
29
+ return res.status(404).json({ error: 'Target not found' });
30
+ }
31
+ return res.status(200).json(result);
32
+ }
33
+
34
+ res.setHeader('Allow', 'DELETE, PATCH');
35
+ return res.status(405).json({ error: 'Method not allowed' });
36
+ };
37
+
38
+ export default handler;
@@ -0,0 +1,94 @@
1
+ import type { NextApiRequest, NextApiResponse } from 'next';
2
+ import { removeTabFromPane, restartTabSession, patchTab } from '@/lib/layout-store';
3
+ import { getActiveWorkspaceId } from '@/lib/workspace-store';
4
+ import { getStatusManager } from '@/lib/status-manager';
5
+ import { createLogger } from '@/lib/logger';
6
+ import type { ITab } from '@/types/terminal';
7
+
8
+ const log = createLogger('layout');
9
+
10
+ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
11
+ const wsId = (req.query.workspace as string) || await getActiveWorkspaceId();
12
+ if (!wsId) {
13
+ return res.status(400).json({ error: 'No workspace found' });
14
+ }
15
+
16
+ const paneId = req.query.paneId as string;
17
+ const tabId = req.query.tabId as string;
18
+
19
+ if (req.method === 'DELETE') {
20
+ const found = await removeTabFromPane(wsId, paneId, tabId);
21
+ if (!found) {
22
+ return res.status(404).json({ error: 'Tab not found' });
23
+ }
24
+ getStatusManager().removeTab(tabId);
25
+ return res.status(204).end();
26
+ }
27
+
28
+ if (req.method === 'POST') {
29
+ try {
30
+ const { command } = req.body ?? {};
31
+ const ok = await restartTabSession(wsId, paneId, tabId, command);
32
+ if (!ok) {
33
+ return res.status(404).json({ error: 'Tab not found' });
34
+ }
35
+ return res.status(200).json({ ok: true });
36
+ } catch (err) {
37
+ log.error(`tab restart failed: ${err instanceof Error ? err.message : err}`);
38
+ return res.status(500).json({ error: 'Failed to restart session' });
39
+ }
40
+ }
41
+
42
+ if (req.method === 'PATCH') {
43
+ const { name, panelType, title, cwd, lastCommand, webUrl, terminalRatio, terminalCollapsed } = req.body ?? {};
44
+
45
+ if (
46
+ name !== undefined ||
47
+ panelType !== undefined ||
48
+ title !== undefined ||
49
+ cwd !== undefined ||
50
+ lastCommand !== undefined ||
51
+ webUrl !== undefined ||
52
+ terminalRatio !== undefined ||
53
+ terminalCollapsed !== undefined
54
+ ) {
55
+ const patch: Partial<Pick<ITab, 'name' | 'panelType' | 'title' | 'cwd' | 'lastCommand' | 'webUrl' | 'terminalRatio' | 'terminalCollapsed'>> = {};
56
+ if (name !== undefined) {
57
+ if (typeof name !== 'string') {
58
+ return res.status(400).json({ error: 'name must be a string' });
59
+ }
60
+ patch.name = name.trim();
61
+ }
62
+ if (panelType !== undefined) patch.panelType = panelType;
63
+ if (title !== undefined) patch.title = title;
64
+ if (cwd !== undefined) patch.cwd = cwd;
65
+ if (lastCommand !== undefined) patch.lastCommand = lastCommand;
66
+ if (webUrl !== undefined) patch.webUrl = webUrl;
67
+ if (terminalRatio !== undefined) {
68
+ if (typeof terminalRatio !== 'number' || !Number.isFinite(terminalRatio)) {
69
+ return res.status(400).json({ error: 'terminalRatio must be a number' });
70
+ }
71
+ patch.terminalRatio = Math.max(0, Math.min(100, terminalRatio));
72
+ }
73
+ if (terminalCollapsed !== undefined) {
74
+ if (typeof terminalCollapsed !== 'boolean') {
75
+ return res.status(400).json({ error: 'terminalCollapsed must be a boolean' });
76
+ }
77
+ patch.terminalCollapsed = terminalCollapsed;
78
+ }
79
+
80
+ const result = await patchTab(wsId, paneId, tabId, patch);
81
+ if (!result) {
82
+ return res.status(404).json({ error: 'Tab not found' });
83
+ }
84
+ return res.status(200).json(result);
85
+ }
86
+
87
+ return res.status(400).json({ error: 'No fields to update' });
88
+ }
89
+
90
+ res.setHeader('Allow', 'POST, DELETE, PATCH');
91
+ return res.status(405).json({ error: 'Method not allowed' });
92
+ };
93
+
94
+ export default handler;
@@ -0,0 +1,31 @@
1
+ import type { NextApiRequest, NextApiResponse } from 'next';
2
+ import { moveTabBetweenPanes } from '@/lib/layout-store';
3
+ import { getActiveWorkspaceId } from '@/lib/workspace-store';
4
+
5
+ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
6
+ if (req.method !== 'POST') {
7
+ res.setHeader('Allow', 'POST');
8
+ return res.status(405).json({ error: 'Method not allowed' });
9
+ }
10
+
11
+ const wsId = (req.query.workspace as string) || await getActiveWorkspaceId();
12
+ if (!wsId) {
13
+ return res.status(400).json({ error: 'No workspace found' });
14
+ }
15
+
16
+ const tabId = req.query.tabId as string;
17
+ const fromPaneId = req.query.paneId as string;
18
+ const { toPaneId, toIndex } = req.body ?? {};
19
+
20
+ if (!toPaneId || toIndex === undefined) {
21
+ return res.status(400).json({ error: 'toPaneId and toIndex required' });
22
+ }
23
+
24
+ const result = await moveTabBetweenPanes(wsId, tabId, fromPaneId, toPaneId, toIndex);
25
+ if (!result) {
26
+ return res.status(404).json({ error: 'Target not found' });
27
+ }
28
+ return res.status(200).json(result);
29
+ };
30
+
31
+ export default handler;
@@ -0,0 +1,66 @@
1
+ import type { NextApiRequest, NextApiResponse } from 'next';
2
+ import { addTabToPane, updateTabClaudeSessionId } from '@/lib/layout-store';
3
+ import { getActiveWorkspaceId } from '@/lib/workspace-store';
4
+ import { getStatusManager } from '@/lib/status-manager';
5
+ import { buildResumeCommand, isValidSessionId } from '@/lib/claude-command';
6
+ import { sendKeys } from '@/lib/tmux';
7
+ import { createLogger } from '@/lib/logger';
8
+
9
+ const log = createLogger('layout');
10
+
11
+ const SHELL_READY_DELAY_MS = 500;
12
+
13
+ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
14
+ if (req.method !== 'POST') {
15
+ res.setHeader('Allow', 'POST');
16
+ return res.status(405).json({ error: 'Method not allowed' });
17
+ }
18
+
19
+ const wsId = (req.query.workspace as string) || await getActiveWorkspaceId();
20
+ if (!wsId) {
21
+ return res.status(400).json({ error: 'No workspace found' });
22
+ }
23
+
24
+ const paneId = req.query.paneId as string;
25
+ const { name, cwd, panelType, command, resumeSessionId } = req.body ?? {};
26
+ if (resumeSessionId && !isValidSessionId(resumeSessionId)) {
27
+ return res.status(400).json({ error: 'Invalid session ID format' });
28
+ }
29
+
30
+ try {
31
+ const tab = await addTabToPane(wsId, paneId, name, cwd, panelType, command);
32
+ if (!tab) {
33
+ return res.status(404).json({ error: 'Pane not found' });
34
+ }
35
+ if (tab.panelType !== 'web-browser') {
36
+ getStatusManager().registerTab(tab.id, {
37
+ cliState: 'inactive',
38
+ workspaceId: wsId,
39
+ tabName: tab.name,
40
+ tmuxSession: tab.sessionName,
41
+ lastEvent: null,
42
+ eventSeq: 0,
43
+ });
44
+ }
45
+
46
+ if (resumeSessionId && !command) {
47
+ await updateTabClaudeSessionId(tab.sessionName, resumeSessionId);
48
+ tab.claudeSessionId = resumeSessionId;
49
+ setTimeout(async () => {
50
+ try {
51
+ const resumeCmd = await buildResumeCommand(resumeSessionId, wsId);
52
+ await sendKeys(tab.sessionName, resumeCmd);
53
+ } catch (err) {
54
+ log.warn(`resume sendKeys failed: ${err instanceof Error ? err.message : err}`);
55
+ }
56
+ }, SHELL_READY_DELAY_MS);
57
+ }
58
+
59
+ return res.status(200).json(tab);
60
+ } catch (err) {
61
+ log.error(`tab creation failed: ${err instanceof Error ? err.message : err}`);
62
+ return res.status(500).json({ error: 'Failed to create tab' });
63
+ }
64
+ };
65
+
66
+ export default handler;
@@ -0,0 +1,30 @@
1
+ import type { NextApiRequest, NextApiResponse } from 'next';
2
+ import { reorderTabsInPane } from '@/lib/layout-store';
3
+ import { getActiveWorkspaceId } from '@/lib/workspace-store';
4
+
5
+ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
6
+ if (req.method !== 'PATCH') {
7
+ res.setHeader('Allow', 'PATCH');
8
+ return res.status(405).json({ error: 'Method not allowed' });
9
+ }
10
+
11
+ const wsId = (req.query.workspace as string) || await getActiveWorkspaceId();
12
+ if (!wsId) {
13
+ return res.status(400).json({ error: 'No workspace found' });
14
+ }
15
+
16
+ const paneId = req.query.paneId as string;
17
+ const { tabIds } = req.body ?? {};
18
+
19
+ if (!Array.isArray(tabIds) || tabIds.length === 0) {
20
+ return res.status(400).json({ error: 'tabIds array required' });
21
+ }
22
+
23
+ const result = await reorderTabsInPane(wsId, paneId, tabIds);
24
+ if (!result) {
25
+ return res.status(404).json({ error: 'Target not found' });
26
+ }
27
+ return res.status(200).json(result);
28
+ };
29
+
30
+ export default handler;
@@ -0,0 +1,38 @@
1
+ import type { NextApiRequest, NextApiResponse } from 'next';
2
+ import { createPane, splitPaneInLayout } from '@/lib/layout-store';
3
+ import { getActiveWorkspaceId } from '@/lib/workspace-store';
4
+ import { createLogger } from '@/lib/logger';
5
+
6
+ const log = createLogger('layout');
7
+
8
+ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
9
+ if (req.method !== 'POST') {
10
+ res.setHeader('Allow', 'POST');
11
+ return res.status(405).json({ error: 'Method not allowed' });
12
+ }
13
+
14
+ const wsId = (req.query.workspace as string) || await getActiveWorkspaceId();
15
+ if (!wsId) {
16
+ return res.status(400).json({ error: 'No workspace found' });
17
+ }
18
+
19
+ try {
20
+ const { sourcePaneId, orientation, cwd, panelType } = req.body ?? {};
21
+
22
+ if (sourcePaneId && orientation) {
23
+ const result = await splitPaneInLayout(wsId, sourcePaneId, orientation, cwd, panelType);
24
+ if (!result) {
25
+ return res.status(404).json({ error: 'Target pane not found' });
26
+ }
27
+ return res.status(200).json(result);
28
+ }
29
+
30
+ const result = await createPane(wsId, cwd);
31
+ return res.status(200).json(result);
32
+ } catch (err) {
33
+ log.error(`pane creation failed: ${err instanceof Error ? err.message : err}`);
34
+ return res.status(500).json({ error: 'Failed to create pane' });
35
+ }
36
+ };
37
+
38
+ export default handler;