@jlongo78/agent-spaces 0.10.0-beta.2 → 0.10.0-beta.4

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 (721) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +2 -2
  3. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
  4. package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
  5. package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/(desktop)/cortex/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  18. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  26. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  27. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  28. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  30. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  31. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  32. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  33. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  34. package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
  35. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  38. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
  40. package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
  41. package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
  42. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
  43. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  44. package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
  45. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
  47. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  48. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  49. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
  50. package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
  52. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
  53. package/.next/standalone/.next/server/app/analytics.html +1 -1
  54. package/.next/standalone/.next/server/app/analytics.rsc +2 -2
  55. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
  59. package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
  60. package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
  61. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  62. package/.next/standalone/.next/server/app/api/admin/analytics/route.js +4 -2
  63. package/.next/standalone/.next/server/app/api/admin/analytics/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js +4 -2
  65. package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/users/route.js +4 -2
  67. package/.next/standalone/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/analytics/overview/route.js +5 -4
  69. package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/auth/login/route.js +3 -2
  71. package/.next/standalone/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/auth/logout/route.js +2 -2
  73. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/me/route.js +3 -2
  75. package/.next/standalone/.next/server/app/api/auth/me/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js +2 -2
  77. package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/totp/status/route.js +2 -2
  79. package/.next/standalone/.next/server/app/api/auth/totp/status/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js +3 -2
  81. package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js +4 -3
  83. package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/benchmark/run/route.js +4 -3
  85. package/.next/standalone/.next/server/app/api/benchmark/run/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js +4 -3
  87. package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/api/benchmark/runs/route.js +4 -3
  89. package/.next/standalone/.next/server/app/api/benchmark/runs/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/benchmark/status/route.js +4 -3
  91. package/.next/standalone/.next/server/app/api/benchmark/status/route.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/api/bulk/route.js +5 -4
  93. package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/api/chat/route.js +4 -2
  95. package/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/claude/usage/route.js +5 -4
  97. package/.next/standalone/.next/server/app/api/claude/usage/route.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/api/config/route.js +3 -3
  99. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/cortex/context/route.js +4 -3
  101. package/.next/standalone/.next/server/app/api/cortex/context/route.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js +4 -3
  103. package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js +4 -3
  105. package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js.nft.json +1 -1
  106. package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js +4 -3
  107. package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js +4 -3
  109. package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js +4 -3
  111. package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/cortex/export/route.js +4 -3
  113. package/.next/standalone/.next/server/app/api/cortex/export/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js +4 -3
  115. package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js +4 -3
  117. package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js +4 -3
  119. package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js +4 -3
  121. package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js +4 -3
  123. package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js +4 -3
  125. package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js +4 -3
  127. package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js +4 -3
  129. package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/cortex/import/route.js +4 -3
  131. package/.next/standalone/.next/server/app/api/cortex/import/route.js.nft.json +1 -1
  132. package/.next/standalone/.next/server/app/api/cortex/import/status/route.js +4 -3
  133. package/.next/standalone/.next/server/app/api/cortex/import/status/route.js.nft.json +1 -1
  134. package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js +4 -3
  135. package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js +4 -3
  137. package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js +4 -3
  139. package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js +4 -3
  141. package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js +4 -3
  143. package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/cortex/lobes/route.js +4 -3
  145. package/.next/standalone/.next/server/app/api/cortex/lobes/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js +4 -3
  147. package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js +3 -3
  149. package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js +3 -3
  151. package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js +4 -3
  153. package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js +4 -3
  155. package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/cortex/search/route.js +4 -3
  157. package/.next/standalone/.next/server/app/api/cortex/search/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/cortex/settings/route.js +4 -3
  159. package/.next/standalone/.next/server/app/api/cortex/settings/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/cortex/status/route.js +4 -3
  161. package/.next/standalone/.next/server/app/api/cortex/status/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/cortex/timeline/route.js +4 -3
  163. package/.next/standalone/.next/server/app/api/cortex/timeline/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/cortex/usage/route.js +4 -3
  165. package/.next/standalone/.next/server/app/api/cortex/usage/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js +4 -3
  167. package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/events/route.js +5 -3
  169. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/files/route.js +3 -2
  171. package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/folders/route.js +3 -3
  173. package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/network/connect-callback/route.js +2 -2
  175. package/.next/standalone/.next/server/app/api/network/connect-callback/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/network/connect-request/[id]/route.js +2 -2
  177. package/.next/standalone/.next/server/app/api/network/connect-request/[id]/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/network/connect-request/route.js +2 -2
  179. package/.next/standalone/.next/server/app/api/network/connect-request/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/network/discovered/route.js +2 -2
  181. package/.next/standalone/.next/server/app/api/network/discovered/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/network/handshake/route.js +4 -3
  183. package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/network/health/route.js +2 -2
  185. package/.next/standalone/.next/server/app/api/network/health/route.js.nft.json +1 -1
  186. package/.next/standalone/.next/server/app/api/network/identity/route.js +2 -2
  187. package/.next/standalone/.next/server/app/api/network/identity/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js +2 -2
  189. package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/network/keys/route.js +2 -2
  191. package/.next/standalone/.next/server/app/api/network/keys/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js +2 -2
  193. package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/network/nodes/check/route.js +2 -2
  195. package/.next/standalone/.next/server/app/api/network/nodes/check/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/network/nodes/route.js +2 -2
  197. package/.next/standalone/.next/server/app/api/network/nodes/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js +6 -5
  199. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/network/panes/route.js +6 -5
  201. package/.next/standalone/.next/server/app/api/network/panes/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/network/projects/route.js +6 -5
  203. package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js +2 -2
  205. package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/network/search/route.js +6 -5
  207. package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js +6 -5
  209. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
  210. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js +6 -5
  211. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
  212. package/.next/standalone/.next/server/app/api/network/sessions/route.js +6 -5
  213. package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/network/terminal/token/route.js +2 -2
  215. package/.next/standalone/.next/server/app/api/network/terminal/token/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +6 -5
  217. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/network/workspaces/route.js +6 -5
  219. package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
  220. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js +5 -4
  221. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js.nft.json +1 -1
  222. package/.next/standalone/.next/server/app/api/panes/[id]/route.js +5 -4
  223. package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
  224. package/.next/standalone/.next/server/app/api/panes/route.js +5 -4
  225. package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
  226. package/.next/standalone/.next/server/app/api/projects/route.js +5 -4
  227. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  228. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js +3 -3
  229. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js +3 -3
  231. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/api/search/route.js +6 -5
  233. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  234. package/.next/standalone/.next/server/app/api/server-config/route.js +2 -2
  235. package/.next/standalone/.next/server/app/api/server-config/route.js.nft.json +1 -1
  236. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +5 -3
  237. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
  238. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +5 -4
  239. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +5 -4
  241. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/sessions/route.js +6 -5
  243. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  244. package/.next/standalone/.next/server/app/api/sync/route.js +4 -3
  245. package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/tags/route.js +5 -4
  247. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
  248. package/.next/standalone/.next/server/app/api/tier/route.js +4 -3
  249. package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
  250. package/.next/standalone/.next/server/app/api/updates/route.js +2 -2
  251. package/.next/standalone/.next/server/app/api/updates/route.js.nft.json +1 -1
  252. package/.next/standalone/.next/server/app/api/whisper/config/route.js +2 -2
  253. package/.next/standalone/.next/server/app/api/whisper/config/route.js.nft.json +1 -1
  254. package/.next/standalone/.next/server/app/api/whisper/route.js +2 -2
  255. package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
  256. package/.next/standalone/.next/server/app/api/wizard/chat/route.js +3 -3
  257. package/.next/standalone/.next/server/app/api/wizard/chat/route.js.nft.json +1 -1
  258. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +5 -3
  259. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
  260. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +5 -3
  261. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
  262. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +5 -3
  263. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
  264. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +5 -3
  265. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
  266. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +5 -4
  267. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +5 -4
  269. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
  270. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js +5 -4
  271. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js +5 -4
  273. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/app/api/workspaces/route.js +6 -5
  275. package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  276. package/.next/standalone/.next/server/app/cortex.html +1 -1
  277. package/.next/standalone/.next/server/app/cortex.rsc +2 -2
  278. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex/__PAGE__.segment.rsc +1 -1
  279. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex.segment.rsc +1 -1
  280. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  281. package/.next/standalone/.next/server/app/cortex.segments/_full.segment.rsc +2 -2
  282. package/.next/standalone/.next/server/app/cortex.segments/_head.segment.rsc +1 -1
  283. package/.next/standalone/.next/server/app/cortex.segments/_index.segment.rsc +2 -2
  284. package/.next/standalone/.next/server/app/cortex.segments/_tree.segment.rsc +2 -2
  285. package/.next/standalone/.next/server/app/icon.png/route.js +2 -2
  286. package/.next/standalone/.next/server/app/icon.png/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/login.html +1 -1
  289. package/.next/standalone/.next/server/app/login.rsc +2 -2
  290. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
  291. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  292. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
  293. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  294. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  295. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  296. package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
  298. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  299. package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
  300. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
  301. package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
  302. package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
  303. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
  304. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
  305. package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
  306. package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
  307. package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
  308. package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  310. package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
  311. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
  312. package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
  313. package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
  314. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
  315. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
  316. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
  317. package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
  318. package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
  319. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  320. package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
  321. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
  322. package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
  323. package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
  324. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
  325. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
  326. package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
  327. package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
  328. package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
  329. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  330. package/.next/standalone/.next/server/app/m/terminal.rsc +2 -2
  331. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +2 -2
  332. package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
  333. package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
  334. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
  335. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
  336. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
  337. package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
  338. package/.next/standalone/.next/server/app/m.html +1 -1
  339. package/.next/standalone/.next/server/app/m.rsc +2 -2
  340. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
  341. package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
  342. package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
  343. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
  344. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
  345. package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
  346. package/.next/standalone/.next/server/app/network.html +1 -1
  347. package/.next/standalone/.next/server/app/network.rsc +2 -2
  348. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
  349. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
  350. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  351. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
  352. package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
  353. package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
  354. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
  355. package/.next/standalone/.next/server/app/projects.html +1 -1
  356. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  357. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
  358. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
  359. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  360. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  361. package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  362. package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  363. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  364. package/.next/standalone/.next/server/app/sessions.html +1 -1
  365. package/.next/standalone/.next/server/app/sessions.rsc +2 -2
  366. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
  367. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
  368. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  369. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
  370. package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  371. package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
  372. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  373. package/.next/standalone/.next/server/app/settings.html +1 -1
  374. package/.next/standalone/.next/server/app/settings.rsc +2 -2
  375. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
  376. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
  377. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  378. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  379. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  380. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  381. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  382. package/.next/standalone/.next/server/app/terminal.html +1 -1
  383. package/.next/standalone/.next/server/app/terminal.rsc +3 -3
  384. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
  385. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
  386. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  387. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +3 -3
  388. package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  389. package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
  390. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
  391. package/.next/standalone/.next/server/app/vr/page_client-reference-manifest.js +1 -1
  392. package/.next/standalone/.next/server/app/vr.html +1 -1
  393. package/.next/standalone/.next/server/app/vr.rsc +2 -2
  394. package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +2 -2
  395. package/.next/standalone/.next/server/app/vr.segments/_head.segment.rsc +1 -1
  396. package/.next/standalone/.next/server/app/vr.segments/_index.segment.rsc +2 -2
  397. package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +2 -2
  398. package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +1 -1
  399. package/.next/standalone/.next/server/app/vr.segments/vr.segment.rsc +1 -1
  400. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  401. package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
  402. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
  403. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
  404. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  405. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
  406. package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
  407. package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
  408. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  409. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cf5ebdb._.js +3 -0
  410. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f15af1e._.js +78 -0
  411. package/.next/standalone/.next/server/chunks/[root-of-the-server]__107eab8a._.js +3 -0
  412. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1094360c._.js +1 -1
  413. package/.next/standalone/.next/server/chunks/[root-of-the-server]__118ea5e0._.js +42 -0
  414. package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +5 -5
  415. package/.next/standalone/.next/server/chunks/[root-of-the-server]__16d4da21._.js +3 -0
  416. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c542684._.js +3 -0
  417. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f23bae4._.js +3 -0
  418. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1faefa3e._.js +19 -0
  419. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2145098e._.js +42 -0
  420. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2748c76c._.js +42 -0
  421. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2c08d908._.js +3 -0
  422. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2e29b4bd._.js +3 -0
  423. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e3ecfd17._.js → [root-of-the-server]__34fd47d2._.js} +3 -3
  424. package/.next/standalone/.next/server/chunks/[root-of-the-server]__366b6cec._.js +78 -0
  425. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4d51508f._.js +3 -0
  426. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5663673e._.js +3 -0
  427. package/.next/standalone/.next/server/chunks/[root-of-the-server]__57e0cc31._.js +133 -0
  428. package/.next/standalone/.next/server/chunks/[root-of-the-server]__57ebbe63._.js +42 -0
  429. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d3345e4._.js +3 -0
  430. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5ee7aa9d._.js +11 -0
  431. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60caf825._.js +3 -0
  432. package/.next/standalone/.next/server/chunks/[root-of-the-server]__65c9857f._.js +3 -0
  433. package/.next/standalone/.next/server/chunks/[root-of-the-server]__678f6823._.js +3 -0
  434. package/.next/standalone/.next/server/chunks/[root-of-the-server]__685c95d8._.js +3 -0
  435. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__41d4d426._.js → [root-of-the-server]__69568dc2._.js} +1 -1
  436. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6a0bc4ae._.js +3 -0
  437. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b876561._.js +3 -0
  438. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e89713c._.js +42 -0
  439. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f713737._.js +3 -0
  440. package/.next/standalone/.next/server/chunks/[root-of-the-server]__725f10f4._.js +78 -0
  441. package/.next/standalone/.next/server/chunks/[root-of-the-server]__785b0597._.js +38 -0
  442. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7c728bed._.js +3 -0
  443. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7da958b5._.js +42 -0
  444. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7daed406._.js +3 -0
  445. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7f140e4b._.js +78 -0
  446. package/.next/standalone/.next/server/chunks/[root-of-the-server]__80d826f7._.js +3 -0
  447. package/.next/standalone/.next/server/chunks/[root-of-the-server]__83a3c97b._.js +3 -0
  448. package/.next/standalone/.next/server/chunks/[root-of-the-server]__84c15a0e._.js +3 -0
  449. package/.next/standalone/.next/server/chunks/[root-of-the-server]__85c33341._.js +42 -0
  450. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88f3d920._.js +78 -0
  451. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c916e85._.js +3 -0
  452. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8deb2ae3._.js +3 -0
  453. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8df5a740._.js +3 -0
  454. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8f238bd9._.js +3 -0
  455. package/.next/standalone/.next/server/chunks/[root-of-the-server]__955ab668._.js +3 -0
  456. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9a061e91._.js +42 -0
  457. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a04a87d5._.js +42 -0
  458. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a803051f._.js +42 -0
  459. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac0a9b09._.js +3 -0
  460. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac3e37b6._.js +13 -0
  461. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__96685488._.js → [root-of-the-server]__add9e50d._.js} +1 -1
  462. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b57f4274._.js +3 -0
  463. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b84b3426._.js +3 -0
  464. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba8224a1._.js +42 -0
  465. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd1c1d0d._.js +42 -0
  466. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1442c38._.js +42 -0
  467. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c18bdab2._.js +42 -0
  468. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1efc6a8._.js +3 -0
  469. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c697b87e._.js +3 -0
  470. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c6dc43c6._.js +3 -0
  471. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccce7f4f._.js +78 -0
  472. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d92f347c._.js +3 -0
  473. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dac9e21e._.js +3 -0
  474. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3f9ddbc._.js +78 -0
  475. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e66fc05f._.js +3 -0
  476. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e7add82c._.js +3 -0
  477. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fa9a5ec0._.js +42 -0
  478. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ff9f6af0._.js +42 -0
  479. package/.next/standalone/.next/server/chunks/_0142f96b._.js +3 -0
  480. package/.next/standalone/.next/server/chunks/_0ebd30d3._.js +3 -0
  481. package/.next/standalone/.next/server/chunks/_19a59078._.js +3 -0
  482. package/.next/standalone/.next/server/chunks/_1bc02021._.js +11 -0
  483. package/.next/standalone/.next/server/chunks/_1e381a28._.js +3 -0
  484. package/.next/standalone/.next/server/chunks/_2699eda7._.js +3 -0
  485. package/.next/standalone/.next/server/chunks/_2fd02f70._.js +3 -0
  486. package/.next/standalone/.next/server/chunks/_373d522f._.js +3 -0
  487. package/.next/standalone/.next/server/chunks/_43fc1196._.js +3 -0
  488. package/.next/standalone/.next/server/chunks/_48ec4374._.js +3 -0
  489. package/.next/standalone/.next/server/chunks/_563d9ecc._.js +3 -0
  490. package/.next/standalone/.next/server/chunks/_583f9ae2._.js +3 -0
  491. package/.next/standalone/.next/server/chunks/_5a167705._.js +3 -0
  492. package/.next/standalone/.next/server/chunks/_5a8cc3a5._.js +3 -0
  493. package/.next/standalone/.next/server/chunks/_5d894fb4._.js +3 -0
  494. package/.next/standalone/.next/server/chunks/_6bbf8264._.js +3 -0
  495. package/.next/standalone/.next/server/chunks/_6c4bcec1._.js +3 -0
  496. package/.next/standalone/.next/server/chunks/_7a29d111._.js +3 -0
  497. package/.next/standalone/.next/server/chunks/_7d3bab25._.js +3 -0
  498. package/.next/standalone/.next/server/chunks/_7ed4d1a4._.js +3 -0
  499. package/.next/standalone/.next/server/chunks/_8072d20c._.js +3 -0
  500. package/.next/standalone/.next/server/chunks/_81b87c01._.js +3 -0
  501. package/.next/standalone/.next/server/chunks/_881b7b28._.js +3 -0
  502. package/.next/standalone/.next/server/chunks/_902a1d56._.js +3 -0
  503. package/.next/standalone/.next/server/chunks/_96258f1c._.js +3 -0
  504. package/.next/standalone/.next/server/chunks/_96f79f8f._.js +3 -0
  505. package/.next/standalone/.next/server/chunks/_a0379bc2._.js +3 -0
  506. package/.next/standalone/.next/server/chunks/_a0f604e8._.js +3 -0
  507. package/.next/standalone/.next/server/chunks/_a959b121._.js +3 -0
  508. package/.next/standalone/.next/server/chunks/_a975011f._.js +3 -0
  509. package/.next/standalone/.next/server/chunks/_aa956b66._.js +3 -0
  510. package/.next/standalone/.next/server/chunks/_ad7e7d57._.js +3 -0
  511. package/.next/standalone/.next/server/chunks/_aebf2285._.js +3 -0
  512. package/.next/standalone/.next/server/chunks/_b259dda0._.js +36 -0
  513. package/.next/standalone/.next/server/chunks/_b7c60fdc._.js +3 -0
  514. package/.next/standalone/.next/server/chunks/_bd23ddeb._.js +3 -0
  515. package/.next/standalone/.next/server/chunks/_cd02dfbe._.js +3 -0
  516. package/.next/standalone/.next/server/chunks/_d3ecca80._.js +3 -0
  517. package/.next/standalone/.next/server/chunks/_d48dfa43._.js +11 -0
  518. package/.next/standalone/.next/server/chunks/_dba648d6._.js +3 -0
  519. package/.next/standalone/.next/server/chunks/_df42ac6e._.js +3 -0
  520. package/.next/standalone/.next/server/chunks/_dfe0e460._.js +42 -0
  521. package/.next/standalone/.next/server/chunks/_ead2734e._.js +3 -0
  522. package/.next/standalone/.next/server/chunks/_eb4efd0a._.js +3 -0
  523. package/.next/standalone/.next/server/chunks/_eb66a871._.js +3 -0
  524. package/.next/standalone/.next/server/chunks/_ef715efd._.js +3 -0
  525. package/.next/standalone/.next/server/chunks/_f361a656._.js +3 -0
  526. package/.next/standalone/.next/server/chunks/_f54ddbf4._.js +3 -0
  527. package/.next/standalone/.next/server/chunks/_fe2866f2._.js +3 -0
  528. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_4c408326.js +3 -0
  529. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_5603adbc.js +3 -0
  530. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7180f8ad.js +3 -0
  531. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b6be66d9.js +3 -0
  532. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f7054fd7.js +3 -0
  533. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
  534. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +1 -1
  535. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__90eeddae._.js +1 -1
  536. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__ca3f649e._.js +1 -1
  537. package/.next/standalone/.next/server/middleware-manifest.json +1 -1
  538. package/.next/standalone/.next/server/pages/404.html +1 -1
  539. package/.next/standalone/.next/server/pages/500.html +2 -2
  540. package/.next/standalone/.next/static/chunks/{732b7502f82e7c37.css → 044decb96250e420.css} +1 -1
  541. package/.next/standalone/.next/static/chunks/{23a9627a951672ed.js → 8b53c673e79b82f1.js} +3 -3
  542. package/.next/standalone/bin/scrub-standalone.js +5 -0
  543. package/.next/standalone/bin/spaces-dev.js +13 -3
  544. package/.next/standalone/bin/spaces.js +25 -4
  545. package/.next/standalone/package-lock.json +2 -2
  546. package/.next/standalone/package.json +3 -2
  547. package/.next/standalone/src/app/(desktop)/terminal/page.tsx +22 -1
  548. package/.next/standalone/src/app/api/network/discovered/route.ts +2 -2
  549. package/.next/standalone/src/app/api/network/nodes/check/route.ts +2 -2
  550. package/.next/standalone/src/app/api/network/nodes/route.ts +2 -2
  551. package/.next/standalone/src/app/api/server-config/route.ts +9 -18
  552. package/.next/standalone/src/lib/admin/api/analytics.ts +1 -8
  553. package/.next/standalone/src/lib/admin/api/users.ts +1 -8
  554. package/.next/standalone/src/lib/admin/api/usersById.ts +1 -8
  555. package/.next/standalone/src/lib/auth/guard.ts +46 -0
  556. package/.next/standalone/src/lib/auth/index.ts +1 -0
  557. package/.next/standalone/src/lib/db/queries.ts +11 -1
  558. package/.next/standalone/src/lib/network/api/discovered.ts +4 -1
  559. package/.next/standalone/src/lib/network/api/identity.ts +6 -0
  560. package/.next/standalone/src/lib/network/api/keys.ts +6 -0
  561. package/.next/standalone/src/lib/network/api/keysById.ts +3 -0
  562. package/.next/standalone/src/lib/network/api/nodes.ts +49 -3
  563. package/.next/standalone/src/lib/network/api/nodesById.ts +5 -0
  564. package/.next/standalone/src/lib/network/api/nodesCheck.ts +4 -1
  565. package/.next/standalone/src/lib/network/api/proxy.ts +5 -0
  566. package/.next/standalone/src/middleware.ts +24 -10
  567. package/.next/standalone/tsconfig.tsbuildinfo +1 -1
  568. package/bin/scrub-standalone.js +5 -0
  569. package/bin/spaces-dev.js +13 -3
  570. package/bin/spaces.js +25 -4
  571. package/package.json +3 -2
  572. package/.next/standalone/.next/server/chunks/[externals]_next_dist_b89b5a39._.js +0 -3
  573. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0153ac12._.js +0 -133
  574. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01a4559c._.js +0 -3
  575. package/.next/standalone/.next/server/chunks/[root-of-the-server]__029ab763._.js +0 -133
  576. package/.next/standalone/.next/server/chunks/[root-of-the-server]__037992dc._.js +0 -141
  577. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06bb204a._.js +0 -133
  578. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fd17dcf._.js +0 -3
  579. package/.next/standalone/.next/server/chunks/[root-of-the-server]__107439ea._.js +0 -133
  580. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12dff461._.js +0 -78
  581. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13eb511a._.js +0 -133
  582. package/.next/standalone/.next/server/chunks/[root-of-the-server]__141c8d34._.js +0 -172
  583. package/.next/standalone/.next/server/chunks/[root-of-the-server]__151efd48._.js +0 -3
  584. package/.next/standalone/.next/server/chunks/[root-of-the-server]__16c141c2._.js +0 -133
  585. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17fee60c._.js +0 -133
  586. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a525be8._.js +0 -3
  587. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1aea45f5._.js +0 -3
  588. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1cb4ee6b._.js +0 -133
  589. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1e25d3db._.js +0 -133
  590. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f7566a3._.js +0 -3
  591. package/.next/standalone/.next/server/chunks/[root-of-the-server]__20382bee._.js +0 -133
  592. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2082a624._.js +0 -133
  593. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2091a7ed._.js +0 -42
  594. package/.next/standalone/.next/server/chunks/[root-of-the-server]__24525ae7._.js +0 -133
  595. package/.next/standalone/.next/server/chunks/[root-of-the-server]__284b02fc._.js +0 -42
  596. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2a1a1d0f._.js +0 -42
  597. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2cf17888._.js +0 -42
  598. package/.next/standalone/.next/server/chunks/[root-of-the-server]__323ae5c9._.js +0 -133
  599. package/.next/standalone/.next/server/chunks/[root-of-the-server]__34db98f7._.js +0 -133
  600. package/.next/standalone/.next/server/chunks/[root-of-the-server]__39efba69._.js +0 -3
  601. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3aeedc57._.js +0 -133
  602. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3bbe9d04._.js +0 -78
  603. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3c2324ba._.js +0 -42
  604. package/.next/standalone/.next/server/chunks/[root-of-the-server]__40df3f5d._.js +0 -172
  605. package/.next/standalone/.next/server/chunks/[root-of-the-server]__42a3fe3c._.js +0 -141
  606. package/.next/standalone/.next/server/chunks/[root-of-the-server]__42d5d5be._.js +0 -3
  607. package/.next/standalone/.next/server/chunks/[root-of-the-server]__49821b61._.js +0 -133
  608. package/.next/standalone/.next/server/chunks/[root-of-the-server]__49f58cee._.js +0 -133
  609. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4b9c38dc._.js +0 -141
  610. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4c0ee9c7._.js +0 -133
  611. package/.next/standalone/.next/server/chunks/[root-of-the-server]__530862c6._.js +0 -3
  612. package/.next/standalone/.next/server/chunks/[root-of-the-server]__55504160._.js +0 -133
  613. package/.next/standalone/.next/server/chunks/[root-of-the-server]__599f26fe._.js +0 -42
  614. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5efa69f5._.js +0 -3
  615. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60483ece._.js +0 -3
  616. package/.next/standalone/.next/server/chunks/[root-of-the-server]__61135659._.js +0 -133
  617. package/.next/standalone/.next/server/chunks/[root-of-the-server]__66331034._.js +0 -133
  618. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6887294d._.js +0 -3
  619. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b9396b4._.js +0 -133
  620. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6cfd7062._.js +0 -166
  621. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e8d89e2._.js +0 -149
  622. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f5b3cfe._.js +0 -133
  623. package/.next/standalone/.next/server/chunks/[root-of-the-server]__71d5b087._.js +0 -133
  624. package/.next/standalone/.next/server/chunks/[root-of-the-server]__76434a8e._.js +0 -78
  625. package/.next/standalone/.next/server/chunks/[root-of-the-server]__798bafa7._.js +0 -133
  626. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7b873fdb._.js +0 -78
  627. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7d73f791._.js +0 -133
  628. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7dc76d0e._.js +0 -133
  629. package/.next/standalone/.next/server/chunks/[root-of-the-server]__80a85d1f._.js +0 -133
  630. package/.next/standalone/.next/server/chunks/[root-of-the-server]__81f2a9b7._.js +0 -133
  631. package/.next/standalone/.next/server/chunks/[root-of-the-server]__82f11618._.js +0 -3
  632. package/.next/standalone/.next/server/chunks/[root-of-the-server]__834efefe._.js +0 -42
  633. package/.next/standalone/.next/server/chunks/[root-of-the-server]__853663ea._.js +0 -42
  634. package/.next/standalone/.next/server/chunks/[root-of-the-server]__861f2472._.js +0 -172
  635. package/.next/standalone/.next/server/chunks/[root-of-the-server]__882d0924._.js +0 -133
  636. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88959e7f._.js +0 -133
  637. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b6c05dc._.js +0 -133
  638. package/.next/standalone/.next/server/chunks/[root-of-the-server]__912a22a4._.js +0 -133
  639. package/.next/standalone/.next/server/chunks/[root-of-the-server]__93d21ad1._.js +0 -42
  640. package/.next/standalone/.next/server/chunks/[root-of-the-server]__94532b09._.js +0 -42
  641. package/.next/standalone/.next/server/chunks/[root-of-the-server]__97e87518._.js +0 -78
  642. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9c13c8d0._.js +0 -78
  643. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9cb13212._.js +0 -133
  644. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d315363._.js +0 -133
  645. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9ec369db._.js +0 -13
  646. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f09ade5._.js +0 -133
  647. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f986ad2._.js +0 -133
  648. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a35913cf._.js +0 -172
  649. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a3641117._.js +0 -78
  650. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a76c75a0._.js +0 -133
  651. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a934c48d._.js +0 -133
  652. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9431ac6._.js +0 -133
  653. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa3381a4._.js +0 -133
  654. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab1cc16c._.js +0 -133
  655. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab22ca4f._.js +0 -133
  656. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac20d518._.js +0 -78
  657. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aee3bf91._.js +0 -172
  658. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b1114936._.js +0 -133
  659. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b15ade1f._.js +0 -133
  660. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b2bc7a81._.js +0 -133
  661. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b51446e5._.js +0 -133
  662. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba344563._.js +0 -133
  663. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c3b2e20c._.js +0 -133
  664. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ca93ae79._.js +0 -42
  665. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf4a76c0._.js +0 -133
  666. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d20bed9e._.js +0 -78
  667. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d2d59054._.js +0 -133
  668. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d4f1c0c0._.js +0 -38
  669. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d6de7a45._.js +0 -133
  670. package/.next/standalone/.next/server/chunks/[root-of-the-server]__da33b519._.js +0 -133
  671. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dc820e44._.js +0 -133
  672. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1058e69._.js +0 -133
  673. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1dfb4d4._.js +0 -3
  674. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3606cd1._.js +0 -3
  675. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e55b6fc5._.js +0 -133
  676. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e6555dc3._.js +0 -133
  677. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e65c3971._.js +0 -3
  678. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ea9e2d75._.js +0 -133
  679. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ec37cbee._.js +0 -133
  680. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f3c19e4b._.js +0 -42
  681. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f445bd01._.js +0 -3
  682. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f7b0b4da._.js +0 -133
  683. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fb4c016b._.js +0 -133
  684. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd86530e._.js +0 -78
  685. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fef9b1ec._.js +0 -133
  686. package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-design.md +0 -133
  687. package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-plan.md +0 -959
  688. package/.next/standalone/docs/plans/2026-03-07-service-command-design.md +0 -146
  689. package/.next/standalone/docs/plans/2026-03-07-service-command-plan.md +0 -254
  690. package/.next/standalone/docs/plans/2026-04-23-consolidate-addons-design.md +0 -212
  691. package/.next/standalone/docs/plans/2026-04-23-consolidate-addons-plan.md +0 -1509
  692. package/.next/standalone/docs/superpowers/plans/2026-03-12-spaces-cortex.md +0 -5270
  693. package/.next/standalone/docs/superpowers/plans/2026-03-13-cortex-wiring.md +0 -1387
  694. package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-entity-graph.md +0 -1923
  695. package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-knowledge-evolution.md +0 -1113
  696. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-boundary-engine.md +0 -853
  697. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-context-engine.md +0 -1274
  698. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-signal-ingestion.md +0 -933
  699. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-lobes.md +0 -1080
  700. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-gravity-system.md +0 -768
  701. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-ui.md +0 -1108
  702. package/.next/standalone/docs/superpowers/plans/2026-03-18-cortex-ui-integration.md +0 -1846
  703. package/.next/standalone/docs/superpowers/plans/2026-03-19-vr-phase1-shell.md +0 -1639
  704. package/.next/standalone/docs/superpowers/plans/2026-03-27-dockview-pane-layout.md +0 -98
  705. package/.next/standalone/docs/superpowers/plans/2026-04-21-workspace-todos.md +0 -1097
  706. package/.next/standalone/docs/superpowers/plans/2026-04-22-claude-usage-display.md +0 -749
  707. package/.next/standalone/docs/superpowers/specs/2026-03-11-universe-view-design.md +0 -320
  708. package/.next/standalone/docs/superpowers/specs/2026-03-12-spaces-brain-design.md +0 -720
  709. package/.next/standalone/docs/superpowers/specs/2026-03-13-cortex-wiring-design.md +0 -268
  710. package/.next/standalone/docs/superpowers/specs/2026-03-14-cortex-v2-design.md +0 -623
  711. package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-lobes-design.md +0 -263
  712. package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-v2-ui-design.md +0 -240
  713. package/.next/standalone/docs/superpowers/specs/2026-03-16-pane-ux-design.md +0 -77
  714. package/.next/standalone/docs/superpowers/specs/2026-03-18-cortex-ui-integration-design.md +0 -341
  715. package/.next/standalone/docs/superpowers/specs/2026-03-19-vr-phase1-shell-design.md +0 -288
  716. package/.next/standalone/docs/superpowers/specs/2026-03-27-pane-diff-review-and-project-wizard-design.md +0 -322
  717. package/.next/standalone/docs/superpowers/specs/2026-04-21-workspace-todos-design.md +0 -180
  718. package/.next/standalone/docs/superpowers/specs/2026-04-22-claude-usage-display-design.md +0 -183
  719. /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_buildManifest.js +0 -0
  720. /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_clientMiddlewareManifest.json +0 -0
  721. /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[862101,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),o=e.i(561916),s=e.i(174677),i=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),f=e.i(10372),v=e.i(193695);e.i(52474);var E=e.i(600220),g=e.i(708784),w=e.i(279174),C=e.i(691180),m=e.i(446786);async function y(e){let t=e.headers.get("x-auth-user")||m.default.userInfo().username,{code:r,action:a}=await e.json(),n=(0,g.getUser)(t);if(!n||!n.totp_enabled||!n.totp_secret)return Response.json({success:!1,error:"TOTP not configured"},{status:400});if(!(0,w.verifyCode)(n.totp_secret,r))return Response.json({success:!1,error:"Invalid code"},{status:401});let o=(0,w.issueTerminalToken)(t),s=(0,C.issueSessionToken)(t,n.role),i=Response.json({success:!0,terminalToken:o});return(0,C.setSessionCookie)(i,s),i}async function x(e){return y(e)}e.s(["POST",()=>x],163333);var T=e.i(163333);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/totp/verify/route",pathname:"/api/auth/totp/verify",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/totp/verify/route.ts",nextConfigOutput:"standalone",userland:T}),{workAsyncStorage:P,workUnitAsyncStorage:N,serverHooks:O}=A;function _(){return(0,a.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:N})}async function b(e,t,a){A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/auth/totp/verify/route";g=g.replace(/\/index$/,"")||"/";let w=await A.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,params:m,nextConfig:y,parsedUrl:x,isDraftMode:T,prerenderManifest:P,routerServerContext:N,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,resolvedPathname:b,clientReferenceManifest:S,serverActionsManifest:H}=w,I=(0,i.normalizeAppPath)(g),U=!!(P.dynamicRoutes[I]||P.routes[b]),k=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,x,!1):t.end("This page could not be found"),null);if(U&&!T){let e=!!P.routes[b],t=P.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await k();throw new v.NoFallbackError}}let q=null;!U||A.isDev||T||(q="/index"===(q=b)?"/":q);let D=!0===A.isDev||!U,M=U&&!D;H&&S&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:S,serverActionsManifest:H});let j=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:m,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>A.onRequestError(e,t,a,n,N)},sharedContext:{buildId:C}},B=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let s=async e=>A.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${j} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${g}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&O&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(B,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,N),t}},d=await A.handleResponse({req:e,nextConfig:y,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:i});if(!U)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&U||v.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,L,new Response(d.value.body,{headers:v,status:d.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,N),U)throw t;return await (0,p.sendResponse)(B,L,new Response(null,{status:500})),null}}e.s(["handler",()=>b,"patchFetch",()=>_,"routeModule",()=>A,"serverHooks",()=>O,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>N],862101)}];
2
+
3
+ //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_4c408326.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[600391,e=>{"use strict";var t=e.i(747909),a=e.i(174017),r=e.i(996250),n=e.i(759756),s=e.i(561916),i=e.i(174677),o=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),p=e.i(47587),c=e.i(666012),f=e.i(570101),h=e.i(626937),m=e.i(10372),g=e.i(193695);e.i(52474);var R=e.i(600220),x=e.i(89171);e.i(768724);var w=e.i(793765),v=e.i(522734),y=e.i(814747);let C=new Set([".png",".jpg",".jpeg",".gif",".ico",".bmp",".webp",".svg"]),E=new Set([".woff",".woff2",".ttf",".eot",".otf",".zip",".gz",".tar",".rar",".7z",".exe",".dll",".so",".dylib",".node",".mp3",".mp4",".wav",".avi",".mov",".db",".sqlite",".sqlite3"]),N=new Set(["node_modules",".git",".next","__pycache__",".turbo","dist",".cache"]),b={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".ico":"image/x-icon",".bmp":"image/bmp",".webp":"image/webp",".svg":"image/svg+xml",".pdf":"application/pdf"};async function A(e){let t=(0,w.getAuthUser)(e);return(0,w.withUser)(t,async()=>{let t=e.nextUrl.searchParams.get("path"),a=e.nextUrl.searchParams.get("file"),r=e.nextUrl.searchParams.get("raw"),n=parseInt(e.nextUrl.searchParams.get("limit")||"2000",10);if(r)try{let e=y.default.resolve(r),t=y.default.extname(e).toLowerCase(),a=v.default.statSync(e),n=b[t]||"application/octet-stream",s=v.default.readFileSync(e);return new x.NextResponse(s,{headers:{"Content-Type":n,"Content-Length":String(a.size),"Cache-Control":"private, max-age=60"}})}catch{return new x.NextResponse("Not found",{status:404})}if(a)try{let e=y.default.resolve(a),t=v.default.statSync(e),r=y.default.extname(e).toLowerCase();if(C.has(r)){if(t.size>0x1400000)return x.NextResponse.json({image:!0,tooLarge:!0,ext:r,size:t.size,name:y.default.basename(e)});return x.NextResponse.json({name:y.default.basename(e),path:e,image:!0,ext:r,size:t.size,rawUrl:`/api/files?raw=${encodeURIComponent(e)}`})}if(".pdf"===r)return x.NextResponse.json({name:y.default.basename(e),path:e,pdf:!0,ext:r,size:t.size,rawUrl:`/api/files?raw=${encodeURIComponent(e)}`});if(E.has(r))return x.NextResponse.json({binary:!0,ext:r,size:t.size,name:y.default.basename(e)});if(t.size>5242880)return x.NextResponse.json({error:"File too large",size:t.size,name:y.default.basename(e)});let s=v.default.readFileSync(e,"utf-8"),i=s.split("\n");return x.NextResponse.json({name:y.default.basename(e),path:e,content:i.length>n?i.slice(0,n).join("\n"):s,lines:i.length,truncated:i.length>n,size:t.size,ext:r})}catch{return x.NextResponse.json({error:"Cannot read file"},{status:404})}if(!t)return x.NextResponse.json({error:"path parameter required"},{status:400});try{let e=y.default.resolve(t),a=v.default.readdirSync(e,{withFileTypes:!0}).filter(e=>!N.has(e.name)&&!e.name.startsWith(".")).map(t=>({name:t.name,path:y.default.join(e,t.name),isDir:t.isDirectory(),ext:t.isDirectory()?null:y.default.extname(t.name).toLowerCase()})).sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name));return x.NextResponse.json({current:e,parent:y.default.dirname(e),items:a})}catch{return x.NextResponse.json({error:"Cannot read directory"},{status:404})}})}async function S(e){let t=(0,w.getAuthUser)(e);return(0,w.withUser)(t,async()=>{try{let t=await e.formData(),a=t.get("dir");if(!a)return x.NextResponse.json({error:"dir required"},{status:400});let r=y.default.resolve(a);if(!v.default.existsSync(r)||!v.default.statSync(r).isDirectory())return x.NextResponse.json({error:"Directory not found"},{status:404});let n=t.getAll("files");if(0===n.length)return x.NextResponse.json({error:"No files provided"},{status:400});let s=[];for(let e of n){let t=e.name.replace(/[/\\]/g,"_");if(!t||"."===t||".."===t)continue;let a=y.default.join(r,t),n=Buffer.from(await e.arrayBuffer());v.default.writeFileSync(a,n),s.push(t)}return x.NextResponse.json({uploaded:s.length,files:s})}catch(e){return x.NextResponse.json({error:"Upload failed"},{status:500})}})}e.s(["GET",()=>A,"POST",()=>S,"dynamic",0,"force-dynamic"],518271);var j=e.i(518271);let U=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/files/route",pathname:"/api/files",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/files/route.ts",nextConfigOutput:"standalone",userland:j}),{workAsyncStorage:P,workUnitAsyncStorage:T,serverHooks:_}=U;function D(){return(0,r.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:T})}async function O(e,t,r){U.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/api/files/route";x=x.replace(/\/index$/,"")||"/";let w=await U.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:v,params:y,nextConfig:C,parsedUrl:E,isDraftMode:N,prerenderManifest:b,routerServerContext:A,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:T,serverActionsManifest:_}=w,D=(0,o.normalizeAppPath)(x),O=!!(b.dynamicRoutes[D]||b.routes[P]),z=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,E,!1):t.end("This page could not be found"),null);if(O&&!N){let e=!!b.routes[P],t=b.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await z();throw new g.NoFallbackError}}let q=null;!O||U.isDev||N||(q="/index"===(q=P)?"/":q);let I=!0===U.isDev||!O,H=O&&!I;_&&T&&(0,i.setManifestsSingleton)({page:x,clientReferenceManifest:T,serverActionsManifest:_});let k=e.method||"GET",F=(0,s.getTracer)(),M=F.getActiveScopeSpan(),$={params:y,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>U.onRequestError(e,t,r,n,A)},sharedContext:{buildId:v}},L=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let i=async e=>U.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=F.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${k} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${k} ${x}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let u=async({previousCacheEntry:a})=>{try{if(!o&&S&&j&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&r.waitUntil&&(r.waitUntil(l),l=void 0);let u=$.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(L,K,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,r=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await U.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,A),t}},d=await U.handleResponse({req:e,nextConfig:C,cacheKey:q,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:o});if(!O)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",S?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&O||g.delete(m.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(L,K,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${k} ${x}`,kind:s.SpanKind.SERVER,attributes:{"http.method":k,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await U.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,A),O)throw t;return await (0,c.sendResponse)(L,K,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>D,"routeModule",()=>U,"serverHooks",()=>_,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>T],600391)}];
2
+
3
+ //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_5603adbc.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[630450,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),a=e.i(759756),o=e.i(561916),s=e.i(174677),i=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),f=e.i(10372),g=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(362562),E=e.i(708784),C=e.i(691180),m=e.i(279174);let y=(0,w.createRequire)("/ROOT/src/lib/auth/api/login.ts")("qrcode");async function T(e){try{let{username:t,password:r,totpCode:n,setupSecret:a}=await e.json();if(!t||!r)return Response.json({error:"Username and password required"},{status:400});let o=(0,E.getUser)(t);if(!o||!(0,E.verifyPassword)(r,o.password_hash))return Response.json({error:"Invalid username or password"},{status:401});if(!o.totp_enabled){if(!n){let{secret:e,uri:r}=(0,m.generateSecret)(t),n=await y.toDataURL(r);return Response.json({status:"setup-totp",setupSecret:e,qrDataUrl:n})}if(!a)return Response.json({error:"Setup secret required for first-time TOTP"},{status:400});if(!(0,m.verifyCode)(a,n))return Response.json({error:"Invalid TOTP code"},{status:401});(0,E.updateUser)(o.id,{totpSecret:a,totpEnabled:!0});let r=(0,C.issueSessionToken)(t,o.role),s=Response.json({status:"ok"});(0,C.setSessionCookie)(s,r);try{(0,E.recordLogin)(t,e.headers.get("x-forwarded-for")||"",e.headers.get("user-agent")||"")}catch{}return s}if(!n)return Response.json({status:"totp-required"});if(!(0,m.verifyCode)(o.totp_secret,n))return Response.json({error:"Invalid TOTP code"},{status:401});let s=(0,C.issueSessionToken)(t,o.role),i=Response.json({status:"ok"});(0,C.setSessionCookie)(i,s);try{(0,E.recordLogin)(t,e.headers.get("x-forwarded-for")||"",e.headers.get("user-agent")||"")}catch{}return i}catch(e){return console.error("[Auth Login]",e),Response.json({error:"Internal server error"},{status:500})}}async function x(e){return T(e)}e.s(["POST",()=>x],211615);var A=e.i(211615);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/login/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:S,workUnitAsyncStorage:O,serverHooks:b}=P;function N(){return(0,n.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:O})}async function _(e,t,n){P.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/auth/login/route";w=w.replace(/\/index$/,"")||"/";let E=await P.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:C,params:m,nextConfig:y,parsedUrl:T,isDraftMode:x,prerenderManifest:A,routerServerContext:S,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:U}=E,k=(0,i.normalizeAppPath)(w),q=!!(A.dynamicRoutes[k]||A.routes[N]),I=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,T,!1):t.end("This page could not be found"),null);if(q&&!x){let e=!!A.routes[N],t=A.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await I();throw new g.NoFallbackError}}let j=null;!q||P.isDev||x||(j="/index"===(j=N)?"/":j);let H=!0===P.isDev||!q,D=q&&!H;U&&_&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:_,serverActionsManifest:U});let M=e.method||"GET",L=(0,o.getTracer)(),$=L.getActiveScopeSpan(),F={params:m,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>P.onRequestError(e,t,n,a,S)},sharedContext:{buildId:C}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let s=async e=>P.handle(G,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${w}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&O&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(K,B,o,F.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,S),t}},d=await P.handleResponse({req:e,nextConfig:y,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:b,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!q)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&q||g.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,B,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};$?await l($):await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:O})},!1,S),q)throw t;return await (0,p.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>N,"routeModule",()=>P,"serverHooks",()=>b,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>O],630450)}];
2
+
3
+ //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_7180f8ad.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[984636,e=>{"use strict";var t=e.i(747909),n=e.i(174017),a=e.i(996250),r=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),g=e.i(10372),v=e.i(193695);e.i(52474);var m=e.i(600220),f=e.i(708784),E=e.i(908146);async function y(e){let t=(0,E.requireAdmin)(e);if(t)return t;let n=Math.min(Math.max(parseInt(new URL(e.url).searchParams.get("days")||"30",10),1),365);try{let e=(0,f.getActiveSessionCount)(),t=(0,f.getLoginEvents)(n),a=(0,f.getTerminalSessions)(n),r=(0,f.getDailyLoginCounts)(n),i=(0,f.getDailySessionMinutes)(n),o=(0,f.getUserSessionSummary)(n),s=t.length,l=Math.round(a.reduce((e,t)=>e+(t.duration_seconds||0),0)/60);return Response.json({activeSessions:e,totalLogins:s,totalSessionMinutes:l,recentLogins:t.slice(0,100),dailyLogins:r,dailySessionTime:i,userSummary:o})}catch(e){return console.error("[Admin Analytics]",e),Response.json({error:"Internal server error"},{status:500})}}async function w(e){return y(e)}e.s(["GET",()=>w],947836);var C=e.i(947836);let A=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/admin/analytics/route",pathname:"/api/admin/analytics",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/admin/analytics/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:x,workUnitAsyncStorage:T,serverHooks:P}=A;function S(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:T})}async function N(e,t,a){A.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/admin/analytics/route";f=f.replace(/\/index$/,"")||"/";let E=await A.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:C,parsedUrl:x,isDraftMode:T,prerenderManifest:P,routerServerContext:S,isOnDemandRevalidate:N,revalidateOnlyGenerated:b,resolvedPathname:O,clientReferenceManifest:_,serverActionsManifest:U}=E,H=(0,s.normalizeAppPath)(f),I=!!(P.dynamicRoutes[H]||P.routes[O]),M=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,x,!1):t.end("This page could not be found"),null);if(I&&!T){let e=!!P.routes[O],t=P.dynamicRoutes[H];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await M();throw new v.NoFallbackError}}let q=null;!I||A.isDev||T||(q="/index"===(q=O)?"/":q);let D=!0===A.isDev||!I,k=I&&!D;U&&_&&(0,o.setManifestsSingleton)({page:f,clientReferenceManifest:_,serverActionsManifest:U});let j=e.method||"GET",L=(0,i.getTracer)(),$=L.getActiveScopeSpan(),F={params:w,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,a,r)=>A.onRequestError(e,t,a,r,S)},sharedContext:{buildId:y}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let o=async e=>A.handle(G,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=L.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=n.get("next.route");if(a){let t=`${j} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${f}`)}),s=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var i,l;let u=async({previousCacheEntry:n})=>{try{if(!s&&N&&b&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(r);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(K,B,i,F.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,a=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:a}}}}catch(t){throw(null==n?void 0:n.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:N})},!1,S),t}},d=await A.handleResponse({req:e,nextConfig:C,cacheKey:q,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:b,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!I)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&I||v.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,B,new Response(d.value.body,{headers:v,status:d.value.status||200})),null};$?await l($):await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${f}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:N})},!1,S),I)throw t;return await (0,p.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>S,"routeModule",()=>A,"serverHooks",()=>P,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>T],984636)}];
2
+
3
+ //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_b6be66d9.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[793025,e=>{"use strict";var t=e.i(747909),a=e.i(174017),n=e.i(996250),r=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),R=e.i(626937),f=e.i(10372),m=e.i(193695);e.i(52474);var v=e.i(600220),E=e.i(89171),g=e.i(446786),w=e.i(299357),C=e.i(708784);async function x(e){let t=e.headers.get("x-auth-user"),a=e.headers.get("x-auth-role")||"user";if(!t)return Response.json({error:"Not authenticated"},{status:401});try{let e=(0,C.getUser)(t);return Response.json({username:t,role:a,displayName:e?.display_name||t})}catch{return Response.json({username:t,role:a,displayName:t})}}async function y(e){return w.IS_MULTIUSER?x(e):E.NextResponse.json({username:g.default.userInfo().username,role:"admin",displayName:g.default.userInfo().username})}e.s(["GET",()=>y],495399);var A=e.i(495399);let N=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/auth/me/route",pathname:"/api/auth/me",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/me/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:T,workUnitAsyncStorage:P,serverHooks:_}=N;function b(){return(0,n.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:P})}async function O(e,t,n){N.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/auth/me/route";E=E.replace(/\/index$/,"")||"/";let g=await N.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:C,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:T,routerServerContext:P,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,resolvedPathname:O,clientReferenceManifest:S,serverActionsManifest:I}=g,U=(0,s.normalizeAppPath)(E),H=!!(T.dynamicRoutes[U]||T.routes[O]),q=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,y,!1):t.end("This page could not be found"),null);if(H&&!A){let e=!!T.routes[O],t=T.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(x.experimental.adapterPath)return await q();throw new m.NoFallbackError}}let k=null;!H||N.isDev||A||(k="/index"===(k=O)?"/":k);let D=!0===N.isDev||!H,M=H&&!D;I&&S&&(0,i.setManifestsSingleton)({page:E,clientReferenceManifest:S,serverActionsManifest:I});let j=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:C,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:x.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>N.onRequestError(e,t,n,r,P)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let i=async e=>N.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=$.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${j} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${E}`)}),s=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var o,l;let u=async({previousCacheEntry:a})=>{try{if(!s&&_&&b&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(r);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(L,B,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:_})},!1,P),t}},d=await N.handleResponse({req:e,nextConfig:x,cacheKey:k,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:s});if(!H)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",_?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&H||m.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(L,B,new Response(d.value.body,{headers:m,status:d.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${E}`,kind:o.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:_})},!1,P),H)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>b,"routeModule",()=>N,"serverHooks",()=>_,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>P],793025)}];
2
+
3
+ //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_f7054fd7.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},804730,a=>{a.v({name:"@jlongo78/agent-spaces",version:"0.10.0-beta.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js","spaces-msg":"./bin/spaces-msg.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",postinstall:"node bin/spaces-postinstall.js || true",prepublishOnly:"npm run build && node bin/scrub-standalone.js",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",test:"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage",lint:"eslint"},dependencies:{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@google-cloud/compute":"^6.9.0","@huggingface/transformers":"^3.8.1","@lancedb/lancedb":"^0.26.2","@modelcontextprotocol/sdk":"^1.27.1","@react-three/drei":"^10.7.7","@react-three/fiber":"^9.5.0","@react-three/postprocessing":"^3.0.4","@react-three/xr":"^6.6.29","@xterm/addon-canvas":"^0.7.0","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","dockview-react":"^5.2.0","force-graph":"^1.51.2","node-pty":"^1.1.0",otpauth:"^9.0.0",qrcode:"^1.5.0","react-resizable-panels":"^4.7.6",three:"^0.183.2",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/three":"^0.183.1","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.0.18","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",vitest:"^4.0.18",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},495044,a=>{a.n(a.i(352425))},426087,a=>{a.n(a.i(821646))},650645,a=>{a.n(a.i(827572))},43619,a=>{a.n(a.i(379962))},13718,a=>{a.n(a.i(685523))},118198,a=>{a.n(a.i(545518))},262212,a=>{a.n(a.i(866114))},754268,a=>{a.n(a.i(496773))}];
1
+ module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},804730,a=>{a.v({name:"@jlongo78/agent-spaces",version:"0.10.0-beta.4",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js","spaces-msg":"./bin/spaces-msg.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",postinstall:"node bin/spaces-postinstall.js || true",prepublishOnly:"npm run build",prepack:"node bin/scrub-standalone.js",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",test:"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage",lint:"eslint"},dependencies:{"@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@google-cloud/compute":"^6.9.0","@huggingface/transformers":"^3.8.1","@lancedb/lancedb":"^0.26.2","@modelcontextprotocol/sdk":"^1.27.1","@react-three/drei":"^10.7.7","@react-three/fiber":"^9.5.0","@react-three/postprocessing":"^3.0.4","@react-three/xr":"^6.6.29","@xterm/addon-canvas":"^0.7.0","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","dockview-react":"^5.2.0","force-graph":"^1.51.2","node-pty":"^1.1.0",otpauth:"^9.0.0",qrcode:"^1.5.0","react-resizable-panels":"^4.7.6",three:"^0.183.2",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/three":"^0.183.1","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.0.18","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",vitest:"^4.0.18",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},495044,a=>{a.n(a.i(352425))},426087,a=>{a.n(a.i(821646))},650645,a=>{a.n(a.i(827572))},43619,a=>{a.n(a.i(379962))},13718,a=>{a.n(a.i(685523))},118198,a=>{a.n(a.i(545518))},262212,a=>{a.n(a.i(866114))},754268,a=>{a.n(a.i(496773))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__66aca5d4._.js.map
@@ -82,6 +82,6 @@ module.exports=[266490,a=>{"use strict";let b,c,d;var e,f,g,h,i,j,k,l,m,n,o,p,q,
82
82
  if (e.data?.type === 'file-update') renderFile(e.data.file);
83
83
  if (e.data?.type === 'close-popup') { savePos(); window.close(); }
84
84
  };
85
- </script></body></html>`),g.document.close(),setTimeout(()=>{v.current?.postMessage({type:"file-update",file:a})},100),w.current&&clearInterval(w.current),w.current=setInterval(()=>{u.current?.closed&&(dp({wasPoppedOut:!1}),z.current&&t(!1),u.current=null,w.current&&(clearInterval(w.current),w.current=null))},500)}},E=(0,y.useRef)(null),[F,G]=(0,y.useState)(!1),[H,I]=(0,y.useState)(!1),J=async a=>{if(g&&0!==a.length){G(!0);try{let b=new FormData;for(let c of(b.append("dir",g),Array.from(a)))b.append("files",c);await fetch((0,cT.api)("/api/files"),{method:"POST",body:b});let c=await B(g);j(c.items)}catch{}finally{G(!1)}}},K=e?g.replace(e,"").replace(/^[/\\]/,""):"",L=K?K.split(/[/\\]/):[],M=o&&!s,O=k&&g!==e;return e?(0,x.jsxs)("div",{className:"h-full flex flex-col bg-zinc-950 border-r border-zinc-800",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-zinc-800/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Files"}),(0,x.jsx)("button",{onClick:a,className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),c.length>1&&(0,x.jsx)("div",{className:"flex items-center gap-1 px-3 py-1.5 border-b border-zinc-800/30 flex-shrink-0 overflow-x-auto",children:c.map(a=>{let b=a.split(/[/\\]/).pop()||a,c=a===e;return(0,x.jsx)("button",{onClick:()=>{f(a),h(a),n(new Set),p(null)},className:`px-2 py-0.5 text-[10px] rounded transition-colors flex-shrink-0 ${c?"bg-amber-500/15 text-amber-400 border border-amber-500/30":"text-zinc-500 hover:text-zinc-300 border border-transparent"}`,title:a,children:b},a)})}),(0,x.jsxs)("div",{className:"flex items-center gap-1 px-3 py-1.5 border-b border-zinc-800/30 overflow-x-auto text-[10px] flex-shrink-0",children:[O&&(0,x.jsx)("button",{onClick:()=>{k&&g!==e&&h(k)},className:"text-zinc-500 hover:text-zinc-300 flex-shrink-0",children:(0,x.jsx)(dh,{className:"w-3 h-3"})}),(0,x.jsx)("input",{ref:E,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&J(a.target.files),a.target.value=""}}),(0,x.jsx)("button",{onClick:()=>E.current?.click(),className:"text-zinc-600 hover:text-zinc-300 flex-shrink-0 ml-auto",title:"Upload files to current directory",children:(0,x.jsx)(dk.Upload,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>h(e),className:"text-zinc-500 hover:text-zinc-300 truncate flex-shrink-0",children:e.split(/[/\\]/).pop()}),L.map((a,b)=>(0,x.jsxs)("span",{className:"flex items-center gap-1 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-zinc-700",children:"/"}),(0,x.jsx)("button",{onClick:()=>{h(e+"/"+L.slice(0,b+1).join("/"))},className:"text-zinc-500 hover:text-zinc-300",children:a})]},b))]}),s&&o&&(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800/30 bg-zinc-900/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500",children:"Viewing:"}),(0,x.jsx)("span",{className:"text-[10px] text-zinc-400 font-mono truncate flex-1",children:o.name}),(0,x.jsx)("button",{onClick:()=>{dp({wasPoppedOut:!1}),u.current&&!u.current.closed&&u.current.close(),u.current=null,t(!1),w.current&&(clearInterval(w.current),w.current=null)},className:"text-zinc-500 hover:text-zinc-300 transition-colors",title:"Pop back into panel",children:(0,x.jsx)(R,{className:"w-3 h-3"})})]}),(0,x.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 overflow-hidden",children:[(0,x.jsx)("div",{className:`overflow-y-auto ${M?"max-h-[40%] border-b border-zinc-800/30":"flex-1"} ${H?"ring-2 ring-inset ring-amber-500/50 bg-amber-500/5":""}`,onDragOver:a=>{a.preventDefault(),I(!0)},onDragLeave:()=>I(!1),onDrop:a=>{a.preventDefault(),I(!1),a.dataTransfer.files.length>0&&J(a.dataTransfer.files)},children:F?(0,x.jsx)("div",{className:"p-3 text-xs text-amber-400",children:"Uploading..."}):q?(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-600",children:"Loading..."}):0===i.length?(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-600",children:"Empty directory"}):(0,x.jsx)("div",{className:"py-1",children:i.map(a=>(0,x.jsx)(dv,{item:a,depth:0,expanded:m.has(a.path),expandedDirs:m,onClick:C,loadDir:B,activeFile:o?.path},a.path))})}),M&&(0,x.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 overflow-hidden",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 border-b border-zinc-800/30 flex-shrink-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,x.jsx)("span",{className:`text-xs font-mono truncate ${dq(o.ext)}`,children:o.name}),(0,x.jsx)("span",{className:"text-[9px] text-zinc-600",children:o.lines?`${o.lines} lines`:ds(o.size)}),o.truncated&&(0,x.jsx)("span",{className:"text-[9px] text-amber-500",children:"(truncated)"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-1",children:[(0,x.jsx)("button",{onClick:()=>{var a,b;let c;return o&&(a=o.path,b=o.name,void((c=document.createElement("a")).href=(0,cT.api)(`/api/files?raw=${encodeURIComponent(a)}`),c.download=b,c.click()))},className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",title:"Download file",children:(0,x.jsx)(dj,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>{o&&D(o)},className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",title:"Open in new window",children:(0,x.jsx)(di.ExternalLink,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>p(null),className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3 h-3"})})]})]}),(0,x.jsx)("div",{className:"flex-1 overflow-auto",children:(0,x.jsx)(du,{file:o})})]})]})]}):(0,x.jsxs)("div",{className:"h-full flex flex-col bg-zinc-950 border-r border-zinc-800",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-zinc-800/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Files"}),(0,x.jsx)("button",{onClick:a,className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-500",children:0===c.length?"No development directories configured. Add them in Settings.":"Loading..."})]})}function du({file:a}){return a.error?(0,x.jsx)("div",{className:"p-3 text-xs text-red-400",children:a.error}):a.image&&a.rawUrl?(0,x.jsx)("div",{className:"flex items-center justify-center p-4 min-h-[200px]",children:(0,x.jsx)("img",{src:(0,cT.api)(a.rawUrl),alt:a.name,className:"max-w-full max-h-[60vh] object-contain rounded"})}):a.image&&a.tooLarge?(0,x.jsxs)("div",{className:"p-3 text-xs text-zinc-500",children:["Image too large (",ds(a.size),")"]}):a.pdf&&a.rawUrl?(0,x.jsx)("iframe",{src:(0,cT.api)(a.rawUrl),className:"w-full h-full border-none",title:a.name}):a.binary?(0,x.jsxs)("div",{className:"p-3 text-xs text-zinc-500",children:["Binary file (",a.ext,", ",ds(a.size),")"]}):void 0!==a.content?(0,x.jsx)("pre",{className:"text-[11px] leading-4 font-mono p-0 m-0",children:(0,x.jsx)("table",{className:"border-collapse w-full",children:(0,x.jsx)("tbody",{children:a.content.split("\n").map((b,c)=>(0,x.jsxs)("tr",{className:"hover:bg-zinc-800/30",children:[(0,x.jsx)("td",{className:"text-right pr-3 pl-3 text-zinc-700 select-none w-[1%] whitespace-nowrap",children:c+1}),(0,x.jsx)("td",{className:`pr-3 whitespace-pre ${dq(a.ext)}`,children:b||" "})]},c))})})}):null}function dv({item:a,depth:b,expanded:c,expandedDirs:d,onClick:e,loadDir:f,activeFile:g}){let[h,i]=(0,y.useState)(null);(0,y.useEffect)(()=>{c&&a.isDir&&!h&&f(a.path).then(a=>i(a.items))},[c,a.isDir,a.path,h,f]);let j=g===a.path;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("button",{onClick:()=>e(a),className:`flex items-center gap-1.5 w-full text-left px-2 py-[3px] text-[11px] transition-colors ${j?"bg-indigo-500/10 text-indigo-300":"text-zinc-400 hover:bg-zinc-800/50 hover:text-zinc-200"}`,style:{paddingLeft:`${8+14*b}px`},children:[a.isDir?c?(0,x.jsx)(G.ChevronDown,{className:"w-3 h-3 text-zinc-600 flex-shrink-0"}):(0,x.jsx)(H.ChevronRight,{className:"w-3 h-3 text-zinc-600 flex-shrink-0"}):(0,x.jsx)("span",{className:"w-3 flex-shrink-0"}),(0,x.jsx)(dr,{item:a}),(0,x.jsx)("span",{className:"truncate",children:a.name})]}),c&&a.isDir&&h&&h.map(a=>(0,x.jsx)(dv,{item:a,depth:b+1,expanded:d.has(a.path),expandedDirs:d,onClick:e,loadDir:f,activeFile:g},a.path))]})}function dw({messages:a,onSend:b,loading:c}){let[d,e]=(0,y.useState)(""),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{f.current&&(f.current.scrollTop=f.current.scrollHeight)},[a,c]);let g=()=>{let a=d.trim();a&&!c&&(e(""),b(a))};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{ref:f,className:"flex-1 overflow-y-auto px-6 py-4 space-y-4",children:[0===a.length&&!c&&(0,x.jsxs)("div",{className:"text-center py-12",children:[(0,x.jsx)("p",{className:"text-zinc-400 text-sm mb-1",children:"Describe the project you want to build."}),(0,x.jsx)("p",{className:"text-zinc-600 text-xs",children:"I'll help you plan the workspace, agents, and initial tasks."})]}),a.map((a,b)=>(0,x.jsx)("div",{className:`flex ${"user"===a.role?"justify-end":"justify-start"}`,children:(0,x.jsx)("div",{className:`max-w-[80%] rounded-lg px-3 py-2 text-sm ${"user"===a.role?"bg-indigo-600 text-white":"bg-zinc-800 text-zinc-200"}`,children:(0,x.jsx)("p",{className:"whitespace-pre-wrap",children:a.content})})},b)),c&&(0,x.jsx)("div",{className:"flex justify-start",children:(0,x.jsx)("div",{className:"bg-zinc-800 rounded-lg px-4 py-3",children:(0,x.jsxs)("div",{className:"flex gap-1",children:[(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})})})]}),(0,x.jsx)("div",{className:"px-6 py-3 border-t border-zinc-800 flex-shrink-0",children:(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsx)("textarea",{value:d,onChange:a=>e(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||(a.preventDefault(),g())},placeholder:"Describe your project...",rows:2,className:"flex-1 bg-zinc-900 border border-zinc-700 rounded-lg px-3 py-2 text-sm text-zinc-200 placeholder:text-zinc-600 focus:outline-none focus:border-zinc-500 resize-none"}),(0,x.jsx)("button",{onClick:g,disabled:!d.trim()||c,className:"px-4 bg-indigo-600 hover:bg-indigo-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg flex items-center gap-1.5 text-sm self-end",children:(0,x.jsx)(c_.Send,{className:"w-3.5 h-3.5"})})]})})]})}let dx=(0,I.default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]),dy={claude:"#6366f1",codex:"#22c55e",gemini:"#3b82f6",aider:"#f59e0b",shell:"#78716c",custom:"#a855f7"};function dz({plan:a,onReview:b}){return a?(0,x.jsxs)("div",{className:"flex flex-col h-full",children:[(0,x.jsxs)("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-4",children:[(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:"Workspace"}),(0,x.jsxs)("div",{className:"bg-zinc-800/50 rounded-lg p-3 border border-zinc-700/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,x.jsx)("span",{className:"w-3 h-3 rounded-full",style:{backgroundColor:a.workspace.color}}),(0,x.jsx)("span",{className:"text-sm font-medium text-zinc-200",children:a.workspace.name})]}),a.workspace.description&&(0,x.jsx)("p",{className:"text-xs text-zinc-400 mt-1",children:a.workspace.description})]})]}),a.panes.length>0&&(0,x.jsxs)("div",{children:[(0,x.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:["Panes (",a.panes.length,")"]}),(0,x.jsx)("div",{className:"space-y-2",children:a.panes.map((a,b)=>(0,x.jsxs)("div",{className:"bg-zinc-800/50 rounded-lg p-3 border border-zinc-700/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,x.jsx)(B.Terminal,{className:"w-3 h-3 text-zinc-500"}),(0,x.jsx)("span",{className:"text-xs font-medium text-zinc-200",children:a.title}),(0,x.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium",style:{backgroundColor:`${dy[a.agentType]||"#6366f1"}20`,color:dy[a.agentType]||"#6366f1"},children:a.agentType})]}),a.description&&(0,x.jsx)("p",{className:"text-[11px] text-zinc-500 mt-1",children:a.description}),a.cwd&&(0,x.jsx)("p",{className:"text-[10px] text-zinc-600 font-mono mt-1",children:a.cwd})]},b))})]}),a.summary&&(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:"Summary"}),(0,x.jsx)("p",{className:"text-xs text-zinc-400",children:a.summary})]})]}),(0,x.jsx)("div",{className:"px-5 py-3 border-t border-zinc-800 flex-shrink-0",children:(0,x.jsx)("button",{onClick:b,disabled:!a.panes.length,className:"w-full py-2 text-sm font-medium bg-indigo-600 hover:bg-indigo-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:"Review Plan"})})]}):(0,x.jsxs)("div",{className:"flex flex-col items-center justify-center h-full px-6 text-center",children:[(0,x.jsx)(dx,{className:"w-8 h-8 text-zinc-700 mb-3"}),(0,x.jsx)("p",{className:"text-zinc-500 text-sm",children:"Your project plan will appear here as you chat."})]})}var dA=a.i(400210);let dB=(0,I.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]),dC=[{value:"claude",label:"Claude Code"},{value:"codex",label:"Codex"},{value:"gemini",label:"Gemini"},{value:"aider",label:"Aider"},{value:"forge",label:"Forge"},{value:"shell",label:"Shell"},{value:"custom",label:"Custom"}],dD=["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"];function dE({plan:a,onUpdate:b,onBack:c,onLaunch:d}){let[e,f]=(0,y.useState)([]);(0,y.useEffect)(()=>{fetch((0,cT.api)("/api/config")).then(a=>a.json()).then(a=>{a.customModels&&f(a.customModels)}).catch(()=>{})},[]);let g=(c,d)=>{b({...a,workspace:{...a.workspace,[c]:d}})},h=(c,d,e)=>{let f=[...a.panes];f[c]={...f[c],[d]:e},b({...a,panes:f})},i=a.workspace.name.trim()&&a.panes.length>0&&a.panes.every(a=>a.cwd.trim());return(0,x.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-6 space-y-6",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("button",{onClick:c,className:"flex items-center gap-1.5 text-xs text-zinc-400 hover:text-white",children:[(0,x.jsx)(dA.ArrowLeft,{className:"w-3.5 h-3.5"}),"Back to Chat"]}),(0,x.jsxs)("button",{onClick:d,disabled:!i,className:"flex items-center gap-1.5 px-4 py-2 text-sm font-medium bg-green-600 hover:bg-green-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:[(0,x.jsx)(dB,{className:"w-3.5 h-3.5"}),"Launch Space"]})]}),(0,x.jsxs)("div",{className:"bg-zinc-900 rounded-lg border border-zinc-700 p-4 space-y-3",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:"Workspace"}),(0,x.jsxs)("div",{className:"flex gap-3",children:[(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Name"}),(0,x.jsx)("input",{value:a.workspace.name,onChange:a=>g("name",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:outline-none focus:border-zinc-500"})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Color"}),(0,x.jsx)("div",{className:"flex gap-1 flex-wrap",style:{width:128},children:dD.map(b=>(0,x.jsx)("button",{onClick:()=>g("color",b),className:`w-5 h-5 rounded-full ${a.workspace.color===b?"ring-2 ring-white ring-offset-1 ring-offset-zinc-900":"hover:ring-1 hover:ring-zinc-500"}`,style:{backgroundColor:b}},b))})]})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Description"}),(0,x.jsx)("textarea",{value:a.workspace.description,onChange:a=>g("description",a.target.value),rows:2,className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:outline-none focus:border-zinc-500 resize-none"})]})]}),(0,x.jsxs)("div",{className:"space-y-3",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:["Panes (",a.panes.length,")"]}),(0,x.jsxs)("button",{onClick:()=>{b({...a,panes:[...a.panes,{title:"New Pane",agentType:"claude",cwd:"~",description:""}]})},className:"flex items-center gap-1 text-xs text-zinc-400 hover:text-white",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"})," Add Pane"]})]}),a.panes.map((c,d)=>(0,x.jsx)("div",{className:"bg-zinc-900 rounded-lg border border-zinc-700 p-4 space-y-2.5",children:(0,x.jsxs)("div",{className:"flex items-start gap-3",children:[(0,x.jsxs)("div",{className:"flex-1 space-y-2.5",children:[(0,x.jsxs)("div",{className:"flex gap-3",children:[(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Title"}),(0,x.jsx)("input",{value:c.title,onChange:a=>h(d,"title",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 focus:outline-none focus:border-zinc-500"})]}),(0,x.jsxs)("div",{className:"w-32",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Agent"}),(0,x.jsx)("select",{value:c.agentType,onChange:a=>h(d,"agentType",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200",children:dC.map(a=>(0,x.jsx)("option",{value:a.value,children:a.label},a.value))})]}),"forge"===c.agentType&&e.length>0&&(0,x.jsxs)("div",{className:"w-40",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Custom Model"}),(0,x.jsxs)("select",{value:c.customModelId||"",onChange:a=>h(d,"customModelId",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200",children:[(0,x.jsx)("option",{value:"",children:"Default"}),e.map(a=>(0,x.jsx)("option",{value:a.id,children:a.name},a.id))]})]})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Working Directory"}),(0,x.jsx)("input",{value:c.cwd,onChange:a=>h(d,"cwd",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs font-mono text-zinc-200 focus:outline-none focus:border-zinc-500",placeholder:"/path/to/project"})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Initial Prompt (optional)"}),(0,x.jsx)("textarea",{value:c.initialPrompt||"",onChange:a=>h(d,"initialPrompt",a.target.value),rows:2,className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 focus:outline-none focus:border-zinc-500 resize-none",placeholder:"What should this agent start working on?"})]})]}),(0,x.jsx)("button",{onClick:()=>{b({...a,panes:a.panes.filter((a,b)=>b!==d)})},className:"text-zinc-600 hover:text-red-400 mt-4",title:"Remove pane",children:(0,x.jsx)(K.Trash2,{className:"w-3.5 h-3.5"})})]})},d))]}),(0,x.jsx)("div",{className:"flex justify-end pt-2",children:(0,x.jsxs)("button",{onClick:d,disabled:!i,className:"flex items-center gap-1.5 px-6 py-2.5 text-sm font-medium bg-green-600 hover:bg-green-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:[(0,x.jsx)(dB,{className:"w-4 h-4"}),"Launch Space"]})})]})}function dF({isOpen:a,onClose:b,onLaunch:c}){let[d,e]=(0,y.useState)([]),[f,g]=(0,y.useState)(null),[h,i]=(0,y.useState)(!1),[j,k]=(0,y.useState)("chat"),[l,m]=(0,y.useState)(null),n=(0,y.useCallback)(async a=>{let b=[...d,{role:"user",content:a}];e(b),i(!0),m(null);try{let a=await fetch((0,cT.api)("/api/wizard/chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:b,currentPlan:f})}),c=await a.json();if(!a.ok)throw Error(c.error);e([...b,{role:"assistant",content:c.reply}]),c.plan&&g(c.plan)}catch(a){m(a.message)}i(!1)},[d,f]),o=(0,y.useCallback)(async()=>{if(f)try{let a=await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.workspace.name,description:f.workspace.description,color:f.workspace.color})}),d=(await a.json()).id;for(let a of f.panes)await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a.title,agentType:a.agentType,cwd:a.cwd,customCommand:a.customCommand,workspaceId:d,customModelId:a.customModelId})});c(d),b()}catch(a){m(a.message)}},[f,c,b]);return a?(0,x.jsxs)("div",{className:"fixed inset-0 z-50 bg-zinc-950/95 flex flex-col",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-6 py-3 border-b border-zinc-800 flex-shrink-0",children:[(0,x.jsx)("h2",{className:"text-sm font-semibold text-zinc-100",children:"Plan a Project"}),(0,x.jsx)("button",{onClick:b,className:"text-zinc-500 hover:text-white",children:(0,x.jsx)(N.X,{className:"w-4 h-4"})})]}),l&&(0,x.jsx)("div",{className:"px-6 py-2 bg-red-500/10 border-b border-red-500/20 text-xs text-red-400",children:l}),(0,x.jsx)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:"chat"===j?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"flex-1 flex flex-col border-r border-zinc-800 min-w-0",children:(0,x.jsx)(dw,{messages:d,onSend:n,loading:h})}),(0,x.jsx)("div",{className:"w-[380px] flex-shrink-0 overflow-y-auto",children:(0,x.jsx)(dz,{plan:f,onReview:()=>k("review")})})]}):(0,x.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,x.jsx)(dE,{plan:f,onUpdate:g,onBack:()=>k("chat"),onLaunch:o})})})]}):null}function dG({workspace:a}){let b=a?.id??null,c=a?.color??"#6366f1",[d,e]=(0,y.useState)([]),[f,g]=(0,y.useState)(!1),[h,i]=(0,y.useState)(""),[j,k]=(0,y.useState)(null),[l,m]=(0,y.useState)(""),n=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(null==b)return void e([]);let a=!1;return fetch((0,cT.api)(`/api/workspaces/${b}/todos`)).then(a=>a.json()).then(b=>{a||e(Array.isArray(b)?b:[])}).catch(()=>{a||e([])}),()=>{a=!0}},[b]);let o=(0,y.useCallback)(async()=>{let a=h.trim();if(!a||null==b){i(""),g(!1);return}let c=-Date.now(),d={id:c,workspaceId:b,text:a,completed:!1,sortOrder:Number.MAX_SAFE_INTEGER,created:new Date().toISOString(),completedAt:null};e(a=>[...a,d]),i(""),n.current?.focus();try{let d=await fetch((0,cT.api)(`/api/workspaces/${b}/todos`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})});if(!d.ok)throw Error(await d.text());let f=await d.json();e(a=>a.map(a=>a.id===c?f:a))}catch(a){console.error("failed to add todo",a),e(a=>a.filter(a=>a.id!==c))}},[h,b]),p=(0,y.useCallback)(async a=>{if(null==b)return;let c=!a.completed;e(b=>b.map(b=>b.id===a.id?{...b,completed:c,completedAt:c?new Date().toISOString():null}:b));try{let d=await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({completed:c})});if(!d.ok)throw Error();let f=await d.json();e(b=>b.map(b=>b.id===a.id?f:b))}catch{e(b=>b.map(b=>b.id===a.id?a:b))}},[b]),q=(0,y.useCallback)(async a=>{if(null==b)return;let c=-1;e(b=>(c=b.findIndex(b=>b.id===a.id),b.filter(b=>b.id!==a.id)));try{if(!(await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"DELETE"})).ok)throw Error()}catch{e(b=>{if(c<0||b.some(b=>b.id===a.id))return b;let d=[...b];return d.splice(Math.min(c,d.length),0,a),d})}},[b]),r=(0,y.useCallback)(async a=>{let c=l.trim();if(k(null),c&&c!==a.text&&null!=b){e(b=>b.map(b=>b.id===a.id?{...b,text:c}:b));try{if(!(await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:c})})).ok)throw Error()}catch{e(b=>b.map(b=>b.id===a.id?{...b,text:a.text}:b))}}},[l,b]),s=(0,y.useCallback)(async()=>{if(null==b)return;let a=d.filter(a=>a.completed);0===a.length||(e(a=>a.filter(a=>!a.completed)),(await Promise.allSettled(a.map(a=>fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"DELETE"})))).some(a=>"rejected"===a.status||"fulfilled"===a.status&&!a.value.ok)&&fetch((0,cT.api)(`/api/workspaces/${b}/todos`)).then(a=>a.json()).then(a=>e(Array.isArray(a)?a:[])).catch(()=>{}))},[d,b]),t=[...d].sort((a,b)=>{if(a.completed!==b.completed)return a.completed?1:-1;if(!a.completed)return a.sortOrder-b.sortOrder;let c=a.completedAt??"";return(b.completedAt??"").localeCompare(c)}),u=t.filter(a=>a.completed).length,v="h-7 rounded-full inline-flex items-center gap-1.5 pl-2 pr-1 py-1 text-xs border whitespace-nowrap";return(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900/40 px-4 py-2 flex-shrink-0",children:(0,x.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 max-h-[30vh] overflow-y-auto",children:[t.map(a=>{let b=j===a.id,d={backgroundColor:`${c}22`,borderColor:`${c}66`,color:c},e=a.completed?{backgroundColor:"rgba(39, 39, 42, 0.5)",borderColor:"rgba(63, 63, 70, 0.5)",color:"rgb(113, 113, 122)"}:d;return(0,x.jsxs)("div",{className:`group ${v}`,style:e,children:[(0,x.jsx)("button",{onClick:()=>p(a),className:"w-3.5 h-3.5 rounded-full border-2 flex items-center justify-center flex-shrink-0 transition-colors",style:{borderColor:a.completed?c:`${c}aa`,backgroundColor:a.completed?c:"transparent"},"aria-label":a.completed?"Mark incomplete":"Mark complete",children:a.completed&&(0,x.jsx)(M.Check,{className:"w-2.5 h-2.5 text-white"})}),b?(0,x.jsx)("input",{autoFocus:!0,value:l,onChange:a=>m(a.target.value),onBlur:()=>r(a),onKeyDown:b=>{"Enter"===b.key&&r(a),"Escape"===b.key&&k(null)},className:"bg-transparent focus:outline-none max-w-[240px]",style:{color:"inherit"}}):(0,x.jsx)("button",{onClick:()=>{k(a.id),m(a.text)},className:`text-left truncate max-w-[200px] ${a.completed?"line-through":""}`,style:{color:"inherit"},children:a.text}),(0,x.jsx)("button",{onClick:()=>q(a),className:"opacity-0 group-hover:opacity-100 transition-opacity rounded-full p-0.5 hover:bg-black/20 flex-shrink-0",style:{color:"inherit"},"aria-label":"Delete todo",children:(0,x.jsx)(N.X,{className:"w-3 h-3"})})]},a.id)}),f?(0,x.jsxs)("div",{className:`${v} border-dashed border-zinc-600 text-zinc-300`,children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3 text-zinc-500 flex-shrink-0"}),(0,x.jsx)("input",{ref:n,autoFocus:!0,value:h,onChange:a=>i(a.target.value),onKeyDown:a=>{"Enter"===a.key&&o(),"Escape"===a.key&&(i(""),g(!1))},onBlur:()=>{h.trim()?o():g(!1)},placeholder:"todo…",className:"bg-transparent focus:outline-none text-xs placeholder:text-zinc-600 max-w-[200px]"})]}):(0,x.jsxs)("button",{onClick:()=>{null!=b&&g(!0)},disabled:null==b,className:"h-7 rounded-full inline-flex items-center gap-1 px-3 py-1 text-xs border border-dashed border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"}),null==b?"Select a workspace":"add todo"]}),u>0&&(0,x.jsxs)("button",{onClick:s,className:"ml-auto text-[10px] text-zinc-500 hover:text-zinc-300 px-2 py-1 transition-colors whitespace-nowrap",children:["clear ",u," done"]})]})})}var dH=a.i(501027),dI=a.i(431067);function dJ(a){return null==a?"#52525b":a<=70?"#22c55e":a<=90?"#f59e0b":"#ef4444"}function dK(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"now";let c=Math.floor(b/36e5),d=Math.floor(b%36e5/6e4);if(c>=24){let a=Math.floor(c/24);return`${a}d ${c-24*a}h`}return c>0?`${c}h ${d}m`:`${d}m`}function dL({label:a,limit:b}){if(!b||null==b.utilization)return null;let c=Math.min(100,Math.max(0,b.utilization)),d=dJ(c),e=dK(b.resets_at);return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px]",title:e?`${a}: ${Math.floor(c)}% used \xb7 resets in ${e}`:`${a}: ${Math.floor(c)}% used`,children:[(0,x.jsx)("span",{className:"text-zinc-400 font-medium",children:a}),(0,x.jsx)("div",{className:"w-12 h-1 bg-zinc-800 rounded-full overflow-hidden",children:(0,x.jsx)("div",{className:"h-full transition-all",style:{width:`${c}%`,backgroundColor:d}})}),(0,x.jsxs)("span",{className:"text-zinc-500 tabular-nums w-7 text-right",children:[Math.floor(c),"%"]})]})}function dM({enabled:a}){let b=function(a){let[b,c]=(0,y.useState)(null),d=(0,y.useRef)(0);return(0,y.useEffect)(()=>{if(!a){d.current=0;return}let b=!1;async function e(){try{let a=await fetch((0,cT.api)("/api/claude/usage"));if(!a.ok||b)return;let e=await a.json();if(b)return;"upstream_error"===e.status||"expired"===e.status?(d.current+=1,c(a=>a?.status==="ok"&&d.current<2?a:e)):(d.current=0,c(e))}catch{if(b)return;d.current+=1,c(a=>a?.status==="ok"&&d.current<2?a:{status:"upstream_error"})}}e();let f=setInterval(e,6e4);return()=>{b=!0,clearInterval(f)}},[a]),b}(a),[c,d]=(0,y.useState)(!1),e=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(c)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a);function a(a){e.current&&!e.current.contains(a.target)&&d(!1)}},[c]),!a||!b)return null;if("unauthenticated"===b.status||"expired"===b.status)return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1 text-[10px] text-zinc-500 border border-zinc-800 rounded-md",title:"expired"===b.status?"OAuth token expired — run any Claude Code command to refresh":"No Claude.ai credentials found",children:[(0,x.jsx)(dI.LogIn,{className:"w-3 h-3"}),"sign in via Claude Code"]});if("upstream_error"===b.status)return null;let{data:f}=b,g=f.extra_usage,h=!!(g?.is_enabled&&g?.used_credits&&g.used_credits>0);return(0,x.jsxs)("div",{className:"relative",children:[(0,x.jsxs)("button",{onClick:()=>d(a=>!a),className:"flex items-center gap-2.5 px-2.5 py-1 border border-zinc-800 rounded-md hover:border-zinc-700 transition-colors",title:"Click for full usage detail",children:[(0,x.jsx)(dH.Zap,{className:"w-3 h-3 text-amber-400"}),(0,x.jsx)(dL,{label:"5h",limit:f.five_hour}),(0,x.jsx)(dL,{label:"7d",limit:f.seven_day}),(0,x.jsx)(dL,{label:"Opus",limit:f.seven_day_opus}),(0,x.jsx)(dL,{label:"Sonnet",limit:f.seven_day_sonnet}),h&&g?.used_credits!=null&&(0,x.jsxs)("span",{className:"text-[10px] text-amber-400 border-l border-zinc-800 pl-2",children:["+$",g.used_credits.toFixed(2)," overage"]})]}),c&&(0,x.jsxs)("div",{ref:e,className:"absolute top-full right-0 mt-1.5 z-50 w-80 p-3 bg-zinc-900 border border-zinc-700 rounded-md shadow-xl",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 font-medium mb-2",children:"Plan Usage"}),(0,x.jsxs)("div",{className:"space-y-2",children:[(0,x.jsx)(dN,{label:"5-hour window",limit:f.five_hour}),(0,x.jsx)(dN,{label:"7-day (overall)",limit:f.seven_day}),(0,x.jsx)(dN,{label:"7-day · Opus",limit:f.seven_day_opus}),(0,x.jsx)(dN,{label:"7-day · Sonnet",limit:f.seven_day_sonnet}),(0,x.jsx)(dN,{label:"7-day · OAuth apps",limit:f.seven_day_oauth_apps})]}),g?.is_enabled&&(0,x.jsxs)("div",{className:"mt-3 pt-3 border-t border-zinc-800",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 font-medium mb-1.5",children:"Overage credits"}),(0,x.jsxs)("div",{className:"text-xs text-zinc-300",children:[null!=g.used_credits?`$${g.used_credits.toFixed(2)}`:"—",null!=g.monthly_limit&&(0,x.jsxs)("span",{className:"text-zinc-500",children:[" / $",g.monthly_limit.toFixed(2)," monthly"]})]})]})]})]})}function dN({label:a,limit:b}){if(!b||null==b.utilization)return(0,x.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,x.jsx)("span",{className:"text-zinc-400",children:a}),(0,x.jsx)("span",{className:"text-zinc-600",children:"—"})]});let c=Math.min(100,Math.max(0,b.utilization)),d=dJ(c),e=dK(b.resets_at);return(0,x.jsxs)("div",{children:[(0,x.jsxs)("div",{className:"flex items-center justify-between text-xs mb-1",children:[(0,x.jsx)("span",{className:"text-zinc-300",children:a}),(0,x.jsxs)("span",{className:"text-zinc-500 tabular-nums",children:[Math.floor(c),"%",e&&(0,x.jsxs)("span",{className:"ml-1.5 text-zinc-600",children:["· ",e]})]})]}),(0,x.jsx)("div",{className:"h-1.5 bg-zinc-800 rounded-full overflow-hidden",children:(0,x.jsx)("div",{className:"h-full transition-all",style:{width:`${c}%`,backgroundColor:d}})})]})}function dO({panes:a,renderPane:b}){if(0===a.length)return null;if(1===a.length)return(0,x.jsx)("div",{className:"flex-1 p-1 overflow-hidden",children:(0,x.jsx)(dP,{id:a[0].id,children:c=>b(a[0],c)})});let c=a.length<=4?2:3,d=[];for(let b=0;b<a.length;b+=c)d.push(a.slice(b,b+c));return(0,x.jsx)(cJ,{orientation:"vertical",className:"flex-1 p-1",children:d.map((a,c)=>(0,x.jsxs)(y.default.Fragment,{children:[c>0&&(0,x.jsx)(cN,{className:"h-1.5 flex items-center justify-center group cursor-row-resize",children:(0,x.jsx)("div",{className:"w-8 h-0.5 rounded-full bg-zinc-700 group-hover:bg-zinc-500 group-active:bg-indigo-500 transition-colors"})}),(0,x.jsx)(cL,{minSize:15,children:1===a.length?(0,x.jsx)("div",{className:"h-full p-0.5",children:(0,x.jsx)(dP,{id:a[0].id,children:c=>b(a[0],c)})}):(0,x.jsx)(cJ,{orientation:"horizontal",className:"h-full",children:a.map((a,c)=>(0,x.jsxs)(y.default.Fragment,{children:[c>0&&(0,x.jsx)(cN,{className:"w-1.5 flex items-center justify-center group cursor-col-resize",children:(0,x.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-700 group-hover:bg-zinc-500 group-active:bg-indigo-500 transition-colors"})}),(0,x.jsx)(cL,{minSize:15,children:(0,x.jsx)("div",{className:"h-full p-0.5",children:(0,x.jsx)(dP,{id:a.id,children:c=>b(a,c)})})})]},a.id))})})]},`row-${c}`))})}function dP({id:a,children:b}){let{attributes:c,listeners:d,setNodeRef:e,transform:f,transition:g,isDragging:h}=function(a){var b,c,d,e;let{animateLayoutChanges:f=bK,attributes:g,disabled:h,data:i,getNewIndex:j=bJ,id:k,strategy:l,resizeObserverConfig:m,transition:o=bL}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:x}=(0,y.useContext)(bH),z=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),A=p.indexOf(k),B=(0,y.useMemo)(()=>({sortable:{containerId:q,index:A,items:p},...i}),[q,i,A,p]),C=(0,y.useMemo)(()=>p.slice(p.indexOf(k)),[p,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=an("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,y.useContext)(bp),k=(0,y.useRef)({disabled:c}),l=(0,y.useRef)(!1),m=(0,y.useRef)(null),o=(0,y.useRef)(null),{disabled:p,updateMeasurementsFor:q,timeout:r}={...by,...e},s=ai(null!=q?q:d),t=bc({callback:(0,y.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),o.current=null},r)},[r]),disabled:p||!g}),[u,v]=ak((0,y.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=ai(b);return(0,y.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,y.useEffect)(()=>(h({type:n.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:m,data:w}}),()=>h({type:n.UnregisterDroppable,key:f,id:d})),[d]),(0,y.useEffect)(()=>{c!==k.current.disabled&&(h({type:n.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:m,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:B,disabled:z.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...m}}),{active:H,activatorEvent:I,activeNodeRect:J,attributes:K,setNodeRef:L,listeners:M,isDragging:N,over:O,setActivatorNodeRef:P,transform:Q}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=an("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,y.useContext)(bp),{role:n=bx,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,y.useContext)(q?bu:bw),[s,t]=ak(),[u,v]=ak(),w=(0,y.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),x=ai(c);return ag(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:x}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,y.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===bx||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:B,attributes:{...bO,...g},disabled:z.draggable}),R=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,y.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,L),S=!!H,T=S&&!t&&bC(r)&&bC(v),U=!w&&N,V=U&&T?Q:null,W=T?null!=V?V:(null!=l?l:x)({rects:u,activeNodeRect:J,activeIndex:r,overIndex:v,index:A}):null,X=bC(r)&&bC(v)?j({id:k,items:p,activeIndex:r,overIndex:v}):A,Y=null==H?void 0:H.id,Z=(0,y.useRef)({activeId:Y,items:p,newIndex:X,containerId:q}),$=p!==Z.current.items,_=f({active:H,containerId:q,isDragging:N,isSorting:S,id:k,index:A,items:p,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:o,wasDragging:null!=Z.current.activeId}),aa=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,y.useState)(null),h=(0,y.useRef)(c);return ag(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=aN(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,y.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!_,index:A,node:E,rect:D});return(0,y.useEffect)(()=>{S&&Z.current.newIndex!==X&&(Z.current.newIndex=X),q!==Z.current.containerId&&(Z.current.containerId=q),p!==Z.current.items&&(Z.current.items=p)},[S,X,q,p]),(0,y.useEffect)(()=>{if(Y===Z.current.activeId)return;if(null!=Y&&null==Z.current.activeId){Z.current.activeId=Y;return}let a=setTimeout(()=>{Z.current.activeId=Y},50);return()=>clearTimeout(a)},[Y]),{active:H,activeIndex:r,attributes:K,data:B,rect:D,index:A,newIndex:X,items:p,isOver:F,isSorting:S,isDragging:N,listeners:M,node:E,overIndex:v,over:O,setNodeRef:R,setActivatorNodeRef:P,setDroppableNodeRef:G,setDraggableNodeRef:L,transform:null!=aa?aa:W,transition:aa||$&&Z.current.newIndex===A?bN:(!U||ar(I))&&o&&(S||_)?at.Transition.toString({...o,property:bM}):void 0}}({id:a}),i={transform:at.Transform.toString(f),transition:g,opacity:h?.5:1,zIndex:h?50:"auto"};return(0,x.jsx)("div",{ref:e,style:i,className:"h-full",children:b({...c,...d})})}function dQ(){return(0,x.jsx)(cY.TotpGate,{children:a=>(0,x.jsx)(dR,{terminalToken:a})})}function dR({terminalToken:a}){let b=(0,Y.useRouter)(),{basePath:c,hasNetwork:d,hasCollaboration:e,hasCortex:f}=(0,cW.useTier)(),[g,h]=(0,y.useState)([]),[i,j]=(0,y.useState)(!0),[k,l]=(0,y.useState)(!0),[m,n]=(0,y.useState)(!1),[o,p]=(0,y.useState)(null),[q,r]=(0,y.useState)(new Set),[s,t]=(0,y.useState)(new Set),[u,v]=(0,y.useState)(!1),[w,I]=(0,y.useState)(!0);!function(){let a=(0,c3.useQueryClient)(),{hasCollaboration:b}=(0,cW.useTier)();(0,y.useEffect)(()=>{if(!b)return;let c=new EventSource((0,cT.api)("/api/events")),d=()=>{a.invalidateQueries({queryKey:["workspace-messages"]})},e=()=>{a.invalidateQueries({queryKey:["workspace-context"]})};return c.addEventListener("workspace:message",d),c.addEventListener("workspace:request",d),c.addEventListener("workspace:context_updated",e),()=>{c.removeEventListener("workspace:message",d),c.removeEventListener("workspace:request",d),c.removeEventListener("workspace:context_updated",e),c.close()}},[a,b])}();let[$,_]=(0,y.useState)(!1);(0,y.useEffect)(()=>{fetch((0,cT.api)("/api/config")).then(a=>a.json()).then(a=>_(!!a.todosEnabled)).catch(()=>{})},[]);let[aa,ab]=(0,y.useState)([]),[ac,ad]=(0,y.useState)(null),[ae,af]=(0,y.useState)(!1),[ag,ah]=(0,y.useState)(!1),[ai,aj]=(0,y.useState)(!1),[ak,al]=(0,y.useState)(""),[am,an]=(0,y.useState)("#6366f1"),[ao,ap]=(0,y.useState)(null),[aq,ar]=(0,y.useState)(""),[as,at]=(0,y.useState)(null),au=(0,y.useRef)(null),[av,aw]=(0,y.useState)(null),[ax,ay]=(0,y.useState)(!1),[az,aA]=(0,y.useState)(null),aB=(0,y.useCallback)(a=>{aA(a),ay(!0)},[]),[aC,aE]=(0,y.useState)(""),[aF,aG]=(0,y.useState)(""),[aH,aJ]=(0,y.useState)("#6366f1"),[aK,aL]=(0,y.useState)(""),[aM,aN]=(0,y.useState)("claude"),[aO,aP]=(0,y.useState)("new"),[aQ,aR]=(0,y.useState)(""),[aS,aT]=(0,y.useState)(""),aU=(0,c$.useRemoteWorkspaces)(),[aV,aW]=(0,y.useState)(new Set),aX=(0,y.useCallback)(a=>{aW(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),[aY,aZ]=(0,y.useState)(""),[a$,a_]=(0,y.useState)([]),[a0,a1]=(0,y.useState)(!1),[a2,a4]=(0,y.useState)(!1),[a5,a6]=(0,y.useState)(null),[a7,a9]=(0,y.useState)(!0),ba=(0,y.useRef)(null),bb=(0,y.useRef)(null),bc=(0,y.useRef)(null),bd=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/workspaces")),b=await a.json();ab(b);let c=b.find(a=>a.isActive);return ad(c||null),l(!1),c||null},[]),be=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/panes")),b=await a.json();h(b);let c=new Set;for(let a of b)a.isPopout&&c.add(a.id);t(c),j(!1)},[]);(0,y.useEffect)(()=>{bd()},[bd]),(0,y.useEffect)(()=>{u&&be()},[u,be]),(0,y.useEffect)(()=>{let a=new BroadcastChannel("spaces-panes");return bc.current=a,a.onmessage=a=>{let b=a.data;"popout-opened"===b.type?t(a=>new Set(a).add(b.paneId)):"popout-closed"===b.type?(t(a=>{let c=new Set(a);return c.delete(b.paneId),c}),h(a=>a.map(a=>a.id===b.paneId?{...a,isPopout:!1}:a))):"pane-updated"===b.type&&h(a=>a.map(a=>a.id===b.paneId?{...a,...b.data}:a))},()=>a.close()},[be]);let[bf,bg]=(0,y.useState)(0);(0,y.useEffect)(()=>{if(!i)for(let a of g)a.isPopout&&bq(a)},[i,bf]),(0,y.useEffect)(()=>{if(!(cZ.AGENT_TYPES[aM]?.supportsResume&&"resume"===aO))return;a1(!0);let a=setTimeout(()=>{let a=new URLSearchParams({sortBy:"modified",sortDir:"DESC",limit:"200"});aY&&a.set("search",aY),a7&&aF&&a.set("projectPath",aF),a.set("agentType",aM),fetch((0,cT.api)(`/api/sessions?${a}`)).then(a=>a.json()).then(a=>{a_(a.sessions||[]),a1(!1)}).catch(()=>a1(!1))},300*!!aY);return()=>clearTimeout(a)},[aM,aO,aY,a7,aF]),(0,y.useEffect)(()=>{function a(a){ba.current&&!ba.current.contains(a.target)&&a4(!1),bb.current&&!bb.current.contains(a.target)&&af(!1),au.current&&!au.current.contains(a.target)&&at(null)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]);let bh=(0,y.useCallback)(async()=>{let a,b=cZ.AGENT_TYPES[aM],c=aF||a5?.projectPath||"/";"shell"!==aM&&(a="resume"===aO&&b?.supportsResume?a5?.sessionId||aK:"new");let d=aC||(a5?a5.customName||a5.firstPrompt?.slice(0,50)||b?.name||"Agent":"")||("shell"===aM?"Terminal":b?.name||"Agent"),e=ac?.collaboration&&"shell"!==aM,f=await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:d,color:aH,cwd:c,claudeSessionId:a,agentType:aM,customCommand:"custom"===aM?aQ:void 0,nodeId:aS||void 0,isCollaborating:e||void 0})}),g=await f.json();h(a=>[...a,g]),(0,c7.track)("pane_created",{agentType:aM}),n(!1),aE(""),aG(""),aJ("#6366f1"),aL(""),aN("shell"),aP("new"),aR(""),aT(""),a6(null),aZ("")},[aC,aF,aH,aK,aM,aO,aQ,aS,a5]),bi=(0,y.useCallback)(async a=>{let b=g.find(b=>b.id===a);await fetch((0,cT.api)(`/api/panes/${a}`),{method:"DELETE"}),h(b=>b.filter(b=>b.id!==a)),b&&(0,c7.track)("pane_closed",{agentType:b.agentType}),o===a&&p(null),t(b=>{let c=new Set(b);return c.delete(a),c})},[o,g]),bj=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/panes/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),h(c=>c.map(c=>c.id===a?{...c,...b}:c))},[]),bk=(0,y.useCallback)(async a=>{let b=g.find(b=>b.id===a);if(!b)return;let c=b.title.match(/^(.*?)(?:\s+\((\d+)\))?\s*$/),d=(c?.[1]||b.title).trim(),e=d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),f=RegExp(`^${e}(?:\\s+\\((\\d+)\\))?$`),i=1;for(let a of g){let b=a.title.match(f);if(!b)continue;let c=b[1]?parseInt(b[1],10):1;c>i&&(i=c)}let j=`${d} (${i+1})`,k=ac?.collaboration&&"shell"!==b.agentType,l=await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:j,color:b.color,cwd:b.cwd,agentType:b.agentType,customCommand:b.customCommand,nodeId:b.nodeId||void 0,customModelId:b.customModelId||void 0,isCollaborating:k||void 0})}),m=await l.json();h(a=>[...a,m]),(0,c7.track)("pane_duplicated",{agentType:b.agentType})},[g,ac]),bl=(0,y.useCallback)(a=>{p(b=>b===a?null:a)},[]),bm=(0,y.useCallback)(a=>{r(b=>new Set(b).add(a)),o===a&&p(null)},[o]),bn=(0,y.useCallback)(a=>{r(b=>{let c=new Set(b);return c.delete(a),c})},[]),bo=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,y.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(aD(a8,{activationConstraint:{distance:8}}),aD(a3)),bp=(0,y.useCallback)(a=>{let{active:b,over:c}=a;c&&b.id!==c.id&&h(a=>{let d=a.findIndex(a=>a.id===b.id),e=a.findIndex(a=>a.id===c.id);if(-1===d||-1===e)return a;let f=bB(a,d,e);return f.forEach((a,b)=>{a.sortOrder!==b&&fetch((0,cT.api)(`/api/panes/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({sortOrder:b})}).catch(()=>{})}),f.map((a,b)=>({...a,sortOrder:b}))})},[]),bq=(0,y.useCallback)(a=>{let b=a.winWidth||900,c=a.winHeight||600,d=a.winX??Math.round(screen.width/2-b/2),e=a.winY??Math.round(screen.height/2-c/2),f=`left=${d},top=${e},width=${b},height=${c},menubar=no,toolbar=no,location=no,status=no`;window.open((0,cT.api)(`/terminal/pane/${a.id}`),`spaces-pane-${a.id}`,f),t(b=>new Set(b).add(a.id)),fetch((0,cT.api)(`/api/panes/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPopout:!0,winX:d,winY:e,winWidth:b,winHeight:c})})},[]),br=(0,y.useCallback)(a=>{let b=g.find(b=>b.id===a);b&&bq(b)},[g,bq]),bs=(0,y.useCallback)(async a=>{bc.current?.postMessage({type:"close-popouts"}),await fetch((0,cT.api)(`/api/panes/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPopout:!1})}),t(b=>{let c=new Set(b);return c.delete(a),c})},[]),bt=(0,y.useCallback)(()=>{s.size>0&&(bc.current?.postMessage({type:"close-popouts"}),t(new Set))},[s]),bu=(0,y.useCallback)(async a=>{bt(),await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"switch",workspaceId:a})}),p(null),await bd(),await be(),af(!1),u?(0,c7.track)("workspace_switched"):(0,c7.track)("workspace_entered"),v(!0),bg(a=>a+1)},[bd,be,bt,u]),bw=(0,y.useCallback)(async()=>{ak.trim()&&ac&&(await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"duplicate",sourceId:ac.id,name:ak.trim(),color:am})}),al(""),an("#6366f1"),ah(!1),await bd())},[ak,am,ac,bd]),bx=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"New Space",color:"#6366f1"})}),b=await a.json();(0,c7.track)("workspace_created"),await bu(b.id)},[bu]),by=(0,y.useCallback)(async a=>{bt(),await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"DELETE"}),(0,c7.track)("workspace_deleted"),await bd(),await be(),af(!1)},[bd,be,bt]),bz=(0,y.useCallback)(()=>{bt(),h([]),v(!1)},[bt]),bA=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})}),ap(null),await bd()},[bd]),bC=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({color:b})}),at(null),await bd()},[bd]),bD=g.filter(a=>!s.has(a.id)&&!q.has(a.id)),bE=g.filter(a=>q.has(a.id));return u?i?(0,x.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,x.jsx)(A.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):(0,x.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-zinc-800 flex-shrink-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-3",children:[(0,x.jsx)("button",{onClick:bz,className:"p-1.5 -ml-1 text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",title:"Close space and go home",children:(0,x.jsx)(P.Home,{className:"w-4 h-4"})}),(0,x.jsx)("div",{className:"w-px h-4 bg-zinc-800"}),(0,x.jsx)("h1",{className:"text-sm font-semibold",children:"Spaces"}),(0,x.jsxs)("div",{ref:bb,className:"relative",children:[(0,x.jsxs)("button",{onClick:()=>af(!ae),className:"flex items-center gap-1.5 px-2.5 py-1 text-xs bg-zinc-800 border border-zinc-700 rounded-md hover:border-zinc-600 transition-colors",children:[ac&&(0,x.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:ac.color}}),(0,x.jsx)("span",{className:"max-w-[150px] truncate",children:ac?.name||"No space"}),(0,x.jsx)(G.ChevronDown,{className:"w-3 h-3 text-zinc-500"})]}),ae&&(0,x.jsxs)("div",{className:"absolute z-50 top-full left-0 mt-1 w-72 bg-zinc-800 border border-zinc-700 rounded-md shadow-xl overflow-hidden",children:[(0,x.jsx)("div",{className:"p-2 border-b border-zinc-700/50 text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Switch Space"}),(0,x.jsx)("div",{className:"max-h-[300px] overflow-y-auto",children:aa.map(a=>(0,x.jsx)("div",{className:"flex items-center gap-2 hover:bg-zinc-700/50 transition-colors group",children:ao===a.id?(0,x.jsxs)("div",{className:"flex items-center gap-1 flex-1 px-3 py-2",children:[(0,x.jsx)("input",{autoFocus:!0,value:aq,onChange:a=>ar(a.target.value),onKeyDown:b=>{"Enter"===b.key&&bA(a.id,aq),"Escape"===b.key&&ap(null)},className:"flex-1 bg-transparent border border-zinc-600 rounded px-1.5 py-0.5 text-xs focus:outline-none focus:border-indigo-400"}),(0,x.jsx)("button",{onClick:()=>bA(a.id,aq),className:"text-green-400 hover:text-green-300",children:(0,x.jsx)(M.Check,{className:"w-3 h-3"})})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"relative pl-3",children:[(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),at(as===a.id?null:a.id)},className:"w-2.5 h-2.5 rounded-full flex-shrink-0 hover:ring-2 hover:ring-zinc-500/50 transition-all",style:{backgroundColor:a.color},title:"Change color"}),as===a.id&&(0,x.jsx)("div",{ref:au,className:"absolute z-50 top-full left-0 mt-1.5 p-2 bg-zinc-800 border border-zinc-700 rounded-md shadow-xl",onClick:a=>a.stopPropagation(),children:(0,x.jsx)(cO.ColorPicker,{value:a.color,onChange:b=>bC(a.id,b)})})]}),(0,x.jsxs)("button",{onClick:()=>bu(a.id),className:"flex items-center gap-2 flex-1 py-2 pr-3 text-left",children:[(0,x.jsx)("span",{className:"text-xs text-white truncate flex-1",children:a.name}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[a.paneCount||0," panes"]}),a.isActive&&(0,x.jsx)("span",{className:"text-[10px] text-indigo-400",children:"active"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-0.5 pr-2 opacity-0 group-hover:opacity-100",children:[(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),ap(a.id),ar(a.name)},className:"p-1 text-zinc-500 hover:text-white rounded",title:"Rename",children:(0,x.jsx)(L.Pencil,{className:"w-2.5 h-2.5"})}),!a.isActive&&aa.length>1&&(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),confirm(`Delete space "${a.name}" and all its panes?`)&&by(a.id)},className:"p-1 text-zinc-500 hover:text-red-400 rounded",title:"Delete",children:(0,x.jsx)(K.Trash2,{className:"w-2.5 h-2.5"})})]})]})},a.id))}),(0,x.jsxs)("div",{className:"border-t border-zinc-700/50 p-1.5 flex gap-1",children:[(0,x.jsxs)("button",{onClick:bx,className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"})," New Empty"]}),(0,x.jsxs)("button",{onClick:()=>{aj(!0),af(!1)},className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-indigo-400 hover:text-indigo-300 hover:bg-indigo-500/10 rounded transition-colors flex-1",children:[(0,x.jsx)(X,{className:"w-3 h-3"})," Plan Project"]}),(0,x.jsxs)("button",{onClick:()=>{ah(!0),af(!1)},className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1",children:[(0,x.jsx)(O.Copy,{className:"w-3 h-3"})," Duplicate"]})]})]})]}),(0,x.jsxs)("span",{className:"text-[11px] text-zinc-500",children:[bD.length," pane",1!==bD.length?"s":"",s.size>0&&` + ${s.size} popped out`]})]}),(0,x.jsxs)("div",{className:"flex items-center gap-2",children:[(0,x.jsx)(dM,{enabled:g.some(a=>"claude"===a.agentType&&!s.has(a.id))}),(0,x.jsxs)("button",{onClick:()=>ay(!ax),className:`flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md border transition-colors ${ax?"border-amber-500/50 bg-amber-600/20 text-amber-400":"border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-600"}`,title:ax?"Hide file explorer":"Show file explorer",children:[(0,x.jsx)(E.FolderOpen,{className:"w-3.5 h-3.5"}),"Files"]}),e&&ac&&(0,x.jsxs)("button",{onClick:async()=>{let a=!ac.collaboration;for(let b of(await fetch((0,cT.api)(`/api/workspaces/${ac.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({collaboration:a})}),ad(b=>b?{...b,collaboration:a}:b),ab(b=>b.map(b=>b.id===ac.id?{...b,collaboration:a}:b)),g.filter(a=>a.workspaceId===ac.id&&"shell"!==a.agentType)))b.isCollaborating!==a&&await bj(b.id,{isCollaborating:a})},className:`flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md border transition-colors ${ac.collaboration?"border-indigo-500/50 bg-indigo-600/20 text-indigo-400":"border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-600"}`,title:ac.collaboration?"Collaboration enabled — click to disable":"Enable collaboration for this workspace",children:[(0,x.jsx)(U.Users,{className:"w-3.5 h-3.5"}),"Collab"]}),(0,x.jsxs)("button",{onClick:bz,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs border border-zinc-700 text-zinc-400 rounded-md hover:text-white hover:border-zinc-600 transition-colors",title:"Close space and return home",children:[(0,x.jsx)(Q,{className:"w-3.5 h-3.5"}),"Close"]}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-indigo-600 text-white rounded-md hover:bg-indigo-500 transition-colors",children:[(0,x.jsx)(z.Plus,{className:"w-3.5 h-3.5"}),"Add Pane"]})]})]}),ag&&(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900 px-4 py-3",children:(0,x.jsxs)("div",{className:"max-w-md flex items-center gap-2",children:[(0,x.jsx)(J,{className:"w-4 h-4 text-indigo-400 flex-shrink-0"}),(0,x.jsx)("input",{autoFocus:!0,type:"text",placeholder:"New space name...",value:ak,onChange:a=>al(a.target.value),onKeyDown:a=>"Enter"===a.key&&bw(),className:"flex-1 px-3 py-1.5 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white"}),(0,x.jsx)(cO.ColorPicker,{value:am,onChange:an}),(0,x.jsx)("button",{onClick:bw,disabled:!ak.trim(),className:"px-3 py-1.5 text-xs bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50",children:"Save"}),(0,x.jsx)("button",{onClick:()=>ah(!1),className:"p-1.5 text-zinc-400 hover:text-white",children:(0,x.jsx)(N.X,{className:"w-4 h-4"})})]})}),m&&(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900 px-4 py-4",children:(0,x.jsxs)("div",{className:"max-w-lg space-y-3",children:[(0,x.jsx)("h3",{className:"text-sm font-semibold",children:"Add Pane"}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Agent"}),(0,x.jsx)("div",{className:"grid grid-cols-3 gap-1.5",children:cZ.AGENT_LIST.map(a=>(0,x.jsxs)("button",{onClick:()=>{aN(a.id),aP("new"),a6(null),aL("")},className:`flex items-center gap-2 px-3 py-2 rounded-md border text-left transition-colors ${aM===a.id?"border-indigo-500 bg-indigo-600/20 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:[(0,x.jsx)("span",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsxs)("div",{className:"min-w-0",children:[(0,x.jsx)("div",{className:"text-xs font-medium truncate",children:a.name}),(0,x.jsx)("div",{className:"text-[10px] text-zinc-500 truncate",children:a.description})]})]},a.id))})]}),cZ.AGENT_TYPES[aM]?.supportsResume&&(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsx)("button",{onClick:()=>{aP("new"),a6(null),aL("")},className:`px-3 py-1.5 text-xs rounded-md border transition-colors ${"new"===aO?"bg-indigo-600 border-indigo-500 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:"New Session"}),(0,x.jsx)("button",{onClick:()=>aP("resume"),className:`px-3 py-1.5 text-xs rounded-md border transition-colors ${"resume"===aO?"bg-indigo-600 border-indigo-500 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:"Resume Session"})]}),"custom"===aM&&(0,x.jsx)("input",{type:"text",placeholder:"Command to run (e.g. python agent.py)",value:aQ,onChange:a=>aR(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white font-mono"}),(0,x.jsx)(cX,{value:aS,onChange:aT}),(0,x.jsx)("input",{type:"text",placeholder:"Title (optional)",value:aC,onChange:a=>aE(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white"}),aS?(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Working directory (on remote node)"}),(0,x.jsx)("input",{type:"text",placeholder:"e.g. /home/user/project or ~ for home",value:aF,onChange:a=>aG(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white font-mono"})]}):(0,x.jsx)(cU,{value:aF,onChange:aG}),cZ.AGENT_TYPES[aM]?.supportsResume&&"resume"===aO&&(0,x.jsxs)("div",{ref:ba,className:"relative",children:[a5?(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md",children:[(0,x.jsx)(D.MessageSquare,{className:"w-3.5 h-3.5 text-indigo-400 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-white truncate",children:a5.customName||a5.firstPrompt?.slice(0,60)||"Untitled"}),(0,x.jsxs)("div",{className:"text-[10px] text-zinc-500 flex items-center gap-2",children:[(0,x.jsx)("span",{children:a5.projectName}),(0,x.jsxs)("span",{children:[a5.messageCount," msgs"]}),(0,x.jsxs)("span",{className:"font-mono",children:[a5.sessionId.slice(0,8),"..."]})]})]}),(0,x.jsx)("button",{onClick:()=>{a6(null),a4(!0)},className:"text-zinc-400 hover:text-white text-xs",children:"Change"})]}):(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md cursor-text",onClick:()=>a4(!0),children:[(0,x.jsx)(C.Search,{className:"w-3.5 h-3.5 text-zinc-500"}),(0,x.jsx)("input",{type:"text",placeholder:"Search sessions by name, prompt, or project...",value:aY,onChange:a=>{aZ(a.target.value),a4(!0)},onFocus:()=>a4(!0),className:"flex-1 bg-transparent focus:outline-none text-white placeholder:text-zinc-500"}),aF&&(0,x.jsx)("button",{onClick:a=>{a.stopPropagation(),a9(!a7)},className:`flex-shrink-0 px-1.5 py-0.5 text-[10px] rounded border transition-colors ${a7?"border-indigo-500/50 bg-indigo-600/20 text-indigo-400":"border-zinc-600 text-zinc-500 hover:text-zinc-400"}`,title:a7?"Showing sessions for this directory — click to show all":"Showing all sessions — click to filter by directory",children:a7?aF.split("/").pop():"All"}),(0,x.jsx)(G.ChevronDown,{className:"w-3.5 h-3.5 text-zinc-500"})]}),a2&&!a5&&(0,x.jsx)("div",{className:"absolute z-50 top-full left-0 right-0 mt-1 max-h-[300px] overflow-y-auto bg-zinc-800 border border-zinc-700 rounded-md shadow-xl",children:a0?(0,x.jsxs)("div",{className:"flex items-center justify-center py-6",children:[(0,x.jsx)(A.Loader2,{className:"w-4 h-4 animate-spin text-zinc-400"}),(0,x.jsx)("span",{className:"text-xs text-zinc-400 ml-2",children:"Loading sessions..."})]}):0===a$.length?(0,x.jsx)("div",{className:"py-4 px-3 text-xs text-zinc-500 text-center",children:aY?"No sessions match your search":"No sessions found"}):a$.map(a=>(0,x.jsx)("button",{onClick:()=>{a6(a),aL(a.sessionId),!aF&&a.projectPath&&aG(a.projectPath),aC||aE(a.customName||""),a4(!1)},className:"w-full text-left px-3 py-2.5 hover:bg-zinc-700 border-b border-zinc-700/50 last:border-0 transition-colors",children:(0,x.jsxs)("div",{className:"flex items-start gap-2",children:[(0,x.jsx)(D.MessageSquare,{className:"w-3.5 h-3.5 text-indigo-400 mt-0.5 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-xs text-white truncate",children:a.customName||a.firstPrompt?.slice(0,70)||"Untitled session"}),(0,x.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,x.jsxs)("span",{className:"text-[10px] text-indigo-400/70 flex items-center gap-0.5",children:[(0,x.jsx)(E.FolderOpen,{className:"w-2.5 h-2.5"}),a.projectName]}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[a.messageCount," msgs"]}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500 flex items-center gap-0.5",children:[(0,x.jsx)(F.Clock,{className:"w-2.5 h-2.5"}),new Date(a.modified).toLocaleDateString()]}),a.starred&&(0,x.jsx)("span",{className:"text-[10px]",children:"★"})]}),a.tags?.length>0&&(0,x.jsx)("div",{className:"flex gap-1 mt-1",children:a.tags.map(a=>(0,x.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 bg-zinc-700 rounded text-zinc-400",children:a},a))})]})]})},a.sessionId))})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Color"}),(0,x.jsx)(cO.ColorPicker,{value:aH,onChange:aJ})]}),(0,x.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,x.jsx)("button",{onClick:bh,disabled:"custom"===aM&&!aQ.trim(),className:"px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50 disabled:cursor-not-allowed",children:"Create"}),(0,x.jsx)("button",{onClick:()=>n(!1),className:"px-4 py-2 text-sm border border-zinc-700 text-zinc-400 rounded-md hover:text-white hover:border-zinc-600",children:"Cancel"})]})]})}),s.size>0&&(0,x.jsxs)("div",{className:"flex items-center gap-2 px-4 py-1.5 border-b border-zinc-800 bg-zinc-900/50",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500",children:"Popped out:"}),g.filter(a=>s.has(a.id)).map(a=>(0,x.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,x.jsxs)("button",{onClick:()=>bq(a),className:"flex items-center gap-1 px-2 py-0.5 text-[10px] bg-zinc-800 border border-zinc-700 rounded-l text-zinc-400 hover:text-white hover:border-zinc-600",title:"Focus popout window",children:[(0,x.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.title]}),(0,x.jsx)("button",{onClick:()=>bs(a.id),className:"px-1 py-0.5 text-[10px] bg-zinc-800 border border-zinc-700 border-l-0 rounded-r text-zinc-500 hover:text-white hover:border-zinc-600",title:"Pop back into grid",children:(0,x.jsx)(R,{className:"w-2.5 h-2.5"})})]},a.id))]}),$&&(0,x.jsx)(dG,{workspace:ac}),(0,x.jsxs)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:[ax&&(0,x.jsx)("div",{className:"w-64 flex-shrink-0",children:(0,x.jsx)(dt,{onClose:()=>ay(!1),navigateTo:az})}),0===bD.length&&0===s.size&&0===q.size?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"text-center space-y-3",children:[(0,x.jsx)("img",{src:`${c}/spaces_icon.png`,alt:"Spaces",className:"w-16 h-16 mx-auto opacity-30"}),(0,x.jsx)("p",{className:"text-zinc-500",children:"No panes yet."}),(0,x.jsx)("p",{className:"text-zinc-600 text-xs",children:"Add a pane to start a shell, Claude, Codex, Gemini, or any agent."}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 inline-flex items-center gap-2",children:[(0,x.jsx)(z.Plus,{className:"w-4 h-4"}),"Add your first pane"]})]})}):0===bD.length?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"text-center space-y-2",children:[(0,x.jsx)("p",{className:"text-zinc-500 text-sm",children:q.size>0&&s.size>0?"All panes are minimized or popped out.":q.size>0?"All panes are minimized. Use the toolbar to restore them.":"All panes are popped out to separate windows."}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"px-3 py-1.5 text-xs text-zinc-400 hover:text-white border border-zinc-700 rounded-md hover:border-zinc-600 inline-flex items-center gap-1.5",children:[(0,x.jsx)(z.Plus,{className:"w-3.5 h-3.5"}),"Add another pane"]})]})}):(0,x.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden min-h-0",children:[(0,x.jsx)(bv,{sensors:bo,collisionDetection:aI,onDragEnd:bp,children:(0,x.jsx)(bI,{items:bD.map(a=>a.id),strategy:bF,children:(0,x.jsx)(dO,{panes:o?bD.filter(a=>a.id===o):bD,renderPane:(b,c)=>(0,x.jsx)(Z.TerminalPane,{pane:b,onClose:bi,onUpdate:bj,onDuplicate:bk,isMaximized:o===b.id,onToggleMaximize:bl,onMinimize:bm,onPopout:br,onBrowse:aB,terminalToken:a,workspaceCollaboration:ac?.collaboration,dragHandleProps:c})})})}),bE.length>0&&(0,x.jsx)("div",{className:"flex items-center gap-1.5 px-2 py-1.5 border-t border-zinc-800 flex-shrink-0 overflow-x-auto bg-zinc-950",children:bE.map(a=>(0,x.jsxs)("button",{onClick:()=>bn(a.id),className:"flex items-center gap-1.5 px-2.5 py-1 text-[11px] rounded-md border border-zinc-700 hover:border-zinc-500 bg-zinc-800/50 hover:bg-zinc-700/50 text-zinc-400 hover:text-white transition-colors flex-shrink-0",title:`Restore ${a.title}`,children:[(0,x.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsx)("span",{className:"truncate max-w-[100px]",children:a.title}),(0,x.jsx)(W.Maximize2,{className:"w-2.5 h-2.5 text-zinc-500"})]},a.id))})]}),ac?.collaboration&&(0,x.jsx)(c4,{workspaceId:ac?.id??null,panes:bD.map(a=>({id:a.id,title:a.title,agentType:a.agentType,color:a.color})),collapsed:w,onToggle:()=>I(!w)})]}),(0,x.jsx)(dF,{isOpen:ai,onClose:()=>aj(!1),onLaunch:a=>{aj(!1),bu(a)}})]}):(0,x.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,x.jsx)("div",{className:"absolute top-4 left-4",children:(0,x.jsxs)("button",{onClick:()=>b.push("/"),className:"flex items-center gap-2 px-3 py-1.5 text-xs text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",children:[(0,x.jsx)(P.Home,{className:"w-3.5 h-3.5"}),"Home"]})}),(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center p-8 overflow-y-auto min-h-0",children:(0,x.jsxs)("div",{className:"w-full max-w-2xl my-auto",children:[(0,x.jsxs)("div",{className:"text-center mb-10",children:[(0,x.jsx)("img",{src:`${c}/spaces_icon.png`,alt:"Spaces",className:"w-16 h-16 mx-auto mb-4"}),(0,x.jsx)("h1",{className:"text-2xl font-bold mb-2",children:"Spaces"}),(0,x.jsx)("p",{className:"text-zinc-400 text-sm",children:"Choose a workspace to open, or create a new one."})]}),k?(0,x.jsx)("div",{className:"flex justify-center py-12",children:(0,x.jsx)(A.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"grid grid-cols-2 gap-3 mb-6",children:aa.map(a=>(0,x.jsxs)("div",{className:`relative bg-zinc-900 border rounded-lg transition-all ${av===a.id?"border-zinc-600":"border-zinc-800 hover:border-zinc-600 hover:bg-zinc-800/50"}`,children:[(0,x.jsxs)("button",{onClick:()=>bu(a.id),className:"flex items-center gap-3 p-4 text-left w-full group",children:[(0,x.jsx)("span",{className:"w-3.5 h-3.5 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-sm font-medium text-white truncate",children:a.name}),(0,x.jsxs)("div",{className:"text-xs text-zinc-500 mt-0.5",children:[a.paneCount||0," pane",1!==(a.paneCount||0)?"s":"",a.isActive&&(0,x.jsx)("span",{className:"text-indigo-400 ml-2",children:"last active"})]})]}),(0,x.jsx)(B.Terminal,{className:"w-4 h-4 text-zinc-600 group-hover:text-zinc-400 transition-colors"})]}),f&&(0,x.jsx)("button",{onClick:()=>aw(av===a.id?null:a.id),className:`absolute top-2 right-2 p-1 rounded transition-colors ${av===a.id?"text-purple-400 bg-purple-500/10":"text-zinc-700 hover:text-zinc-400"}`,title:"Knowledge lobe settings",children:(0,x.jsx)(V.Brain,{className:"w-3.5 h-3.5"})}),av===a.id&&(0,x.jsx)("div",{className:"px-4 pb-4 border-t border-zinc-800/50 pt-3",children:(0,x.jsx)(db,{workspaceId:a.id,workspaceName:a.name})})]},a.id))}),(0,x.jsxs)("div",{className:"flex justify-center gap-3",children:[(0,x.jsxs)("button",{onClick:bx,className:"flex items-center gap-2 px-4 py-2.5 text-sm border border-zinc-700 text-zinc-400 rounded-lg hover:text-white hover:border-zinc-500 transition-colors",children:[(0,x.jsx)(z.Plus,{className:"w-4 h-4"}),"New Workspace"]}),(0,x.jsxs)("button",{onClick:()=>aj(!0),className:"flex items-center gap-2 px-4 py-2.5 text-sm border border-dashed border-indigo-500/50 text-indigo-400 rounded-lg hover:text-indigo-300 hover:border-indigo-400 hover:bg-indigo-500/10 transition-colors",children:[(0,x.jsx)(X,{className:"w-4 h-4"}),"Plan a Project"]})]}),d&&aU.isLoading&&(0,x.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4 mt-6 border-t border-zinc-800",children:[(0,x.jsx)(A.Loader2,{className:"w-4 h-4 animate-spin text-zinc-500"}),(0,x.jsx)("span",{className:"text-xs text-zinc-500",children:"Loading network spaces..."})]}),d&&aU.data?.remote&&aU.data.remote.length>0&&(0,x.jsxs)("div",{className:"mt-6 border-t border-zinc-800 pt-6",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,x.jsx)(S.Globe,{className:"w-4 h-4 text-zinc-500"}),(0,x.jsx)("h2",{className:"text-sm font-medium text-zinc-400",children:"Network Spaces"})]}),aU.data.remote.map(a=>(0,x.jsxs)("div",{className:"mb-3",children:[(0,x.jsxs)("button",{onClick:()=>aX(a.nodeId),className:"flex items-center gap-2 w-full px-2 py-1.5 text-left text-xs text-zinc-400 hover:text-white rounded-md hover:bg-zinc-800/50 transition-colors",children:[aV.has(a.nodeId)?(0,x.jsx)(H.ChevronRight,{className:"w-3.5 h-3.5 text-zinc-600"}):(0,x.jsx)(G.ChevronDown,{className:"w-3.5 h-3.5 text-zinc-600"}),(0,x.jsx)(S.Globe,{className:"w-3 h-3 text-zinc-600"}),(0,x.jsx)("span",{className:"font-medium",children:a.nodeName}),(0,x.jsxs)("span",{className:"text-zinc-600",children:[a.workspaces.length," space",1!==a.workspaces.length?"s":""]})]}),!aV.has(a.nodeId)&&(0,x.jsx)("div",{className:"grid grid-cols-2 gap-2 mt-2 ml-5",children:a.workspaces.map(c=>(0,x.jsxs)("button",{onClick:()=>{b.push(`/terminal/remote/${a.nodeId}/${c.id}`)},className:"flex items-center gap-3 p-3 bg-zinc-900/50 border border-zinc-800/50 rounded-lg hover:border-zinc-600 hover:bg-zinc-800/30 transition-colors text-left group",children:[(0,x.jsx)("span",{className:"w-3 h-3 rounded-full flex-shrink-0 ring-1 ring-zinc-700",style:{backgroundColor:c.color}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-xs font-medium text-zinc-300 truncate",children:c.name}),(0,x.jsxs)("div",{className:"text-[10px] text-zinc-600 mt-0.5",children:[c.paneCount||0," pane",1!==(c.paneCount||0)?"s":""]})]}),(0,x.jsx)(S.Globe,{className:"w-3 h-3 text-zinc-700 group-hover:text-zinc-500 transition-colors"})]},`${a.nodeId}-${c.id}`))})]},a.nodeId)),aU.data.errors&&aU.data.errors.length>0&&(0,x.jsx)("div",{className:"mt-3 space-y-1",children:aU.data.errors.map(a=>(0,x.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 text-[10px] text-zinc-600",children:[(0,x.jsx)(T.AlertCircle,{className:"w-3 h-3 text-red-500/50"}),(0,x.jsxs)("span",{children:[a.nodeName,": ",a.error]})]},a.nodeId))})]})]})]})}),(0,x.jsx)(dF,{isOpen:ai,onClose:()=>aj(!1),onLaunch:a=>{aj(!1),bu(a)}})]})}a.s(["default",()=>dQ],266490)}];
85
+ </script></body></html>`),g.document.close(),setTimeout(()=>{v.current?.postMessage({type:"file-update",file:a})},100),w.current&&clearInterval(w.current),w.current=setInterval(()=>{u.current?.closed&&(dp({wasPoppedOut:!1}),z.current&&t(!1),u.current=null,w.current&&(clearInterval(w.current),w.current=null))},500)}},E=(0,y.useRef)(null),[F,G]=(0,y.useState)(!1),[H,I]=(0,y.useState)(!1),J=async a=>{if(g&&0!==a.length){G(!0);try{let b=new FormData;for(let c of(b.append("dir",g),Array.from(a)))b.append("files",c);await fetch((0,cT.api)("/api/files"),{method:"POST",body:b});let c=await B(g);j(c.items)}catch{}finally{G(!1)}}},K=e?g.replace(e,"").replace(/^[/\\]/,""):"",L=K?K.split(/[/\\]/):[],M=o&&!s,O=k&&g!==e;return e?(0,x.jsxs)("div",{className:"h-full flex flex-col bg-zinc-950 border-r border-zinc-800",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-zinc-800/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Files"}),(0,x.jsx)("button",{onClick:a,className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),c.length>1&&(0,x.jsx)("div",{className:"flex items-center gap-1 px-3 py-1.5 border-b border-zinc-800/30 flex-shrink-0 overflow-x-auto",children:c.map(a=>{let b=a.split(/[/\\]/).pop()||a,c=a===e;return(0,x.jsx)("button",{onClick:()=>{f(a),h(a),n(new Set),p(null)},className:`px-2 py-0.5 text-[10px] rounded transition-colors flex-shrink-0 ${c?"bg-amber-500/15 text-amber-400 border border-amber-500/30":"text-zinc-500 hover:text-zinc-300 border border-transparent"}`,title:a,children:b},a)})}),(0,x.jsxs)("div",{className:"flex items-center gap-1 px-3 py-1.5 border-b border-zinc-800/30 overflow-x-auto text-[10px] flex-shrink-0",children:[O&&(0,x.jsx)("button",{onClick:()=>{k&&g!==e&&h(k)},className:"text-zinc-500 hover:text-zinc-300 flex-shrink-0",children:(0,x.jsx)(dh,{className:"w-3 h-3"})}),(0,x.jsx)("input",{ref:E,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&J(a.target.files),a.target.value=""}}),(0,x.jsx)("button",{onClick:()=>E.current?.click(),className:"text-zinc-600 hover:text-zinc-300 flex-shrink-0 ml-auto",title:"Upload files to current directory",children:(0,x.jsx)(dk.Upload,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>h(e),className:"text-zinc-500 hover:text-zinc-300 truncate flex-shrink-0",children:e.split(/[/\\]/).pop()}),L.map((a,b)=>(0,x.jsxs)("span",{className:"flex items-center gap-1 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-zinc-700",children:"/"}),(0,x.jsx)("button",{onClick:()=>{h(e+"/"+L.slice(0,b+1).join("/"))},className:"text-zinc-500 hover:text-zinc-300",children:a})]},b))]}),s&&o&&(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800/30 bg-zinc-900/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500",children:"Viewing:"}),(0,x.jsx)("span",{className:"text-[10px] text-zinc-400 font-mono truncate flex-1",children:o.name}),(0,x.jsx)("button",{onClick:()=>{dp({wasPoppedOut:!1}),u.current&&!u.current.closed&&u.current.close(),u.current=null,t(!1),w.current&&(clearInterval(w.current),w.current=null)},className:"text-zinc-500 hover:text-zinc-300 transition-colors",title:"Pop back into panel",children:(0,x.jsx)(R,{className:"w-3 h-3"})})]}),(0,x.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 overflow-hidden",children:[(0,x.jsx)("div",{className:`overflow-y-auto ${M?"max-h-[40%] border-b border-zinc-800/30":"flex-1"} ${H?"ring-2 ring-inset ring-amber-500/50 bg-amber-500/5":""}`,onDragOver:a=>{a.preventDefault(),I(!0)},onDragLeave:()=>I(!1),onDrop:a=>{a.preventDefault(),I(!1),a.dataTransfer.files.length>0&&J(a.dataTransfer.files)},children:F?(0,x.jsx)("div",{className:"p-3 text-xs text-amber-400",children:"Uploading..."}):q?(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-600",children:"Loading..."}):0===i.length?(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-600",children:"Empty directory"}):(0,x.jsx)("div",{className:"py-1",children:i.map(a=>(0,x.jsx)(dv,{item:a,depth:0,expanded:m.has(a.path),expandedDirs:m,onClick:C,loadDir:B,activeFile:o?.path},a.path))})}),M&&(0,x.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 overflow-hidden",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-1.5 border-b border-zinc-800/30 flex-shrink-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,x.jsx)("span",{className:`text-xs font-mono truncate ${dq(o.ext)}`,children:o.name}),(0,x.jsx)("span",{className:"text-[9px] text-zinc-600",children:o.lines?`${o.lines} lines`:ds(o.size)}),o.truncated&&(0,x.jsx)("span",{className:"text-[9px] text-amber-500",children:"(truncated)"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-1",children:[(0,x.jsx)("button",{onClick:()=>{var a,b;let c;return o&&(a=o.path,b=o.name,void((c=document.createElement("a")).href=(0,cT.api)(`/api/files?raw=${encodeURIComponent(a)}`),c.download=b,c.click()))},className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",title:"Download file",children:(0,x.jsx)(dj,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>{o&&D(o)},className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",title:"Open in new window",children:(0,x.jsx)(di.ExternalLink,{className:"w-3 h-3"})}),(0,x.jsx)("button",{onClick:()=>p(null),className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3 h-3"})})]})]}),(0,x.jsx)("div",{className:"flex-1 overflow-auto",children:(0,x.jsx)(du,{file:o})})]})]})]}):(0,x.jsxs)("div",{className:"h-full flex flex-col bg-zinc-950 border-r border-zinc-800",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-zinc-800/50 flex-shrink-0",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Files"}),(0,x.jsx)("button",{onClick:a,className:"p-0.5 text-zinc-600 hover:text-zinc-300 transition-colors",children:(0,x.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),(0,x.jsx)("div",{className:"p-3 text-xs text-zinc-500",children:0===c.length?"No development directories configured. Add them in Settings.":"Loading..."})]})}function du({file:a}){return a.error?(0,x.jsx)("div",{className:"p-3 text-xs text-red-400",children:a.error}):a.image&&a.rawUrl?(0,x.jsx)("div",{className:"flex items-center justify-center p-4 min-h-[200px]",children:(0,x.jsx)("img",{src:(0,cT.api)(a.rawUrl),alt:a.name,className:"max-w-full max-h-[60vh] object-contain rounded"})}):a.image&&a.tooLarge?(0,x.jsxs)("div",{className:"p-3 text-xs text-zinc-500",children:["Image too large (",ds(a.size),")"]}):a.pdf&&a.rawUrl?(0,x.jsx)("iframe",{src:(0,cT.api)(a.rawUrl),className:"w-full h-full border-none",title:a.name}):a.binary?(0,x.jsxs)("div",{className:"p-3 text-xs text-zinc-500",children:["Binary file (",a.ext,", ",ds(a.size),")"]}):void 0!==a.content?(0,x.jsx)("pre",{className:"text-[11px] leading-4 font-mono p-0 m-0",children:(0,x.jsx)("table",{className:"border-collapse w-full",children:(0,x.jsx)("tbody",{children:a.content.split("\n").map((b,c)=>(0,x.jsxs)("tr",{className:"hover:bg-zinc-800/30",children:[(0,x.jsx)("td",{className:"text-right pr-3 pl-3 text-zinc-700 select-none w-[1%] whitespace-nowrap",children:c+1}),(0,x.jsx)("td",{className:`pr-3 whitespace-pre ${dq(a.ext)}`,children:b||" "})]},c))})})}):null}function dv({item:a,depth:b,expanded:c,expandedDirs:d,onClick:e,loadDir:f,activeFile:g}){let[h,i]=(0,y.useState)(null);(0,y.useEffect)(()=>{c&&a.isDir&&!h&&f(a.path).then(a=>i(a.items))},[c,a.isDir,a.path,h,f]);let j=g===a.path;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("button",{onClick:()=>e(a),className:`flex items-center gap-1.5 w-full text-left px-2 py-[3px] text-[11px] transition-colors ${j?"bg-indigo-500/10 text-indigo-300":"text-zinc-400 hover:bg-zinc-800/50 hover:text-zinc-200"}`,style:{paddingLeft:`${8+14*b}px`},children:[a.isDir?c?(0,x.jsx)(G.ChevronDown,{className:"w-3 h-3 text-zinc-600 flex-shrink-0"}):(0,x.jsx)(H.ChevronRight,{className:"w-3 h-3 text-zinc-600 flex-shrink-0"}):(0,x.jsx)("span",{className:"w-3 flex-shrink-0"}),(0,x.jsx)(dr,{item:a}),(0,x.jsx)("span",{className:"truncate",children:a.name})]}),c&&a.isDir&&h&&h.map(a=>(0,x.jsx)(dv,{item:a,depth:b+1,expanded:d.has(a.path),expandedDirs:d,onClick:e,loadDir:f,activeFile:g},a.path))]})}function dw({messages:a,onSend:b,loading:c}){let[d,e]=(0,y.useState)(""),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{f.current&&(f.current.scrollTop=f.current.scrollHeight)},[a,c]);let g=()=>{let a=d.trim();a&&!c&&(e(""),b(a))};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{ref:f,className:"flex-1 overflow-y-auto px-6 py-4 space-y-4",children:[0===a.length&&!c&&(0,x.jsxs)("div",{className:"text-center py-12",children:[(0,x.jsx)("p",{className:"text-zinc-400 text-sm mb-1",children:"Describe the project you want to build."}),(0,x.jsx)("p",{className:"text-zinc-600 text-xs",children:"I'll help you plan the workspace, agents, and initial tasks."})]}),a.map((a,b)=>(0,x.jsx)("div",{className:`flex ${"user"===a.role?"justify-end":"justify-start"}`,children:(0,x.jsx)("div",{className:`max-w-[80%] rounded-lg px-3 py-2 text-sm ${"user"===a.role?"bg-indigo-600 text-white":"bg-zinc-800 text-zinc-200"}`,children:(0,x.jsx)("p",{className:"whitespace-pre-wrap",children:a.content})})},b)),c&&(0,x.jsx)("div",{className:"flex justify-start",children:(0,x.jsx)("div",{className:"bg-zinc-800 rounded-lg px-4 py-3",children:(0,x.jsxs)("div",{className:"flex gap-1",children:[(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),(0,x.jsx)("span",{className:"w-2 h-2 bg-zinc-500 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})})})]}),(0,x.jsx)("div",{className:"px-6 py-3 border-t border-zinc-800 flex-shrink-0",children:(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsx)("textarea",{value:d,onChange:a=>e(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||(a.preventDefault(),g())},placeholder:"Describe your project...",rows:2,className:"flex-1 bg-zinc-900 border border-zinc-700 rounded-lg px-3 py-2 text-sm text-zinc-200 placeholder:text-zinc-600 focus:outline-none focus:border-zinc-500 resize-none"}),(0,x.jsx)("button",{onClick:g,disabled:!d.trim()||c,className:"px-4 bg-indigo-600 hover:bg-indigo-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg flex items-center gap-1.5 text-sm self-end",children:(0,x.jsx)(c_.Send,{className:"w-3.5 h-3.5"})})]})})]})}let dx=(0,I.default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]),dy={claude:"#6366f1",codex:"#22c55e",gemini:"#3b82f6",aider:"#f59e0b",shell:"#78716c",custom:"#a855f7"};function dz({plan:a,onReview:b}){return a?(0,x.jsxs)("div",{className:"flex flex-col h-full",children:[(0,x.jsxs)("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-4",children:[(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:"Workspace"}),(0,x.jsxs)("div",{className:"bg-zinc-800/50 rounded-lg p-3 border border-zinc-700/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,x.jsx)("span",{className:"w-3 h-3 rounded-full",style:{backgroundColor:a.workspace.color}}),(0,x.jsx)("span",{className:"text-sm font-medium text-zinc-200",children:a.workspace.name})]}),a.workspace.description&&(0,x.jsx)("p",{className:"text-xs text-zinc-400 mt-1",children:a.workspace.description})]})]}),a.panes.length>0&&(0,x.jsxs)("div",{children:[(0,x.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:["Panes (",a.panes.length,")"]}),(0,x.jsx)("div",{className:"space-y-2",children:a.panes.map((a,b)=>(0,x.jsxs)("div",{className:"bg-zinc-800/50 rounded-lg p-3 border border-zinc-700/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,x.jsx)(B.Terminal,{className:"w-3 h-3 text-zinc-500"}),(0,x.jsx)("span",{className:"text-xs font-medium text-zinc-200",children:a.title}),(0,x.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium",style:{backgroundColor:`${dy[a.agentType]||"#6366f1"}20`,color:dy[a.agentType]||"#6366f1"},children:a.agentType})]}),a.description&&(0,x.jsx)("p",{className:"text-[11px] text-zinc-500 mt-1",children:a.description}),a.cwd&&(0,x.jsx)("p",{className:"text-[10px] text-zinc-600 font-mono mt-1",children:a.cwd})]},b))})]}),a.summary&&(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-1.5",children:"Summary"}),(0,x.jsx)("p",{className:"text-xs text-zinc-400",children:a.summary})]})]}),(0,x.jsx)("div",{className:"px-5 py-3 border-t border-zinc-800 flex-shrink-0",children:(0,x.jsx)("button",{onClick:b,disabled:!a.panes.length,className:"w-full py-2 text-sm font-medium bg-indigo-600 hover:bg-indigo-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:"Review Plan"})})]}):(0,x.jsxs)("div",{className:"flex flex-col items-center justify-center h-full px-6 text-center",children:[(0,x.jsx)(dx,{className:"w-8 h-8 text-zinc-700 mb-3"}),(0,x.jsx)("p",{className:"text-zinc-500 text-sm",children:"Your project plan will appear here as you chat."})]})}var dA=a.i(400210);let dB=(0,I.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]),dC=[{value:"claude",label:"Claude Code"},{value:"codex",label:"Codex"},{value:"gemini",label:"Gemini"},{value:"aider",label:"Aider"},{value:"forge",label:"Forge"},{value:"shell",label:"Shell"},{value:"custom",label:"Custom"}],dD=["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"];function dE({plan:a,onUpdate:b,onBack:c,onLaunch:d}){let[e,f]=(0,y.useState)([]);(0,y.useEffect)(()=>{fetch((0,cT.api)("/api/config")).then(a=>a.json()).then(a=>{a.customModels&&f(a.customModels)}).catch(()=>{})},[]);let g=(c,d)=>{b({...a,workspace:{...a.workspace,[c]:d}})},h=(c,d,e)=>{let f=[...a.panes];f[c]={...f[c],[d]:e},b({...a,panes:f})},i=a.workspace.name.trim()&&a.panes.length>0&&a.panes.every(a=>a.cwd.trim());return(0,x.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-6 space-y-6",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("button",{onClick:c,className:"flex items-center gap-1.5 text-xs text-zinc-400 hover:text-white",children:[(0,x.jsx)(dA.ArrowLeft,{className:"w-3.5 h-3.5"}),"Back to Chat"]}),(0,x.jsxs)("button",{onClick:d,disabled:!i,className:"flex items-center gap-1.5 px-4 py-2 text-sm font-medium bg-green-600 hover:bg-green-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:[(0,x.jsx)(dB,{className:"w-3.5 h-3.5"}),"Launch Space"]})]}),(0,x.jsxs)("div",{className:"bg-zinc-900 rounded-lg border border-zinc-700 p-4 space-y-3",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:"Workspace"}),(0,x.jsxs)("div",{className:"flex gap-3",children:[(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Name"}),(0,x.jsx)("input",{value:a.workspace.name,onChange:a=>g("name",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:outline-none focus:border-zinc-500"})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Color"}),(0,x.jsx)("div",{className:"flex gap-1 flex-wrap",style:{width:128},children:dD.map(b=>(0,x.jsx)("button",{onClick:()=>g("color",b),className:`w-5 h-5 rounded-full ${a.workspace.color===b?"ring-2 ring-white ring-offset-1 ring-offset-zinc-900":"hover:ring-1 hover:ring-zinc-500"}`,style:{backgroundColor:b}},b))})]})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Description"}),(0,x.jsx)("textarea",{value:a.workspace.description,onChange:a=>g("description",a.target.value),rows:2,className:"w-full bg-zinc-800 border border-zinc-700 rounded px-3 py-1.5 text-sm text-zinc-200 focus:outline-none focus:border-zinc-500 resize-none"})]})]}),(0,x.jsxs)("div",{className:"space-y-3",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsxs)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500",children:["Panes (",a.panes.length,")"]}),(0,x.jsxs)("button",{onClick:()=>{b({...a,panes:[...a.panes,{title:"New Pane",agentType:"claude",cwd:"~",description:""}]})},className:"flex items-center gap-1 text-xs text-zinc-400 hover:text-white",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"})," Add Pane"]})]}),a.panes.map((c,d)=>(0,x.jsx)("div",{className:"bg-zinc-900 rounded-lg border border-zinc-700 p-4 space-y-2.5",children:(0,x.jsxs)("div",{className:"flex items-start gap-3",children:[(0,x.jsxs)("div",{className:"flex-1 space-y-2.5",children:[(0,x.jsxs)("div",{className:"flex gap-3",children:[(0,x.jsxs)("div",{className:"flex-1",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Title"}),(0,x.jsx)("input",{value:c.title,onChange:a=>h(d,"title",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 focus:outline-none focus:border-zinc-500"})]}),(0,x.jsxs)("div",{className:"w-32",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Agent"}),(0,x.jsx)("select",{value:c.agentType,onChange:a=>h(d,"agentType",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200",children:dC.map(a=>(0,x.jsx)("option",{value:a.value,children:a.label},a.value))})]}),"forge"===c.agentType&&e.length>0&&(0,x.jsxs)("div",{className:"w-40",children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Custom Model"}),(0,x.jsxs)("select",{value:c.customModelId||"",onChange:a=>h(d,"customModelId",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200",children:[(0,x.jsx)("option",{value:"",children:"Default"}),e.map(a=>(0,x.jsx)("option",{value:a.id,children:a.name},a.id))]})]})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Working Directory"}),(0,x.jsx)("input",{value:c.cwd,onChange:a=>h(d,"cwd",a.target.value),className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs font-mono text-zinc-200 focus:outline-none focus:border-zinc-500",placeholder:"/path/to/project"})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[10px] text-zinc-500 block mb-1",children:"Initial Prompt (optional)"}),(0,x.jsx)("textarea",{value:c.initialPrompt||"",onChange:a=>h(d,"initialPrompt",a.target.value),rows:2,className:"w-full bg-zinc-800 border border-zinc-700 rounded px-2 py-1 text-xs text-zinc-200 focus:outline-none focus:border-zinc-500 resize-none",placeholder:"What should this agent start working on?"})]})]}),(0,x.jsx)("button",{onClick:()=>{b({...a,panes:a.panes.filter((a,b)=>b!==d)})},className:"text-zinc-600 hover:text-red-400 mt-4",title:"Remove pane",children:(0,x.jsx)(K.Trash2,{className:"w-3.5 h-3.5"})})]})},d))]}),(0,x.jsx)("div",{className:"flex justify-end pt-2",children:(0,x.jsxs)("button",{onClick:d,disabled:!i,className:"flex items-center gap-1.5 px-6 py-2.5 text-sm font-medium bg-green-600 hover:bg-green-500 disabled:bg-zinc-800 disabled:text-zinc-600 text-white rounded-lg transition-colors",children:[(0,x.jsx)(dB,{className:"w-4 h-4"}),"Launch Space"]})})]})}function dF({isOpen:a,onClose:b,onLaunch:c}){let[d,e]=(0,y.useState)([]),[f,g]=(0,y.useState)(null),[h,i]=(0,y.useState)(!1),[j,k]=(0,y.useState)("chat"),[l,m]=(0,y.useState)(null),n=(0,y.useCallback)(async a=>{let b=[...d,{role:"user",content:a}];e(b),i(!0),m(null);try{let a=await fetch((0,cT.api)("/api/wizard/chat"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:b,currentPlan:f})}),c=await a.json();if(!a.ok)throw Error(c.error);e([...b,{role:"assistant",content:c.reply}]),c.plan&&g(c.plan)}catch(a){m(a.message)}i(!1)},[d,f]),o=(0,y.useCallback)(async()=>{if(f)try{let a=await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.workspace.name,description:f.workspace.description,color:f.workspace.color})}),d=(await a.json()).id;for(let a of f.panes)await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a.title,agentType:a.agentType,cwd:a.cwd,customCommand:a.customCommand,workspaceId:d,customModelId:a.customModelId})});c(d),b()}catch(a){m(a.message)}},[f,c,b]);return a?(0,x.jsxs)("div",{className:"fixed inset-0 z-50 bg-zinc-950/95 flex flex-col",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-6 py-3 border-b border-zinc-800 flex-shrink-0",children:[(0,x.jsx)("h2",{className:"text-sm font-semibold text-zinc-100",children:"Plan a Project"}),(0,x.jsx)("button",{onClick:b,className:"text-zinc-500 hover:text-white",children:(0,x.jsx)(N.X,{className:"w-4 h-4"})})]}),l&&(0,x.jsx)("div",{className:"px-6 py-2 bg-red-500/10 border-b border-red-500/20 text-xs text-red-400",children:l}),(0,x.jsx)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:"chat"===j?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"flex-1 flex flex-col border-r border-zinc-800 min-w-0",children:(0,x.jsx)(dw,{messages:d,onSend:n,loading:h})}),(0,x.jsx)("div",{className:"w-[380px] flex-shrink-0 overflow-y-auto",children:(0,x.jsx)(dz,{plan:f,onReview:()=>k("review")})})]}):(0,x.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,x.jsx)(dE,{plan:f,onUpdate:g,onBack:()=>k("chat"),onLaunch:o})})})]}):null}function dG({workspace:a}){let b=a?.id??null,c=a?.color??"#6366f1",[d,e]=(0,y.useState)([]),[f,g]=(0,y.useState)(!1),[h,i]=(0,y.useState)(""),[j,k]=(0,y.useState)(null),[l,m]=(0,y.useState)(""),n=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(null==b)return void e([]);let a=!1;return fetch((0,cT.api)(`/api/workspaces/${b}/todos`)).then(a=>a.json()).then(b=>{a||e(Array.isArray(b)?b:[])}).catch(()=>{a||e([])}),()=>{a=!0}},[b]);let o=(0,y.useCallback)(async()=>{let a=h.trim();if(!a||null==b){i(""),g(!1);return}let c=-Date.now(),d={id:c,workspaceId:b,text:a,completed:!1,sortOrder:Number.MAX_SAFE_INTEGER,created:new Date().toISOString(),completedAt:null};e(a=>[...a,d]),i(""),n.current?.focus();try{let d=await fetch((0,cT.api)(`/api/workspaces/${b}/todos`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:a})});if(!d.ok)throw Error(await d.text());let f=await d.json();e(a=>a.map(a=>a.id===c?f:a))}catch(a){console.error("failed to add todo",a),e(a=>a.filter(a=>a.id!==c))}},[h,b]),p=(0,y.useCallback)(async a=>{if(null==b)return;let c=!a.completed;e(b=>b.map(b=>b.id===a.id?{...b,completed:c,completedAt:c?new Date().toISOString():null}:b));try{let d=await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({completed:c})});if(!d.ok)throw Error();let f=await d.json();e(b=>b.map(b=>b.id===a.id?f:b))}catch{e(b=>b.map(b=>b.id===a.id?a:b))}},[b]),q=(0,y.useCallback)(async a=>{if(null==b)return;let c=-1;e(b=>(c=b.findIndex(b=>b.id===a.id),b.filter(b=>b.id!==a.id)));try{if(!(await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"DELETE"})).ok)throw Error()}catch{e(b=>{if(c<0||b.some(b=>b.id===a.id))return b;let d=[...b];return d.splice(Math.min(c,d.length),0,a),d})}},[b]),r=(0,y.useCallback)(async a=>{let c=l.trim();if(k(null),c&&c!==a.text&&null!=b){e(b=>b.map(b=>b.id===a.id?{...b,text:c}:b));try{if(!(await fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:c})})).ok)throw Error()}catch{e(b=>b.map(b=>b.id===a.id?{...b,text:a.text}:b))}}},[l,b]),s=(0,y.useCallback)(async()=>{if(null==b)return;let a=d.filter(a=>a.completed);0===a.length||(e(a=>a.filter(a=>!a.completed)),(await Promise.allSettled(a.map(a=>fetch((0,cT.api)(`/api/workspaces/${b}/todos/${a.id}`),{method:"DELETE"})))).some(a=>"rejected"===a.status||"fulfilled"===a.status&&!a.value.ok)&&fetch((0,cT.api)(`/api/workspaces/${b}/todos`)).then(a=>a.json()).then(a=>e(Array.isArray(a)?a:[])).catch(()=>{}))},[d,b]),t=[...d].sort((a,b)=>{if(a.completed!==b.completed)return a.completed?1:-1;if(!a.completed)return a.sortOrder-b.sortOrder;let c=a.completedAt??"";return(b.completedAt??"").localeCompare(c)}),u=t.filter(a=>a.completed).length,v="h-7 rounded-full inline-flex items-center gap-1.5 pl-2 pr-1 py-1 text-xs border whitespace-nowrap";return(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900/40 px-4 py-2 flex-shrink-0",children:(0,x.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 max-h-[30vh] overflow-y-auto",children:[t.map(a=>{let b=j===a.id,d={backgroundColor:`${c}22`,borderColor:`${c}66`,color:c},e=a.completed?{backgroundColor:"rgba(39, 39, 42, 0.5)",borderColor:"rgba(63, 63, 70, 0.5)",color:"rgb(113, 113, 122)"}:d;return(0,x.jsxs)("div",{className:`group ${v}`,style:e,children:[(0,x.jsx)("button",{onClick:()=>p(a),className:"w-3.5 h-3.5 rounded-full border-2 flex items-center justify-center flex-shrink-0 transition-colors",style:{borderColor:a.completed?c:`${c}aa`,backgroundColor:a.completed?c:"transparent"},"aria-label":a.completed?"Mark incomplete":"Mark complete",children:a.completed&&(0,x.jsx)(M.Check,{className:"w-2.5 h-2.5 text-white"})}),b?(0,x.jsx)("input",{autoFocus:!0,value:l,onChange:a=>m(a.target.value),onBlur:()=>r(a),onKeyDown:b=>{"Enter"===b.key&&r(a),"Escape"===b.key&&k(null)},className:"bg-transparent focus:outline-none max-w-[240px]",style:{color:"inherit"}}):(0,x.jsx)("button",{onClick:()=>{k(a.id),m(a.text)},className:`text-left truncate max-w-[200px] ${a.completed?"line-through":""}`,style:{color:"inherit"},children:a.text}),(0,x.jsx)("button",{onClick:()=>q(a),className:"opacity-0 group-hover:opacity-100 transition-opacity rounded-full p-0.5 hover:bg-black/20 flex-shrink-0",style:{color:"inherit"},"aria-label":"Delete todo",children:(0,x.jsx)(N.X,{className:"w-3 h-3"})})]},a.id)}),f?(0,x.jsxs)("div",{className:`${v} border-dashed border-zinc-600 text-zinc-300`,children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3 text-zinc-500 flex-shrink-0"}),(0,x.jsx)("input",{ref:n,autoFocus:!0,value:h,onChange:a=>i(a.target.value),onKeyDown:a=>{"Enter"===a.key&&o(),"Escape"===a.key&&(i(""),g(!1))},onBlur:()=>{h.trim()?o():g(!1)},placeholder:"todo…",className:"bg-transparent focus:outline-none text-xs placeholder:text-zinc-600 max-w-[200px]"})]}):(0,x.jsxs)("button",{onClick:()=>{null!=b&&g(!0)},disabled:null==b,className:"h-7 rounded-full inline-flex items-center gap-1 px-3 py-1 text-xs border border-dashed border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-500 transition-colors disabled:opacity-50 disabled:cursor-not-allowed whitespace-nowrap",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"}),null==b?"Select a workspace":"add todo"]}),u>0&&(0,x.jsxs)("button",{onClick:s,className:"ml-auto text-[10px] text-zinc-500 hover:text-zinc-300 px-2 py-1 transition-colors whitespace-nowrap",children:["clear ",u," done"]})]})})}var dH=a.i(501027),dI=a.i(431067);function dJ(a){return null==a?"#52525b":a<=70?"#22c55e":a<=90?"#f59e0b":"#ef4444"}function dK(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"now";let c=Math.floor(b/36e5),d=Math.floor(b%36e5/6e4);if(c>=24){let a=Math.floor(c/24);return`${a}d ${c-24*a}h`}return c>0?`${c}h ${d}m`:`${d}m`}function dL({label:a,limit:b}){if(!b||null==b.utilization)return null;let c=Math.min(100,Math.max(0,b.utilization)),d=dJ(c),e=dK(b.resets_at);return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px]",title:e?`${a}: ${Math.floor(c)}% used \xb7 resets in ${e}`:`${a}: ${Math.floor(c)}% used`,children:[(0,x.jsx)("span",{className:"text-zinc-400 font-medium",children:a}),(0,x.jsx)("div",{className:"w-12 h-1 bg-zinc-800 rounded-full overflow-hidden",children:(0,x.jsx)("div",{className:"h-full transition-all",style:{width:`${c}%`,backgroundColor:d}})}),(0,x.jsxs)("span",{className:"text-zinc-500 tabular-nums w-7 text-right",children:[Math.floor(c),"%"]})]})}function dM({enabled:a}){let b=function(a){let[b,c]=(0,y.useState)(null),d=(0,y.useRef)(0);return(0,y.useEffect)(()=>{if(!a){d.current=0;return}let b=!1;async function e(){try{let a=await fetch((0,cT.api)("/api/claude/usage"));if(!a.ok||b)return;let e=await a.json();if(b)return;"upstream_error"===e.status||"expired"===e.status?(d.current+=1,c(a=>a?.status==="ok"&&d.current<2?a:e)):(d.current=0,c(e))}catch{if(b)return;d.current+=1,c(a=>a?.status==="ok"&&d.current<2?a:{status:"upstream_error"})}}e();let f=setInterval(e,6e4);return()=>{b=!0,clearInterval(f)}},[a]),b}(a),[c,d]=(0,y.useState)(!1),e=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(c)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a);function a(a){e.current&&!e.current.contains(a.target)&&d(!1)}},[c]),!a||!b)return null;if("unauthenticated"===b.status||"expired"===b.status)return(0,x.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1 text-[10px] text-zinc-500 border border-zinc-800 rounded-md",title:"expired"===b.status?"OAuth token expired — run any Claude Code command to refresh":"No Claude.ai credentials found",children:[(0,x.jsx)(dI.LogIn,{className:"w-3 h-3"}),"sign in via Claude Code"]});if("upstream_error"===b.status)return null;let{data:f}=b,g=f.extra_usage,h=!!(g?.is_enabled&&g?.used_credits&&g.used_credits>0);return(0,x.jsxs)("div",{className:"relative",children:[(0,x.jsxs)("button",{onClick:()=>d(a=>!a),className:"flex items-center gap-2.5 px-2.5 py-1 border border-zinc-800 rounded-md hover:border-zinc-700 transition-colors",title:"Click for full usage detail",children:[(0,x.jsx)(dH.Zap,{className:"w-3 h-3 text-amber-400"}),(0,x.jsx)(dL,{label:"5h",limit:f.five_hour}),(0,x.jsx)(dL,{label:"7d",limit:f.seven_day}),(0,x.jsx)(dL,{label:"Opus",limit:f.seven_day_opus}),(0,x.jsx)(dL,{label:"Sonnet",limit:f.seven_day_sonnet}),h&&g?.used_credits!=null&&(0,x.jsxs)("span",{className:"text-[10px] text-amber-400 border-l border-zinc-800 pl-2",children:["+$",g.used_credits.toFixed(2)," overage"]})]}),c&&(0,x.jsxs)("div",{ref:e,className:"absolute top-full right-0 mt-1.5 z-50 w-80 p-3 bg-zinc-900 border border-zinc-700 rounded-md shadow-xl",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 font-medium mb-2",children:"Plan Usage"}),(0,x.jsxs)("div",{className:"space-y-2",children:[(0,x.jsx)(dN,{label:"5-hour window",limit:f.five_hour}),(0,x.jsx)(dN,{label:"7-day (overall)",limit:f.seven_day}),(0,x.jsx)(dN,{label:"7-day · Opus",limit:f.seven_day_opus}),(0,x.jsx)(dN,{label:"7-day · Sonnet",limit:f.seven_day_sonnet}),(0,x.jsx)(dN,{label:"7-day · OAuth apps",limit:f.seven_day_oauth_apps})]}),g?.is_enabled&&(0,x.jsxs)("div",{className:"mt-3 pt-3 border-t border-zinc-800",children:[(0,x.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-zinc-500 font-medium mb-1.5",children:"Overage credits"}),(0,x.jsxs)("div",{className:"text-xs text-zinc-300",children:[null!=g.used_credits?`$${g.used_credits.toFixed(2)}`:"—",null!=g.monthly_limit&&(0,x.jsxs)("span",{className:"text-zinc-500",children:[" / $",g.monthly_limit.toFixed(2)," monthly"]})]})]})]})]})}function dN({label:a,limit:b}){if(!b||null==b.utilization)return(0,x.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,x.jsx)("span",{className:"text-zinc-400",children:a}),(0,x.jsx)("span",{className:"text-zinc-600",children:"—"})]});let c=Math.min(100,Math.max(0,b.utilization)),d=dJ(c),e=dK(b.resets_at);return(0,x.jsxs)("div",{children:[(0,x.jsxs)("div",{className:"flex items-center justify-between text-xs mb-1",children:[(0,x.jsx)("span",{className:"text-zinc-300",children:a}),(0,x.jsxs)("span",{className:"text-zinc-500 tabular-nums",children:[Math.floor(c),"%",e&&(0,x.jsxs)("span",{className:"ml-1.5 text-zinc-600",children:["· ",e]})]})]}),(0,x.jsx)("div",{className:"h-1.5 bg-zinc-800 rounded-full overflow-hidden",children:(0,x.jsx)("div",{className:"h-full transition-all",style:{width:`${c}%`,backgroundColor:d}})})]})}function dO({panes:a,renderPane:b}){if(0===a.length)return null;if(1===a.length)return(0,x.jsx)("div",{className:"flex-1 p-1 overflow-hidden",children:(0,x.jsx)(dP,{id:a[0].id,children:c=>b(a[0],c)})});let c=a.length<=4?2:3,d=[];for(let b=0;b<a.length;b+=c)d.push(a.slice(b,b+c));return(0,x.jsx)(cJ,{orientation:"vertical",className:"flex-1 p-1",children:d.map((a,c)=>(0,x.jsxs)(y.default.Fragment,{children:[c>0&&(0,x.jsx)(cN,{className:"h-1.5 flex items-center justify-center group cursor-row-resize",children:(0,x.jsx)("div",{className:"w-8 h-0.5 rounded-full bg-zinc-700 group-hover:bg-zinc-500 group-active:bg-indigo-500 transition-colors"})}),(0,x.jsx)(cL,{minSize:15,children:1===a.length?(0,x.jsx)("div",{className:"h-full p-0.5",children:(0,x.jsx)(dP,{id:a[0].id,children:c=>b(a[0],c)})}):(0,x.jsx)(cJ,{orientation:"horizontal",className:"h-full",children:a.map((a,c)=>(0,x.jsxs)(y.default.Fragment,{children:[c>0&&(0,x.jsx)(cN,{className:"w-1.5 flex items-center justify-center group cursor-col-resize",children:(0,x.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-700 group-hover:bg-zinc-500 group-active:bg-indigo-500 transition-colors"})}),(0,x.jsx)(cL,{minSize:15,children:(0,x.jsx)("div",{className:"h-full p-0.5",children:(0,x.jsx)(dP,{id:a.id,children:c=>b(a,c)})})})]},a.id))})})]},`row-${c}`))})}function dP({id:a,children:b}){let{attributes:c,listeners:d,setNodeRef:e,transform:f,transition:g,isDragging:h}=function(a){var b,c,d,e;let{animateLayoutChanges:f=bK,attributes:g,disabled:h,data:i,getNewIndex:j=bJ,id:k,strategy:l,resizeObserverConfig:m,transition:o=bL}=a,{items:p,containerId:q,activeIndex:r,disabled:s,disableTransforms:t,sortedRects:u,overIndex:v,useDragOverlay:w,strategy:x}=(0,y.useContext)(bH),z=(b=h,c=s,"boolean"==typeof b?{draggable:b,droppable:!1}:{draggable:null!=(d=null==b?void 0:b.draggable)?d:c.draggable,droppable:null!=(e=null==b?void 0:b.droppable)?e:c.droppable}),A=p.indexOf(k),B=(0,y.useMemo)(()=>({sortable:{containerId:q,index:A,items:p},...i}),[q,i,A,p]),C=(0,y.useMemo)(()=>p.slice(p.indexOf(k)),[p,k]),{rect:D,node:E,isOver:F,setNodeRef:G}=function(a){let{data:b,disabled:c=!1,id:d,resizeObserverConfig:e}=a,f=an("Droppable"),{active:g,dispatch:h,over:i,measureDroppableContainers:j}=(0,y.useContext)(bp),k=(0,y.useRef)({disabled:c}),l=(0,y.useRef)(!1),m=(0,y.useRef)(null),o=(0,y.useRef)(null),{disabled:p,updateMeasurementsFor:q,timeout:r}={...by,...e},s=ai(null!=q?q:d),t=bc({callback:(0,y.useCallback)(()=>{if(!l.current){l.current=!0;return}null!=o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(Array.isArray(s.current)?s.current:[s.current]),o.current=null},r)},[r]),disabled:p||!g}),[u,v]=ak((0,y.useCallback)((a,b)=>{t&&(b&&(t.unobserve(b),l.current=!1),a&&t.observe(a))},[t])),w=ai(b);return(0,y.useEffect)(()=>{t&&u.current&&(t.disconnect(),l.current=!1,t.observe(u.current))},[u,t]),(0,y.useEffect)(()=>(h({type:n.RegisterDroppable,element:{id:d,key:f,disabled:c,node:u,rect:m,data:w}}),()=>h({type:n.UnregisterDroppable,key:f,id:d})),[d]),(0,y.useEffect)(()=>{c!==k.current.disabled&&(h({type:n.SetDroppableDisabled,id:d,key:f,disabled:c}),k.current.disabled=c)},[d,f,c,h]),{active:g,rect:m,isOver:(null==i?void 0:i.id)===d,node:u,over:i,setNodeRef:v}}({id:k,data:B,disabled:z.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...m}}),{active:H,activatorEvent:I,activeNodeRect:J,attributes:K,setNodeRef:L,listeners:M,isDragging:N,over:O,setActivatorNodeRef:P,transform:Q}=function(a){let{id:b,data:c,disabled:d=!1,attributes:e}=a,f=an("Draggable"),{activators:g,activatorEvent:h,active:i,activeNodeRect:j,ariaDescribedById:k,draggableNodes:l,over:m}=(0,y.useContext)(bp),{role:n=bx,roleDescription:o="draggable",tabIndex:p=0}=null!=e?e:{},q=(null==i?void 0:i.id)===b,r=(0,y.useContext)(q?bu:bw),[s,t]=ak(),[u,v]=ak(),w=(0,y.useMemo)(()=>g.reduce((a,c)=>{let{eventName:d,handler:e}=c;return a[d]=a=>{e(a,b)},a},{}),[g,b]),x=ai(c);return ag(()=>(l.set(b,{id:b,key:f,node:s,activatorNode:u,data:x}),()=>{let a=l.get(b);a&&a.key===f&&l.delete(b)}),[l,b]),{active:i,activatorEvent:h,activeNodeRect:j,attributes:(0,y.useMemo)(()=>({role:n,tabIndex:p,"aria-disabled":d,"aria-pressed":!!q&&n===bx||void 0,"aria-roledescription":o,"aria-describedby":k.draggable}),[d,n,p,q,o,k.draggable]),isDragging:q,listeners:d?void 0:w,node:s,over:m,setNodeRef:t,setActivatorNodeRef:v,transform:r}}({id:k,data:B,attributes:{...bO,...g},disabled:z.draggable}),R=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,y.useMemo)(()=>a=>{b.forEach(b=>b(a))},b)}(G,L),S=!!H,T=S&&!t&&bC(r)&&bC(v),U=!w&&N,V=U&&T?Q:null,W=T?null!=V?V:(null!=l?l:x)({rects:u,activeNodeRect:J,activeIndex:r,overIndex:v,index:A}):null,X=bC(r)&&bC(v)?j({id:k,items:p,activeIndex:r,overIndex:v}):A,Y=null==H?void 0:H.id,Z=(0,y.useRef)({activeId:Y,items:p,newIndex:X,containerId:q}),$=p!==Z.current.items,_=f({active:H,containerId:q,isDragging:N,isSorting:S,id:k,index:A,items:p,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:o,wasDragging:null!=Z.current.activeId}),aa=function(a){let{disabled:b,index:c,node:d,rect:e}=a,[f,g]=(0,y.useState)(null),h=(0,y.useRef)(c);return ag(()=>{if(!b&&c!==h.current&&d.current){let a=e.current;if(a){let b=aN(d.current,{ignoreTransform:!0}),c={x:a.left-b.left,y:a.top-b.top,scaleX:a.width/b.width,scaleY:a.height/b.height};(c.x||c.y)&&g(c)}}c!==h.current&&(h.current=c)},[b,c,d,e]),(0,y.useEffect)(()=>{f&&g(null)},[f]),f}({disabled:!_,index:A,node:E,rect:D});return(0,y.useEffect)(()=>{S&&Z.current.newIndex!==X&&(Z.current.newIndex=X),q!==Z.current.containerId&&(Z.current.containerId=q),p!==Z.current.items&&(Z.current.items=p)},[S,X,q,p]),(0,y.useEffect)(()=>{if(Y===Z.current.activeId)return;if(null!=Y&&null==Z.current.activeId){Z.current.activeId=Y;return}let a=setTimeout(()=>{Z.current.activeId=Y},50);return()=>clearTimeout(a)},[Y]),{active:H,activeIndex:r,attributes:K,data:B,rect:D,index:A,newIndex:X,items:p,isOver:F,isSorting:S,isDragging:N,listeners:M,node:E,overIndex:v,over:O,setNodeRef:R,setActivatorNodeRef:P,setDroppableNodeRef:G,setDraggableNodeRef:L,transform:null!=aa?aa:W,transition:aa||$&&Z.current.newIndex===A?bN:(!U||ar(I))&&o&&(S||_)?at.Transition.toString({...o,property:bM}):void 0}}({id:a}),i={transform:at.Transform.toString(f),transition:g,opacity:h?.5:1,zIndex:h?50:"auto"};return(0,x.jsx)("div",{ref:e,style:i,className:"h-full",children:b({...c,...d})})}function dQ(){return(0,x.jsx)(cY.TotpGate,{children:a=>(0,x.jsx)(dR,{terminalToken:a})})}function dR({terminalToken:a}){let b=(0,Y.useRouter)(),{basePath:c,hasNetwork:d,hasCollaboration:e,hasCortex:f}=(0,cW.useTier)(),[g,h]=(0,y.useState)([]),[i,j]=(0,y.useState)(!0),[k,l]=(0,y.useState)(!0),[m,n]=(0,y.useState)(!1),[o,p]=(0,y.useState)(null),[q,r]=(0,y.useState)(new Set),[s,t]=(0,y.useState)(new Set),[u,v]=(0,y.useState)(!1),[w,I]=(0,y.useState)(!0);!function(){let a=(0,c3.useQueryClient)(),{hasCollaboration:b}=(0,cW.useTier)();(0,y.useEffect)(()=>{if(!b)return;let c=new EventSource((0,cT.api)("/api/events")),d=()=>{a.invalidateQueries({queryKey:["workspace-messages"]})},e=()=>{a.invalidateQueries({queryKey:["workspace-context"]})};return c.addEventListener("workspace:message",d),c.addEventListener("workspace:request",d),c.addEventListener("workspace:context_updated",e),()=>{c.removeEventListener("workspace:message",d),c.removeEventListener("workspace:request",d),c.removeEventListener("workspace:context_updated",e),c.close()}},[a,b])}();let[$,_]=(0,y.useState)(!1);(0,y.useEffect)(()=>{fetch((0,cT.api)("/api/config")).then(a=>a.json()).then(a=>_(!!a.todosEnabled)).catch(()=>{})},[]);let[aa,ab]=(0,y.useState)([]),[ac,ad]=(0,y.useState)(null),[ae,af]=(0,y.useState)(!1),[ag,ah]=(0,y.useState)(!1),[ai,aj]=(0,y.useState)(!1),[ak,al]=(0,y.useState)(""),[am,an]=(0,y.useState)("#6366f1"),[ao,ap]=(0,y.useState)(null),[aq,ar]=(0,y.useState)(""),[as,at]=(0,y.useState)(null),au=(0,y.useRef)(null),[av,aw]=(0,y.useState)(null),[ax,ay]=(0,y.useState)(!1),[az,aA]=(0,y.useState)(null),aB=(0,y.useCallback)(a=>{aA(a),ay(!0)},[]),[aC,aE]=(0,y.useState)(""),[aF,aG]=(0,y.useState)(""),[aH,aJ]=(0,y.useState)("#6366f1"),[aK,aL]=(0,y.useState)(""),[aM,aN]=(0,y.useState)("claude"),[aO,aP]=(0,y.useState)("new"),[aQ,aR]=(0,y.useState)(""),[aS,aT]=(0,y.useState)(""),aU=(0,c$.useRemoteWorkspaces)(),[aV,aW]=(0,y.useState)(new Set),aX=(0,y.useCallback)(a=>{aW(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),[aY,aZ]=(0,y.useState)(""),[a$,a_]=(0,y.useState)([]),[a0,a1]=(0,y.useState)(!1),[a2,a4]=(0,y.useState)(!1),[a5,a6]=(0,y.useState)(null),[a7,a9]=(0,y.useState)(!0),ba=(0,y.useRef)(null),bb=(0,y.useRef)(null),bc=(0,y.useRef)(null),bd=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/workspaces")),b=await a.json();ab(b);let c=b.find(a=>a.isActive);return ad(c||null),l(!1),c||null},[]),be=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/panes")),b=await a.json();h(b);let c=new Set;for(let a of b)a.isPopout&&c.add(a.id);t(c),j(!1)},[]);(0,y.useEffect)(()=>{bd()},[bd]),(0,y.useEffect)(()=>{u&&be()},[u,be]),(0,y.useEffect)(()=>{let a=new BroadcastChannel("spaces-panes");return bc.current=a,a.onmessage=a=>{let b=a.data;"popout-opened"===b.type?t(a=>new Set(a).add(b.paneId)):"popout-closed"===b.type?(t(a=>{let c=new Set(a);return c.delete(b.paneId),c}),h(a=>a.map(a=>a.id===b.paneId?{...a,isPopout:!1}:a))):"pane-updated"===b.type&&h(a=>a.map(a=>a.id===b.paneId?{...a,...b.data}:a))},()=>a.close()},[be]);let[bf,bg]=(0,y.useState)(0);(0,y.useEffect)(()=>{if(!i)for(let a of g)a.isPopout&&bq(a)},[i,bf]),(0,y.useEffect)(()=>{if(!(cZ.AGENT_TYPES[aM]?.supportsResume&&"resume"===aO))return;a1(!0);let a=setTimeout(()=>{let a=new URLSearchParams({sortBy:"modified",sortDir:"DESC",limit:"200"});aY&&a.set("search",aY),a7&&aF&&a.set("projectPath",aF),a.set("agentType",aM),fetch((0,cT.api)(`/api/sessions?${a}`)).then(a=>a.json()).then(a=>{a_(a.sessions||[]),a1(!1)}).catch(()=>a1(!1))},300*!!aY);return()=>clearTimeout(a)},[aM,aO,aY,a7,aF]),(0,y.useEffect)(()=>{function a(a){ba.current&&!ba.current.contains(a.target)&&a4(!1),bb.current&&!bb.current.contains(a.target)&&af(!1),au.current&&!au.current.contains(a.target)&&at(null)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]);let bh=(0,y.useCallback)(async()=>{let a,b=cZ.AGENT_TYPES[aM],c=aF||a5?.projectPath||"/";"shell"!==aM&&(a="resume"===aO&&b?.supportsResume?a5?.sessionId||aK:"new");let d=aC||(a5?a5.customName||a5.firstPrompt?.slice(0,50)||b?.name||"Agent":"")||("shell"===aM?"Terminal":b?.name||"Agent"),e=ac?.collaboration&&"shell"!==aM,f=await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:d,color:aH,cwd:c,claudeSessionId:a,agentType:aM,customCommand:"custom"===aM?aQ:void 0,nodeId:aS||void 0,isCollaborating:e||void 0})}),g=await f.json();h(a=>[...a,g]),(0,c7.track)("pane_created",{agentType:aM}),n(!1),aE(""),aG(""),aJ("#6366f1"),aL(""),aN("shell"),aP("new"),aR(""),aT(""),a6(null),aZ("")},[aC,aF,aH,aK,aM,aO,aQ,aS,a5]),bi=(0,y.useCallback)(async a=>{let b=g.find(b=>b.id===a);await fetch((0,cT.api)(`/api/panes/${a}`),{method:"DELETE"}),h(b=>b.filter(b=>b.id!==a)),b&&(0,c7.track)("pane_closed",{agentType:b.agentType}),o===a&&p(null),t(b=>{let c=new Set(b);return c.delete(a),c})},[o,g]),bj=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/panes/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),h(c=>c.map(c=>c.id===a?{...c,...b}:c))},[]),bk=(0,y.useCallback)(async a=>{let b=g.find(b=>b.id===a);if(!b)return;let c=b.title.match(/^(.*?)(?:\s+\((\d+)\))?\s*$/),d=(c?.[1]||b.title).trim(),e=d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),f=RegExp(`^${e}(?:\\s+\\((\\d+)\\))?$`),i=1;for(let a of g){let b=a.title.match(f);if(!b)continue;let c=b[1]?parseInt(b[1],10):1;c>i&&(i=c)}let j=`${d} (${i+1})`,k=ac?.collaboration&&"shell"!==b.agentType,l=await fetch((0,cT.api)("/api/panes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:j,color:b.color,cwd:b.cwd,agentType:b.agentType,customCommand:b.customCommand,nodeId:b.nodeId||void 0,customModelId:b.customModelId||void 0,isCollaborating:k||void 0})}),m=await l.json();h(a=>[...a,m]),(0,c7.track)("pane_duplicated",{agentType:b.agentType})},[g,ac]),bl=(0,y.useCallback)(a=>{p(b=>b===a?null:a)},[]),bm=(0,y.useCallback)(a=>{r(b=>new Set(b).add(a)),o===a&&p(null)},[o]),bn=(0,y.useCallback)(a=>{r(b=>{let c=new Set(b);return c.delete(a),c})},[]),bo=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return(0,y.useMemo)(()=>[...b].filter(a=>null!=a),[...b])}(aD(a8,{activationConstraint:{distance:8}}),aD(a3)),bp=(0,y.useCallback)(a=>{let{active:b,over:c}=a;c&&b.id!==c.id&&h(a=>{let d=a.findIndex(a=>a.id===b.id),e=a.findIndex(a=>a.id===c.id);if(-1===d||-1===e)return a;let f=bB(a,d,e);return f.forEach((a,b)=>{a.sortOrder!==b&&fetch((0,cT.api)(`/api/panes/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({sortOrder:b})}).catch(()=>{})}),f.map((a,b)=>({...a,sortOrder:b}))})},[]),bq=(0,y.useCallback)(a=>{let b=a.winWidth||900,c=a.winHeight||600,d=a.winX??Math.round(screen.width/2-b/2),e=a.winY??Math.round(screen.height/2-c/2),f=`left=${d},top=${e},width=${b},height=${c},menubar=no,toolbar=no,location=no,status=no`;window.open((0,cT.api)(`/terminal/pane/${a.id}`),`spaces-pane-${a.id}`,f),t(b=>new Set(b).add(a.id)),fetch((0,cT.api)(`/api/panes/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPopout:!0,winX:d,winY:e,winWidth:b,winHeight:c})})},[]),br=(0,y.useCallback)(a=>{let b=g.find(b=>b.id===a);b&&bq(b)},[g,bq]),bs=(0,y.useCallback)(async a=>{bc.current?.postMessage({type:"close-popouts"}),await fetch((0,cT.api)(`/api/panes/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isPopout:!1})}),t(b=>{let c=new Set(b);return c.delete(a),c})},[]),bt=(0,y.useCallback)(()=>{s.size>0&&(bc.current?.postMessage({type:"close-popouts"}),t(new Set))},[s]),bu=(0,y.useCallback)(async a=>{bt(),await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"switch",workspaceId:a})}),p(null),await bd(),await be(),af(!1),u?(0,c7.track)("workspace_switched"):(0,c7.track)("workspace_entered"),v(!0),bg(a=>a+1)},[bd,be,bt,u]),bw=(0,y.useCallback)(async()=>{ak.trim()&&ac&&(await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"duplicate",sourceId:ac.id,name:ak.trim(),color:am})}),al(""),an("#6366f1"),ah(!1),await bd())},[ak,am,ac,bd]),bx=(0,y.useCallback)(async()=>{let a=await fetch((0,cT.api)("/api/workspaces"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"New Space",color:"#6366f1"})}),b=await a.json();(0,c7.track)("workspace_created"),await bu(b.id)},[bu]),by=(0,y.useCallback)(async a=>{bt(),await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"DELETE"}),(0,c7.track)("workspace_deleted"),await bd(),await be(),af(!1)},[bd,be,bt]),bz=(0,y.useCallback)(()=>{bt(),h([]),v(!1)},[bt]),bA=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})}),ap(null),await bd()},[bd]),bC=(0,y.useCallback)(async(a,b)=>{await fetch((0,cT.api)(`/api/workspaces/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({color:b})}),at(null),await bd()},[bd]),bD=g.filter(a=>!s.has(a.id)&&!q.has(a.id)),bE=g.filter(a=>q.has(a.id));return u?i?(0,x.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,x.jsx)(A.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):(0,x.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-zinc-800 flex-shrink-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-3",children:[(0,x.jsx)("button",{onClick:bz,className:"p-1.5 -ml-1 text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",title:"Close space and go home",children:(0,x.jsx)(P.Home,{className:"w-4 h-4"})}),(0,x.jsx)("div",{className:"w-px h-4 bg-zinc-800"}),(0,x.jsx)("h1",{className:"text-sm font-semibold",children:"Spaces"}),(0,x.jsxs)("div",{ref:bb,className:"relative",children:[(0,x.jsxs)("button",{onClick:()=>af(!ae),className:"flex items-center gap-1.5 px-2.5 py-1 text-xs bg-zinc-800 border border-zinc-700 rounded-md hover:border-zinc-600 transition-colors",children:[ac&&(0,x.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:ac.color}}),(0,x.jsx)("span",{className:"max-w-[150px] truncate",children:ac?.name||"No space"}),(0,x.jsx)(G.ChevronDown,{className:"w-3 h-3 text-zinc-500"})]}),ae&&(0,x.jsxs)("div",{className:"absolute z-50 top-full left-0 mt-1 w-72 bg-zinc-800 border border-zinc-700 rounded-md shadow-xl overflow-hidden",children:[(0,x.jsx)("div",{className:"p-2 border-b border-zinc-700/50 text-[10px] text-zinc-500 uppercase tracking-wider font-medium",children:"Switch Space"}),(0,x.jsx)("div",{className:"max-h-[300px] overflow-y-auto",children:aa.map(a=>(0,x.jsx)("div",{className:"flex items-center gap-2 hover:bg-zinc-700/50 transition-colors group",children:ao===a.id?(0,x.jsxs)("div",{className:"flex items-center gap-1 flex-1 px-3 py-2",children:[(0,x.jsx)("input",{autoFocus:!0,value:aq,onChange:a=>ar(a.target.value),onKeyDown:b=>{"Enter"===b.key&&bA(a.id,aq),"Escape"===b.key&&ap(null)},className:"flex-1 bg-transparent border border-zinc-600 rounded px-1.5 py-0.5 text-xs focus:outline-none focus:border-indigo-400"}),(0,x.jsx)("button",{onClick:()=>bA(a.id,aq),className:"text-green-400 hover:text-green-300",children:(0,x.jsx)(M.Check,{className:"w-3 h-3"})})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"relative pl-3",children:[(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),at(as===a.id?null:a.id)},className:"w-2.5 h-2.5 rounded-full flex-shrink-0 hover:ring-2 hover:ring-zinc-500/50 transition-all",style:{backgroundColor:a.color},title:"Change color"}),as===a.id&&(0,x.jsx)("div",{ref:au,className:"absolute z-50 top-full left-0 mt-1.5 p-2 bg-zinc-800 border border-zinc-700 rounded-md shadow-xl",onClick:a=>a.stopPropagation(),children:(0,x.jsx)(cO.ColorPicker,{value:a.color,onChange:b=>bC(a.id,b)})})]}),(0,x.jsxs)("button",{onClick:()=>bu(a.id),className:"flex items-center gap-2 flex-1 py-2 pr-3 text-left",children:[(0,x.jsx)("span",{className:"text-xs text-white truncate flex-1",children:a.name}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[a.paneCount||0," panes"]}),a.isActive&&(0,x.jsx)("span",{className:"text-[10px] text-indigo-400",children:"active"})]}),(0,x.jsxs)("div",{className:"flex items-center gap-0.5 pr-2 opacity-0 group-hover:opacity-100",children:[(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),ap(a.id),ar(a.name)},className:"p-1 text-zinc-500 hover:text-white rounded",title:"Rename",children:(0,x.jsx)(L.Pencil,{className:"w-2.5 h-2.5"})}),!a.isActive&&aa.length>1&&(0,x.jsx)("button",{onClick:b=>{b.stopPropagation(),confirm(`Delete space "${a.name}" and all its panes?`)&&by(a.id)},className:"p-1 text-zinc-500 hover:text-red-400 rounded",title:"Delete",children:(0,x.jsx)(K.Trash2,{className:"w-2.5 h-2.5"})})]})]})},a.id))}),(0,x.jsxs)("div",{className:"border-t border-zinc-700/50 p-1.5 flex gap-1",children:[(0,x.jsxs)("button",{onClick:bx,className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1",children:[(0,x.jsx)(z.Plus,{className:"w-3 h-3"})," New Empty"]}),(0,x.jsxs)("button",{onClick:()=>{aj(!0),af(!1)},className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-indigo-400 hover:text-indigo-300 hover:bg-indigo-500/10 rounded transition-colors flex-1",children:[(0,x.jsx)(X,{className:"w-3 h-3"})," Plan Project"]}),(0,x.jsxs)("button",{onClick:()=>{ah(!0),af(!1)},className:"flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1",children:[(0,x.jsx)(O.Copy,{className:"w-3 h-3"})," Duplicate"]})]})]})]}),(0,x.jsxs)("span",{className:"text-[11px] text-zinc-500",children:[bD.length," pane",1!==bD.length?"s":"",s.size>0&&` + ${s.size} popped out`]})]}),(0,x.jsxs)("div",{className:"flex items-center gap-2",children:[(0,x.jsx)(dM,{enabled:g.some(a=>"claude"===a.agentType&&!s.has(a.id))}),(0,x.jsxs)("button",{onClick:()=>ay(!ax),className:`flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md border transition-colors ${ax?"border-amber-500/50 bg-amber-600/20 text-amber-400":"border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-600"}`,title:ax?"Hide file explorer":"Show file explorer",children:[(0,x.jsx)(E.FolderOpen,{className:"w-3.5 h-3.5"}),"Files"]}),e&&ac&&(0,x.jsxs)("button",{onClick:async()=>{let a=!ac.collaboration;for(let b of(await fetch((0,cT.api)(`/api/workspaces/${ac.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({collaboration:a})}),ad(b=>b?{...b,collaboration:a}:b),ab(b=>b.map(b=>b.id===ac.id?{...b,collaboration:a}:b)),g.filter(a=>a.workspaceId===ac.id&&"shell"!==a.agentType)))b.isCollaborating!==a&&await bj(b.id,{isCollaborating:a})},className:`flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md border transition-colors ${ac.collaboration?"border-indigo-500/50 bg-indigo-600/20 text-indigo-400":"border-zinc-700 text-zinc-500 hover:text-zinc-300 hover:border-zinc-600"}`,title:ac.collaboration?"Collaboration enabled — click to disable":"Enable collaboration for this workspace",children:[(0,x.jsx)(U.Users,{className:"w-3.5 h-3.5"}),"Collab"]}),(0,x.jsxs)("button",{onClick:bz,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs border border-zinc-700 text-zinc-400 rounded-md hover:text-white hover:border-zinc-600 transition-colors",title:"Close space and return home",children:[(0,x.jsx)(Q,{className:"w-3.5 h-3.5"}),"Close"]}),(0,x.jsxs)("button",{onClick:()=>{let a=[...g].sort((a,b)=>(b.created||"").localeCompare(a.created||""))[0];a?(aG(a.cwd||""),aJ(a.color||ac?.color||"#6366f1"),aN(a.agentType||"claude"),aR("custom"===a.agentType&&a.customCommand||""),aT(a.nodeId||"")):(aG(""),aJ(ac?.color||"#6366f1"),aN("claude"),aR(""),aT("")),aE(""),aL(""),aP("new"),n(!0)},className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-indigo-600 text-white rounded-md hover:bg-indigo-500 transition-colors",children:[(0,x.jsx)(z.Plus,{className:"w-3.5 h-3.5"}),"Add Pane"]})]})]}),ag&&(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900 px-4 py-3",children:(0,x.jsxs)("div",{className:"max-w-md flex items-center gap-2",children:[(0,x.jsx)(J,{className:"w-4 h-4 text-indigo-400 flex-shrink-0"}),(0,x.jsx)("input",{autoFocus:!0,type:"text",placeholder:"New space name...",value:ak,onChange:a=>al(a.target.value),onKeyDown:a=>"Enter"===a.key&&bw(),className:"flex-1 px-3 py-1.5 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white"}),(0,x.jsx)(cO.ColorPicker,{value:am,onChange:an}),(0,x.jsx)("button",{onClick:bw,disabled:!ak.trim(),className:"px-3 py-1.5 text-xs bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50",children:"Save"}),(0,x.jsx)("button",{onClick:()=>ah(!1),className:"p-1.5 text-zinc-400 hover:text-white",children:(0,x.jsx)(N.X,{className:"w-4 h-4"})})]})}),m&&(0,x.jsx)("div",{className:"border-b border-zinc-800 bg-zinc-900 px-4 py-4",children:(0,x.jsxs)("div",{className:"max-w-lg space-y-3",children:[(0,x.jsx)("h3",{className:"text-sm font-semibold",children:"Add Pane"}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Agent"}),(0,x.jsx)("div",{className:"grid grid-cols-3 gap-1.5",children:cZ.AGENT_LIST.map(a=>(0,x.jsxs)("button",{onClick:()=>{aN(a.id),aP("new"),a6(null),aL("")},className:`flex items-center gap-2 px-3 py-2 rounded-md border text-left transition-colors ${aM===a.id?"border-indigo-500 bg-indigo-600/20 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:[(0,x.jsx)("span",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsxs)("div",{className:"min-w-0",children:[(0,x.jsx)("div",{className:"text-xs font-medium truncate",children:a.name}),(0,x.jsx)("div",{className:"text-[10px] text-zinc-500 truncate",children:a.description})]})]},a.id))})]}),cZ.AGENT_TYPES[aM]?.supportsResume&&(0,x.jsxs)("div",{className:"flex gap-2",children:[(0,x.jsx)("button",{onClick:()=>{aP("new"),a6(null),aL("")},className:`px-3 py-1.5 text-xs rounded-md border transition-colors ${"new"===aO?"bg-indigo-600 border-indigo-500 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:"New Session"}),(0,x.jsx)("button",{onClick:()=>aP("resume"),className:`px-3 py-1.5 text-xs rounded-md border transition-colors ${"resume"===aO?"bg-indigo-600 border-indigo-500 text-white":"border-zinc-700 text-zinc-400 hover:text-white hover:border-zinc-600"}`,children:"Resume Session"})]}),"custom"===aM&&(0,x.jsx)("input",{type:"text",placeholder:"Command to run (e.g. python agent.py)",value:aQ,onChange:a=>aR(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white font-mono"}),(0,x.jsx)(cX,{value:aS,onChange:aT}),(0,x.jsx)("input",{type:"text",placeholder:"Title (optional)",value:aC,onChange:a=>aE(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white"}),aS?(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Working directory (on remote node)"}),(0,x.jsx)("input",{type:"text",placeholder:"e.g. /home/user/project or ~ for home",value:aF,onChange:a=>aG(a.target.value),className:"w-full px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white font-mono"})]}):(0,x.jsx)(cU,{value:aF,onChange:aG}),cZ.AGENT_TYPES[aM]?.supportsResume&&"resume"===aO&&(0,x.jsxs)("div",{ref:ba,className:"relative",children:[a5?(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md",children:[(0,x.jsx)(D.MessageSquare,{className:"w-3.5 h-3.5 text-indigo-400 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-white truncate",children:a5.customName||a5.firstPrompt?.slice(0,60)||"Untitled"}),(0,x.jsxs)("div",{className:"text-[10px] text-zinc-500 flex items-center gap-2",children:[(0,x.jsx)("span",{children:a5.projectName}),(0,x.jsxs)("span",{children:[a5.messageCount," msgs"]}),(0,x.jsxs)("span",{className:"font-mono",children:[a5.sessionId.slice(0,8),"..."]})]})]}),(0,x.jsx)("button",{onClick:()=>{a6(null),a4(!0)},className:"text-zinc-400 hover:text-white text-xs",children:"Change"})]}):(0,x.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm bg-zinc-800 border border-zinc-700 rounded-md cursor-text",onClick:()=>a4(!0),children:[(0,x.jsx)(C.Search,{className:"w-3.5 h-3.5 text-zinc-500"}),(0,x.jsx)("input",{type:"text",placeholder:"Search sessions by name, prompt, or project...",value:aY,onChange:a=>{aZ(a.target.value),a4(!0)},onFocus:()=>a4(!0),className:"flex-1 bg-transparent focus:outline-none text-white placeholder:text-zinc-500"}),aF&&(0,x.jsx)("button",{onClick:a=>{a.stopPropagation(),a9(!a7)},className:`flex-shrink-0 px-1.5 py-0.5 text-[10px] rounded border transition-colors ${a7?"border-indigo-500/50 bg-indigo-600/20 text-indigo-400":"border-zinc-600 text-zinc-500 hover:text-zinc-400"}`,title:a7?"Showing sessions for this directory — click to show all":"Showing all sessions — click to filter by directory",children:a7?aF.split("/").pop():"All"}),(0,x.jsx)(G.ChevronDown,{className:"w-3.5 h-3.5 text-zinc-500"})]}),a2&&!a5&&(0,x.jsx)("div",{className:"absolute z-50 top-full left-0 right-0 mt-1 max-h-[300px] overflow-y-auto bg-zinc-800 border border-zinc-700 rounded-md shadow-xl",children:a0?(0,x.jsxs)("div",{className:"flex items-center justify-center py-6",children:[(0,x.jsx)(A.Loader2,{className:"w-4 h-4 animate-spin text-zinc-400"}),(0,x.jsx)("span",{className:"text-xs text-zinc-400 ml-2",children:"Loading sessions..."})]}):0===a$.length?(0,x.jsx)("div",{className:"py-4 px-3 text-xs text-zinc-500 text-center",children:aY?"No sessions match your search":"No sessions found"}):a$.map(a=>(0,x.jsx)("button",{onClick:()=>{a6(a),aL(a.sessionId),!aF&&a.projectPath&&aG(a.projectPath),aC||aE(a.customName||""),a4(!1)},className:"w-full text-left px-3 py-2.5 hover:bg-zinc-700 border-b border-zinc-700/50 last:border-0 transition-colors",children:(0,x.jsxs)("div",{className:"flex items-start gap-2",children:[(0,x.jsx)(D.MessageSquare,{className:"w-3.5 h-3.5 text-indigo-400 mt-0.5 flex-shrink-0"}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-xs text-white truncate",children:a.customName||a.firstPrompt?.slice(0,70)||"Untitled session"}),(0,x.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,x.jsxs)("span",{className:"text-[10px] text-indigo-400/70 flex items-center gap-0.5",children:[(0,x.jsx)(E.FolderOpen,{className:"w-2.5 h-2.5"}),a.projectName]}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500",children:[a.messageCount," msgs"]}),(0,x.jsxs)("span",{className:"text-[10px] text-zinc-500 flex items-center gap-0.5",children:[(0,x.jsx)(F.Clock,{className:"w-2.5 h-2.5"}),new Date(a.modified).toLocaleDateString()]}),a.starred&&(0,x.jsx)("span",{className:"text-[10px]",children:"★"})]}),a.tags?.length>0&&(0,x.jsx)("div",{className:"flex gap-1 mt-1",children:a.tags.map(a=>(0,x.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 bg-zinc-700 rounded text-zinc-400",children:a},a))})]})]})},a.sessionId))})]}),(0,x.jsxs)("div",{children:[(0,x.jsx)("label",{className:"text-[11px] text-zinc-400 mb-1.5 block",children:"Color"}),(0,x.jsx)(cO.ColorPicker,{value:aH,onChange:aJ})]}),(0,x.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,x.jsx)("button",{onClick:bh,disabled:"custom"===aM&&!aQ.trim(),className:"px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50 disabled:cursor-not-allowed",children:"Create"}),(0,x.jsx)("button",{onClick:()=>n(!1),className:"px-4 py-2 text-sm border border-zinc-700 text-zinc-400 rounded-md hover:text-white hover:border-zinc-600",children:"Cancel"})]})]})}),s.size>0&&(0,x.jsxs)("div",{className:"flex items-center gap-2 px-4 py-1.5 border-b border-zinc-800 bg-zinc-900/50",children:[(0,x.jsx)("span",{className:"text-[10px] text-zinc-500",children:"Popped out:"}),g.filter(a=>s.has(a.id)).map(a=>(0,x.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,x.jsxs)("button",{onClick:()=>bq(a),className:"flex items-center gap-1 px-2 py-0.5 text-[10px] bg-zinc-800 border border-zinc-700 rounded-l text-zinc-400 hover:text-white hover:border-zinc-600",title:"Focus popout window",children:[(0,x.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.title]}),(0,x.jsx)("button",{onClick:()=>bs(a.id),className:"px-1 py-0.5 text-[10px] bg-zinc-800 border border-zinc-700 border-l-0 rounded-r text-zinc-500 hover:text-white hover:border-zinc-600",title:"Pop back into grid",children:(0,x.jsx)(R,{className:"w-2.5 h-2.5"})})]},a.id))]}),$&&(0,x.jsx)(dG,{workspace:ac}),(0,x.jsxs)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:[ax&&(0,x.jsx)("div",{className:"w-64 flex-shrink-0",children:(0,x.jsx)(dt,{onClose:()=>ay(!1),navigateTo:az})}),0===bD.length&&0===s.size&&0===q.size?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"text-center space-y-3",children:[(0,x.jsx)("img",{src:`${c}/spaces_icon.png`,alt:"Spaces",className:"w-16 h-16 mx-auto opacity-30"}),(0,x.jsx)("p",{className:"text-zinc-500",children:"No panes yet."}),(0,x.jsx)("p",{className:"text-zinc-600 text-xs",children:"Add a pane to start a shell, Claude, Codex, Gemini, or any agent."}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 inline-flex items-center gap-2",children:[(0,x.jsx)(z.Plus,{className:"w-4 h-4"}),"Add your first pane"]})]})}):0===bD.length?(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,x.jsxs)("div",{className:"text-center space-y-2",children:[(0,x.jsx)("p",{className:"text-zinc-500 text-sm",children:q.size>0&&s.size>0?"All panes are minimized or popped out.":q.size>0?"All panes are minimized. Use the toolbar to restore them.":"All panes are popped out to separate windows."}),(0,x.jsxs)("button",{onClick:()=>n(!0),className:"px-3 py-1.5 text-xs text-zinc-400 hover:text-white border border-zinc-700 rounded-md hover:border-zinc-600 inline-flex items-center gap-1.5",children:[(0,x.jsx)(z.Plus,{className:"w-3.5 h-3.5"}),"Add another pane"]})]})}):(0,x.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden min-h-0",children:[(0,x.jsx)(bv,{sensors:bo,collisionDetection:aI,onDragEnd:bp,children:(0,x.jsx)(bI,{items:bD.map(a=>a.id),strategy:bF,children:(0,x.jsx)(dO,{panes:o?bD.filter(a=>a.id===o):bD,renderPane:(b,c)=>(0,x.jsx)(Z.TerminalPane,{pane:b,onClose:bi,onUpdate:bj,onDuplicate:bk,isMaximized:o===b.id,onToggleMaximize:bl,onMinimize:bm,onPopout:br,onBrowse:aB,terminalToken:a,workspaceCollaboration:ac?.collaboration,dragHandleProps:c})})})}),bE.length>0&&(0,x.jsx)("div",{className:"flex items-center gap-1.5 px-2 py-1.5 border-t border-zinc-800 flex-shrink-0 overflow-x-auto bg-zinc-950",children:bE.map(a=>(0,x.jsxs)("button",{onClick:()=>bn(a.id),className:"flex items-center gap-1.5 px-2.5 py-1 text-[11px] rounded-md border border-zinc-700 hover:border-zinc-500 bg-zinc-800/50 hover:bg-zinc-700/50 text-zinc-400 hover:text-white transition-colors flex-shrink-0",title:`Restore ${a.title}`,children:[(0,x.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsx)("span",{className:"truncate max-w-[100px]",children:a.title}),(0,x.jsx)(W.Maximize2,{className:"w-2.5 h-2.5 text-zinc-500"})]},a.id))})]}),ac?.collaboration&&(0,x.jsx)(c4,{workspaceId:ac?.id??null,panes:bD.map(a=>({id:a.id,title:a.title,agentType:a.agentType,color:a.color})),collapsed:w,onToggle:()=>I(!w)})]}),(0,x.jsx)(dF,{isOpen:ai,onClose:()=>aj(!1),onLaunch:a=>{aj(!1),bu(a)}})]}):(0,x.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,x.jsx)("div",{className:"absolute top-4 left-4",children:(0,x.jsxs)("button",{onClick:()=>b.push("/"),className:"flex items-center gap-2 px-3 py-1.5 text-xs text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",children:[(0,x.jsx)(P.Home,{className:"w-3.5 h-3.5"}),"Home"]})}),(0,x.jsx)("div",{className:"flex-1 flex items-center justify-center p-8 overflow-y-auto min-h-0",children:(0,x.jsxs)("div",{className:"w-full max-w-2xl my-auto",children:[(0,x.jsxs)("div",{className:"text-center mb-10",children:[(0,x.jsx)("img",{src:`${c}/spaces_icon.png`,alt:"Spaces",className:"w-16 h-16 mx-auto mb-4"}),(0,x.jsx)("h1",{className:"text-2xl font-bold mb-2",children:"Spaces"}),(0,x.jsx)("p",{className:"text-zinc-400 text-sm",children:"Choose a workspace to open, or create a new one."})]}),k?(0,x.jsx)("div",{className:"flex justify-center py-12",children:(0,x.jsx)(A.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"grid grid-cols-2 gap-3 mb-6",children:aa.map(a=>(0,x.jsxs)("div",{className:`relative bg-zinc-900 border rounded-lg transition-all ${av===a.id?"border-zinc-600":"border-zinc-800 hover:border-zinc-600 hover:bg-zinc-800/50"}`,children:[(0,x.jsxs)("button",{onClick:()=>bu(a.id),className:"flex items-center gap-3 p-4 text-left w-full group",children:[(0,x.jsx)("span",{className:"w-3.5 h-3.5 rounded-full flex-shrink-0",style:{backgroundColor:a.color}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-sm font-medium text-white truncate",children:a.name}),(0,x.jsxs)("div",{className:"text-xs text-zinc-500 mt-0.5",children:[a.paneCount||0," pane",1!==(a.paneCount||0)?"s":"",a.isActive&&(0,x.jsx)("span",{className:"text-indigo-400 ml-2",children:"last active"})]})]}),(0,x.jsx)(B.Terminal,{className:"w-4 h-4 text-zinc-600 group-hover:text-zinc-400 transition-colors"})]}),f&&(0,x.jsx)("button",{onClick:()=>aw(av===a.id?null:a.id),className:`absolute top-2 right-2 p-1 rounded transition-colors ${av===a.id?"text-purple-400 bg-purple-500/10":"text-zinc-700 hover:text-zinc-400"}`,title:"Knowledge lobe settings",children:(0,x.jsx)(V.Brain,{className:"w-3.5 h-3.5"})}),av===a.id&&(0,x.jsx)("div",{className:"px-4 pb-4 border-t border-zinc-800/50 pt-3",children:(0,x.jsx)(db,{workspaceId:a.id,workspaceName:a.name})})]},a.id))}),(0,x.jsxs)("div",{className:"flex justify-center gap-3",children:[(0,x.jsxs)("button",{onClick:bx,className:"flex items-center gap-2 px-4 py-2.5 text-sm border border-zinc-700 text-zinc-400 rounded-lg hover:text-white hover:border-zinc-500 transition-colors",children:[(0,x.jsx)(z.Plus,{className:"w-4 h-4"}),"New Workspace"]}),(0,x.jsxs)("button",{onClick:()=>aj(!0),className:"flex items-center gap-2 px-4 py-2.5 text-sm border border-dashed border-indigo-500/50 text-indigo-400 rounded-lg hover:text-indigo-300 hover:border-indigo-400 hover:bg-indigo-500/10 transition-colors",children:[(0,x.jsx)(X,{className:"w-4 h-4"}),"Plan a Project"]})]}),d&&aU.isLoading&&(0,x.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4 mt-6 border-t border-zinc-800",children:[(0,x.jsx)(A.Loader2,{className:"w-4 h-4 animate-spin text-zinc-500"}),(0,x.jsx)("span",{className:"text-xs text-zinc-500",children:"Loading network spaces..."})]}),d&&aU.data?.remote&&aU.data.remote.length>0&&(0,x.jsxs)("div",{className:"mt-6 border-t border-zinc-800 pt-6",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,x.jsx)(S.Globe,{className:"w-4 h-4 text-zinc-500"}),(0,x.jsx)("h2",{className:"text-sm font-medium text-zinc-400",children:"Network Spaces"})]}),aU.data.remote.map(a=>(0,x.jsxs)("div",{className:"mb-3",children:[(0,x.jsxs)("button",{onClick:()=>aX(a.nodeId),className:"flex items-center gap-2 w-full px-2 py-1.5 text-left text-xs text-zinc-400 hover:text-white rounded-md hover:bg-zinc-800/50 transition-colors",children:[aV.has(a.nodeId)?(0,x.jsx)(H.ChevronRight,{className:"w-3.5 h-3.5 text-zinc-600"}):(0,x.jsx)(G.ChevronDown,{className:"w-3.5 h-3.5 text-zinc-600"}),(0,x.jsx)(S.Globe,{className:"w-3 h-3 text-zinc-600"}),(0,x.jsx)("span",{className:"font-medium",children:a.nodeName}),(0,x.jsxs)("span",{className:"text-zinc-600",children:[a.workspaces.length," space",1!==a.workspaces.length?"s":""]})]}),!aV.has(a.nodeId)&&(0,x.jsx)("div",{className:"grid grid-cols-2 gap-2 mt-2 ml-5",children:a.workspaces.map(c=>(0,x.jsxs)("button",{onClick:()=>{b.push(`/terminal/remote/${a.nodeId}/${c.id}`)},className:"flex items-center gap-3 p-3 bg-zinc-900/50 border border-zinc-800/50 rounded-lg hover:border-zinc-600 hover:bg-zinc-800/30 transition-colors text-left group",children:[(0,x.jsx)("span",{className:"w-3 h-3 rounded-full flex-shrink-0 ring-1 ring-zinc-700",style:{backgroundColor:c.color}}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsx)("div",{className:"text-xs font-medium text-zinc-300 truncate",children:c.name}),(0,x.jsxs)("div",{className:"text-[10px] text-zinc-600 mt-0.5",children:[c.paneCount||0," pane",1!==(c.paneCount||0)?"s":""]})]}),(0,x.jsx)(S.Globe,{className:"w-3 h-3 text-zinc-700 group-hover:text-zinc-500 transition-colors"})]},`${a.nodeId}-${c.id}`))})]},a.nodeId)),aU.data.errors&&aU.data.errors.length>0&&(0,x.jsx)("div",{className:"mt-3 space-y-1",children:aU.data.errors.map(a=>(0,x.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 text-[10px] text-zinc-600",children:[(0,x.jsx)(T.AlertCircle,{className:"w-3 h-3 text-red-500/50"}),(0,x.jsxs)("span",{children:[a.nodeName,": ",a.error]})]},a.nodeId))})]})]})]})}),(0,x.jsx)(dF,{isOpen:ai,onClose:()=>aj(!1),onLaunch:a=>{aj(!1),bu(a)}})]})}a.s(["default",()=>dQ],266490)}];
86
86
 
87
87
  //# sourceMappingURL=src_app_%28desktop%29_terminal_page_tsx_de5e8d85._.js.map