@jlongo78/agent-spaces 0.9.8 → 0.9.9

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 (356) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +3 -0
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +23 -0
  6. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(desktop)/cortex/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(desktop)/terminal/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  23. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  31. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  32. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  33. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  35. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  38. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  39. package/.next/standalone/.next/server/app/admin/analytics.rsc +3 -3
  40. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +2 -2
  41. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
  42. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  43. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  44. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +3 -3
  45. package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
  47. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
  48. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  49. package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
  50. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  53. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
  55. package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
  57. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
  58. package/.next/standalone/.next/server/app/analytics.html +1 -1
  59. package/.next/standalone/.next/server/app/analytics.rsc +2 -2
  60. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
  61. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
  62. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
  64. package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
  65. package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
  66. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  67. package/.next/standalone/.next/server/app/api/claude/usage/route/app-paths-manifest.json +3 -0
  68. package/.next/standalone/.next/server/app/api/claude/usage/route/build-manifest.json +11 -0
  69. package/.next/standalone/.next/server/app/api/claude/usage/route/server-reference-manifest.json +4 -0
  70. package/.next/standalone/.next/server/app/api/claude/usage/route.js +8 -0
  71. package/.next/standalone/.next/server/app/api/claude/usage/route.js.map +5 -0
  72. package/.next/standalone/.next/server/app/api/claude/usage/route.js.nft.json +1 -0
  73. package/.next/standalone/.next/server/app/api/claude/usage/route_client-reference-manifest.js +2 -0
  74. package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route/app-paths-manifest.json +3 -0
  76. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route/build-manifest.json +11 -0
  77. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route/server-reference-manifest.json +4 -0
  78. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js +8 -0
  79. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js.map +5 -0
  80. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js.nft.json +1 -0
  81. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route_client-reference-manifest.js +2 -0
  82. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route/app-paths-manifest.json +3 -0
  83. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route/build-manifest.json +11 -0
  84. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route/server-reference-manifest.json +4 -0
  85. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js +8 -0
  86. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js.map +5 -0
  87. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js.nft.json +1 -0
  88. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route_client-reference-manifest.js +2 -0
  89. package/.next/standalone/.next/server/app/cortex.html +1 -1
  90. package/.next/standalone/.next/server/app/cortex.rsc +2 -2
  91. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex/__PAGE__.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex.segment.rsc +1 -1
  93. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  94. package/.next/standalone/.next/server/app/cortex.segments/_full.segment.rsc +2 -2
  95. package/.next/standalone/.next/server/app/cortex.segments/_head.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/cortex.segments/_index.segment.rsc +2 -2
  97. package/.next/standalone/.next/server/app/cortex.segments/_tree.segment.rsc +2 -2
  98. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/login.html +1 -1
  100. package/.next/standalone/.next/server/app/login.rsc +2 -2
  101. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
  102. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  103. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
  104. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  105. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  106. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
  108. package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  110. package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
  111. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
  112. package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
  113. package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
  114. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
  115. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
  116. package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  121. package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
  122. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
  124. package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
  125. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
  126. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
  129. package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  131. package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
  132. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
  133. package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
  134. package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
  135. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
  136. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
  137. package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
  138. package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
  139. package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  141. package/.next/standalone/.next/server/app/m/terminal.rsc +2 -2
  142. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +2 -2
  143. package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
  144. package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
  145. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
  146. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
  147. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
  148. package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/m.html +1 -1
  150. package/.next/standalone/.next/server/app/m.rsc +2 -2
  151. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
  152. package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
  153. package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
  154. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
  155. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
  156. package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
  157. package/.next/standalone/.next/server/app/network.html +1 -1
  158. package/.next/standalone/.next/server/app/network.rsc +2 -2
  159. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
  160. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
  161. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  162. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
  163. package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
  164. package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
  165. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
  166. package/.next/standalone/.next/server/app/projects.html +1 -1
  167. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  168. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
  169. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
  170. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  171. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  172. package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  173. package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  174. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  175. package/.next/standalone/.next/server/app/sessions.html +1 -1
  176. package/.next/standalone/.next/server/app/sessions.rsc +2 -2
  177. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
  178. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
  179. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  180. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
  181. package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  182. package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
  183. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  184. package/.next/standalone/.next/server/app/settings.html +1 -1
  185. package/.next/standalone/.next/server/app/settings.rsc +3 -3
  186. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +2 -2
  187. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
  188. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  189. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  190. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  191. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  192. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  193. package/.next/standalone/.next/server/app/terminal.html +1 -1
  194. package/.next/standalone/.next/server/app/terminal.rsc +3 -3
  195. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
  196. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
  197. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  198. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +3 -3
  199. package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  200. package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
  201. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
  202. package/.next/standalone/.next/server/app/vr/page_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/vr.html +1 -1
  204. package/.next/standalone/.next/server/app/vr.rsc +2 -2
  205. package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +2 -2
  206. package/.next/standalone/.next/server/app/vr.segments/_head.segment.rsc +1 -1
  207. package/.next/standalone/.next/server/app/vr.segments/_index.segment.rsc +2 -2
  208. package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +2 -2
  209. package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +1 -1
  210. package/.next/standalone/.next/server/app/vr.segments/vr.segment.rsc +1 -1
  211. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  212. package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
  213. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
  214. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
  215. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  216. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
  217. package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
  218. package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
  219. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  220. package/.next/standalone/.next/server/app-paths-manifest.json +3 -0
  221. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00e90fc6._.js +15 -2
  222. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01ab8675._.js +15 -2
  223. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03974f05._.js +15 -2
  224. package/.next/standalone/.next/server/chunks/[root-of-the-server]__046c9b91._.js +15 -2
  225. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04ae6bf0._.js +15 -2
  226. package/.next/standalone/.next/server/chunks/[root-of-the-server]__056fa416._.js +1 -1
  227. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ac4ea3f._.js +1 -1
  228. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b8e64cb._.js +15 -2
  229. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0facd39e._.js +15 -2
  230. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10bc76a3._.js +1 -1
  231. package/.next/standalone/.next/server/chunks/[root-of-the-server]__115f3934._.js +15 -2
  232. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11f155f1._.js +1 -1
  233. package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +52 -24
  234. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17a3b966._.js +15 -2
  235. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17d3a2b2._.js +15 -2
  236. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a86c055._.js +15 -2
  237. package/.next/standalone/.next/server/chunks/[root-of-the-server]__20b5e9c4._.js +1 -1
  238. package/.next/standalone/.next/server/chunks/[root-of-the-server]__28d6fbd8._.js +15 -2
  239. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2a3f866b._.js +16 -3
  240. package/.next/standalone/.next/server/chunks/[root-of-the-server]__316617e7._.js +2 -2
  241. package/.next/standalone/.next/server/chunks/[root-of-the-server]__32ad8f71._.js +15 -2
  242. package/.next/standalone/.next/server/chunks/[root-of-the-server]__35457394._.js +15 -2
  243. package/.next/standalone/.next/server/chunks/[root-of-the-server]__35de78e6._.js +15 -2
  244. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3685ffcb._.js +15 -2
  245. package/.next/standalone/.next/server/chunks/[root-of-the-server]__38954988._.js +15 -2
  246. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3a32b624._.js +111 -0
  247. package/.next/standalone/.next/server/chunks/[root-of-the-server]__426ad936._.js +17 -4
  248. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4985c034._.js +15 -2
  249. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c6ce9ed._.js +16 -3
  250. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cebe58a._.js +15 -2
  251. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d5e4789._.js +15 -2
  252. package/.next/standalone/.next/server/chunks/[root-of-the-server]__65676930._.js +1 -1
  253. package/.next/standalone/.next/server/chunks/[root-of-the-server]__67cab326._.js +2 -2
  254. package/.next/standalone/.next/server/chunks/[root-of-the-server]__698c6f01._.js +16 -3
  255. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c64af29._.js +22 -9
  256. package/.next/standalone/.next/server/chunks/[root-of-the-server]__73aed9f5._.js +15 -2
  257. package/.next/standalone/.next/server/chunks/[root-of-the-server]__79b6a9bb._.js +15 -2
  258. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7db704c6._.js +17 -4
  259. package/.next/standalone/.next/server/chunks/[root-of-the-server]__812ca02b._.js +15 -2
  260. package/.next/standalone/.next/server/chunks/[root-of-the-server]__821f50fa._.js +15 -2
  261. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8716b86e._.js +15 -2
  262. package/.next/standalone/.next/server/chunks/[root-of-the-server]__884ef754._.js +15 -2
  263. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88cdbd68._.js +15 -2
  264. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89d9aba9._.js +15 -2
  265. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c2e1260._.js +111 -0
  266. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8d536cb5._.js +15 -2
  267. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8df8c5d1._.js +15 -2
  268. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8f2ccc41._.js +15 -2
  269. package/.next/standalone/.next/server/chunks/[root-of-the-server]__95c9d682._.js +15 -2
  270. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e5d7774._.js +15 -2
  271. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9edcff87._.js +15 -2
  272. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a049dfc2._.js +15 -2
  273. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a5b4bb9a._.js +16 -3
  274. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a83262a1._.js +15 -2
  275. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9cd1240._.js +15 -2
  276. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9d7f822._.js +15 -2
  277. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad08c221._.js +15 -2
  278. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad585f2f._.js +15 -2
  279. package/.next/standalone/.next/server/chunks/[root-of-the-server]__afcb8f7d._.js +15 -2
  280. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bc250d43._.js +15 -2
  281. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bce2a6e7._.js +15 -2
  282. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c011bf91._.js +15 -2
  283. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c37d6380._.js +1 -1
  284. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cae392eb._.js +15 -2
  285. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cc2616bb._.js +16 -3
  286. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d501fa9b._.js +15 -2
  287. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d59c6c15._.js +16 -3
  288. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d5c1db32._.js +15 -2
  289. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dba60c86._.js +15 -2
  290. package/.next/standalone/.next/server/chunks/[root-of-the-server]__de14b9ae._.js +15 -2
  291. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e10643d1._.js +15 -2
  292. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e2a996e5._.js +23 -10
  293. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3477417._.js +15 -2
  294. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e4db362e._.js +1 -1
  295. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e4e70b86._.js +15 -2
  296. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e54925af._.js +15 -2
  297. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8cbeaca._.js +111 -0
  298. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8edc5b0._.js +15 -2
  299. package/.next/standalone/.next/server/chunks/[root-of-the-server]__eab4d83b._.js +15 -2
  300. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ead29015._.js +1 -1
  301. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f056fd83._.js +15 -2
  302. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f0e99572._.js +15 -2
  303. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fe1e16d0._.js +15 -2
  304. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ff9cd277._.js +15 -2
  305. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ffaea2ce._.js +15 -2
  306. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_claude_usage_route_actions_fe002ec1.js +3 -0
  307. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_workspaces_[id]_todos_route_actions_0d4ffac5.js +3 -0
  308. package/.next/standalone/.next/server/chunks/ce889_server_app_api_workspaces_[id]_todos_[todoId]_route_actions_754fe6b9.js +3 -0
  309. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
  310. package/.next/standalone/.next/server/chunks/ssr/{_17b946fd._.js → _20c2cf3a._.js} +2 -2
  311. package/.next/standalone/.next/server/chunks/ssr/_5f55bf8f._.js +3 -0
  312. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_settings_page_tsx_f74824b3._.js +1 -1
  313. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +1 -1
  314. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__90eeddae._.js +1 -1
  315. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  316. package/.next/standalone/.next/server/pages/404.html +1 -1
  317. package/.next/standalone/.next/server/pages/500.html +2 -2
  318. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  319. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  320. package/.next/standalone/.next/static/chunks/14216197f9dcbe5b.css +3 -0
  321. package/.next/standalone/.next/static/chunks/{0852575eb90c1e8d.js → 4c9fb0a38f041a3d.js} +2 -2
  322. package/.next/standalone/.next/static/chunks/8f6f93ab45a5ff5b.js +1 -0
  323. package/.next/standalone/.next/static/chunks/{e62bb488d02db247.js → d2566c2dcf53fef3.js} +1 -1
  324. package/.next/standalone/.next/static/chunks/{7f6a14f1849fa94d.js → ff7d85dade44d1f3.js} +1 -1
  325. package/.next/standalone/cortex-hook-debug.log +61 -0
  326. package/.next/standalone/docs/features/claude-usage.md +105 -0
  327. package/.next/standalone/docs/features/workspace-todos.md +127 -0
  328. package/.next/standalone/docs/superpowers/plans/2026-04-21-workspace-todos.md +1097 -0
  329. package/.next/standalone/docs/superpowers/plans/2026-04-22-claude-usage-display.md +749 -0
  330. package/.next/standalone/docs/superpowers/specs/2026-04-21-workspace-todos-design.md +180 -0
  331. package/.next/standalone/docs/superpowers/specs/2026-04-22-claude-usage-display-design.md +183 -0
  332. package/.next/standalone/package-lock.json +2 -2
  333. package/.next/standalone/package.json +1 -1
  334. package/.next/standalone/src/app/(desktop)/settings/page.tsx +40 -1
  335. package/.next/standalone/src/app/(desktop)/terminal/page.tsx +54 -2
  336. package/.next/standalone/src/app/api/claude/usage/route.ts +33 -0
  337. package/.next/standalone/src/app/api/config/route.ts +3 -0
  338. package/.next/standalone/src/app/api/workspaces/[id]/todos/[todoId]/route.ts +55 -0
  339. package/.next/standalone/src/app/api/workspaces/[id]/todos/route.ts +43 -0
  340. package/.next/standalone/src/components/claude/claude-usage-strip.tsx +175 -0
  341. package/.next/standalone/src/components/workspace/workspace-todos.tsx +265 -0
  342. package/.next/standalone/src/hooks/use-claude-usage.ts +66 -0
  343. package/.next/standalone/src/lib/claude/credentials.ts +36 -0
  344. package/.next/standalone/src/lib/claude/usage.ts +69 -0
  345. package/.next/standalone/src/lib/config.ts +3 -0
  346. package/.next/standalone/src/lib/db/queries.ts +103 -1
  347. package/.next/standalone/src/lib/db/schema.ts +18 -0
  348. package/.next/standalone/src/types/claude.ts +39 -0
  349. package/.next/standalone/tests/db/workspace-todos.test.ts +156 -0
  350. package/package.json +1 -1
  351. package/.next/standalone/.next/server/chunks/ssr/_3ba93bdd._.js +0 -3
  352. package/.next/standalone/.next/static/chunks/074df89a63b6a854.js +0 -1
  353. package/.next/standalone/.next/static/chunks/2b769d1597e4fc1c.css +0 -3
  354. /package/.next/standalone/.next/static/{u1pHON3drz1mBi7owkbBP → bAQs2gDlFrq3e8w9ni9tr}/_buildManifest.js +0 -0
  355. /package/.next/standalone/.next/static/{u1pHON3drz1mBi7owkbBP → bAQs2gDlFrq3e8w9ni9tr}/_clientMiddlewareManifest.json +0 -0
  356. /package/.next/standalone/.next/static/{u1pHON3drz1mBi7owkbBP → bAQs2gDlFrq3e8w9ni9tr}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[935112,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].ReactDOM},596221,a=>{"use strict";let b=(0,a.i(883706).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",()=>b],596221)},859603,a=>{"use strict";var b=a.i(433217),c=a.i(370025),d=a.i(937927),e=a.i(119032);function f(a={}){return(0,b.useQuery)({queryKey:["sessions",a],queryFn:async()=>{let b=new URLSearchParams;return a.projectId&&b.set("projectId",a.projectId),void 0!==a.starred&&b.set("starred",String(a.starred)),a.search&&b.set("search",a.search),a.agentType&&b.set("agentType",a.agentType),a.sortBy&&b.set("sortBy",a.sortBy),a.sortDir&&b.set("sortDir",a.sortDir),void 0!==a.offset&&b.set("offset",String(a.offset)),void 0!==a.limit&&b.set("limit",String(a.limit)),"all"===a.nodeFilter&&b.set("nodes","all"),(await fetch((0,e.api)(`/api/sessions?${b}`))).json()}})}function g(a){return(0,b.useQuery)({queryKey:["session",a],queryFn:async()=>{let b=await fetch((0,e.api)(`/api/sessions/${a}`));if(!b.ok)throw Error("Session not found");return b.json()},enabled:!!a})}function h(a,c=0,d=50,f){return(0,b.useQuery)({queryKey:["messages",a,c,d,f],queryFn:async()=>{let b=f?(0,e.api)(`/api/network/proxy/${f}/sessions/${a}/messages?offset=${c}&limit=${d}`):(0,e.api)(`/api/sessions/${a}/messages?offset=${c}&limit=${d}`);return(await fetch(b)).json()},enabled:!!a})}function i(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"star"})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function j(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({sessionId:a,notes:b})=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"notes",notes:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["session"]})}})}function k(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({sessionId:a,tagName:b})=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"tag",tagName:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]}),a.invalidateQueries({queryKey:["tags"]})}})}function l(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({sessionId:a,tagName:b})=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"removeTag",tagName:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]}),a.invalidateQueries({queryKey:["tags"]})}})}function m(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({sessionId:a,name:b})=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"rename",name:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function n(){return(0,b.useQuery)({queryKey:["tags"],queryFn:async()=>(await fetch((0,e.api)("/api/tags"))).json()})}function o(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)("/api/tags"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",tagId:a})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["tags"]}),a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function p(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({tagId:a,color:b})=>(await fetch((0,e.api)("/api/tags"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"updateColor",tagId:a,color:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["tags"]}),a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function q(){return(0,b.useQuery)({queryKey:["workspaces"],queryFn:async()=>(await fetch((0,e.api)("/api/workspaces"))).json()})}function r(){return(0,b.useQuery)({queryKey:["workspaces","remote"],queryFn:async()=>(await fetch((0,e.api)("/api/workspaces?nodes=all"))).json()})}function s(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({workspaceId:a,sessionId:b,nodeId:c,title:d,cwd:f,agentType:g})=>{let h=await fetch((0,e.api)(`/api/workspaces/${a}/sessions`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:b,nodeId:c,title:d,cwd:f,agentType:g})});if(!h.ok)throw Error("Failed to add session to workspace");return h.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["workspaces"]}),a.invalidateQueries({queryKey:["workspace-sessions"]}),a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function t(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({workspaceId:a,sessionId:b})=>{let c=await fetch((0,e.api)(`/api/workspaces/${a}/sessions`),{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:b})});if(!c.ok)throw Error("Failed to remove session from workspace");return c.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["workspaces"]}),a.invalidateQueries({queryKey:["workspace-sessions"]}),a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function u(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)("/api/bulk"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["workspaces"]}),a.invalidateQueries({queryKey:["tags"]})}})}function v(){return(0,b.useQuery)({queryKey:["projects"],queryFn:async()=>(await fetch((0,e.api)("/api/projects"))).json()})}function w(){return(0,b.useQuery)({queryKey:["analytics"],queryFn:async()=>(await fetch((0,e.api)("/api/analytics/overview"))).json()})}function x(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async()=>(await fetch((0,e.api)("/api/sync"),{method:"POST"})).json(),onSuccess:()=>{a.invalidateQueries()}})}a.s(["useAddSessionToWorkspace",()=>s,"useAddTag",()=>k,"useAnalytics",()=>w,"useBulkAction",()=>u,"useDeleteTag",()=>o,"useMessages",()=>h,"useProjects",()=>v,"useRemoteWorkspaces",()=>r,"useRemoveSessionFromWorkspace",()=>t,"useRemoveTag",()=>l,"useRenameSession",()=>m,"useSession",()=>g,"useSessions",()=>f,"useSync",()=>x,"useTags",()=>n,"useToggleStar",()=>i,"useUpdateNotes",()=>j,"useUpdateTagColor",()=>p,"useWorkspaces",()=>q])},400210,a=>{"use strict";let b=(0,a.i(883706).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",()=>b],400210)},641710,a=>{"use strict";let b=(0,a.i(883706).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",()=>b],641710)},915618,a=>{"use strict";let b=(0,a.i(883706).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],915618)},781560,a=>{"use strict";let b=(0,a.i(883706).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",()=>b],781560)},1279,a=>{"use strict";var b=a.i(433217),c=a.i(370025),d=a.i(937927),e=a.i(119032);function f(){return(0,b.useQuery)({queryKey:["node-identity"],queryFn:async()=>(await fetch((0,e.api)("/api/network/identity"))).json()})}function g(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)("/api/network/identity"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["node-identity"]})}})}function h(a=!0){return(0,b.useQuery)({queryKey:["network-nodes"],queryFn:async()=>{let a=await fetch((0,e.api)("/api/network/nodes"));if(!a.ok)return[];let b=await a.json();return Array.isArray(b)?b:[]},enabled:a})}function i(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>{let b=await fetch((0,e.api)("/api/network/nodes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json()).error||"Failed to add node");return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["network-nodes"]})}})}function j(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>{let b=await fetch((0,e.api)("/api/network/nodes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a.url,apiKey:a.apiKey,name:a.name})});if(!b.ok)throw Error((await b.json()).error||"Failed to connect");return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["network-nodes"]})}})}function k(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)(`/api/network/nodes/${a}`),{method:"DELETE"})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["network-nodes"]})}})}function l(){return(0,b.useQuery)({queryKey:["network-api-keys"],queryFn:async()=>(await fetch((0,e.api)("/api/network/keys"))).json()})}function m(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)("/api/network/keys"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["network-api-keys"]})}})}function n(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)(`/api/network/keys/${a}`),{method:"DELETE"})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["network-api-keys"]})}})}function o(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async()=>(await fetch((0,e.api)("/api/network/nodes/check"),{method:"POST"})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["network-nodes"]})}})}function p(){return(0,b.useQuery)({queryKey:["connection-requests"],queryFn:async()=>{let a=await fetch((0,e.api)("/api/network/connect-request"));return a.ok?a.json():{incoming:[],outgoing:[]}},refetchInterval:5e3})}function q(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>{let b=await fetch((0,e.api)("/api/network/connect-request"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({_sendRequest:!0,targetNodeId:a.nodeId,targetNodeName:a.nodeName,targetNodeUrl:a.nodeUrl})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Request failed"}))).error||`Request failed (${b.status})`);return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["connection-requests"]})}})}function r(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>{let b=await fetch((0,e.api)(`/api/network/connect-request/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a.action})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Failed"}))).error||"Failed to respond");return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["connection-requests"]}),a.invalidateQueries({queryKey:["network-nodes"]})}})}a.s(["useAddNode",()=>i,"useApiKeys",()=>l,"useCheckHealth",()=>o,"useConnectDiscoveredNode",()=>j,"useConnectionRequests",()=>p,"useCreateApiKey",()=>m,"useNodeIdentity",()=>f,"useNodes",()=>h,"useRemoveNode",()=>k,"useRespondToRequest",()=>r,"useRevokeApiKey",()=>n,"useSendConnectionRequest",()=>q,"useUpdateNodeName",()=>g])},681010,a=>{"use strict";let b=(0,a.i(883706).default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);a.s(["Home",()=>b],681010)},141379,a=>{"use strict";let b=(0,a.i(883706).default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);a.s(["EyeOff",()=>b],141379)},177156,a=>{"use strict";let b=(0,a.i(883706).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Eye",()=>b],177156)},405784,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",()=>b],405784)},50522,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],50522)},692759,a=>{"use strict";let b=(0,a.i(883706).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);a.s(["Send",()=>b],692759)},699464,a=>{"use strict";let b=(0,a.i(883706).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",()=>b],699464)},533441,a=>{"use strict";let b=(0,a.i(883706).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",()=>b],533441)},705151,a=>{"use strict";let b=(0,a.i(883706).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",()=>b],705151)},80386,a=>{"use strict";let b=(0,a.i(883706).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],80386)},104720,a=>{"use strict";let b=(0,a.i(883706).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["FileText",()=>b],104720)},533350,a=>{"use strict";let b=(0,a.i(883706).default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);a.s(["Tag",()=>b],533350)},767552,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);a.s(["ChevronUp",()=>b],767552)},463002,a=>{"use strict";var b=a.i(187924),c=a.i(368114);let d=["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"];function e({value:a,onChange:e,className:f}){return(0,b.jsx)("div",{className:(0,c.cn)("grid grid-cols-8 gap-1.5",f),children:d.map(d=>(0,b.jsx)("button",{onClick:()=>e(d),className:(0,c.cn)("w-6 h-6 rounded-full border-2 transition-transform hover:scale-110",a===d?"border-foreground scale-110":"border-transparent"),style:{backgroundColor:d},title:d},d))})}a.s(["ColorPicker",()=>e])},773320,a=>{"use strict";let b=(0,a.i(883706).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);a.s(["Upload",()=>b],773320)},379082,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(596221),e=a.i(321161),f=a.i(50944),g=a.i(119032),h=a.i(897498);let i="spaces-terminal-token";function j({children:a}){let j=(0,f.useRouter)(),{isDesktop:k,basePath:l}=(0,h.useTier)(),[m,n]=(0,c.useState)("loading"),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)(!1),w=(0,c.useRef)(null),x=`${l}/spaces_icon.png`;(0,c.useEffect)(()=>{if(k){p("desktop-local"),n("authorized");return}function a(){let a=sessionStorage.getItem(i);if(a){p(a),n("authorized");return}fetch((0,g.api)("/api/auth/totp/status")).then(a=>a.json()).then(a=>{a.enabled?(n("prompt"),setTimeout(()=>w.current?.focus(),100)):n("not-setup")}).catch(()=>n("not-setup"))}fetch((0,g.api)("/api/auth/me")).then(b=>{if(b.ok){p("session-auth"),n("authorized");return}return a()}).catch(()=>a())},[k]);let y=(0,c.useCallback)(async a=>{if(6!==a.length)return;v(!0),t("");let b=await fetch((0,g.api)("/api/auth/totp/verify"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,action:"verify"})}),c=await b.json();v(!1),c.success&&c.terminalToken?(sessionStorage.setItem(i,c.terminalToken),p(c.terminalToken),n("authorized")):(t(c.error||"Invalid code"),r(""),w.current?.focus())},[]);return"loading"===m?(0,b.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,b.jsx)(d.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):"authorized"===m?(0,b.jsx)(b.Fragment,{children:a(o)}):"not-setup"===m?(0,b.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,b.jsxs)("div",{className:"text-center space-y-4 max-w-sm",children:[(0,b.jsx)("img",{src:x,alt:"Spaces",className:"w-12 h-12 mx-auto opacity-40"}),(0,b.jsx)("h2",{className:"text-lg font-semibold text-white",children:"2FA Required"}),(0,b.jsx)("p",{className:"text-sm text-zinc-400",children:"Two-factor authentication must be set up before you can use terminals."}),(0,b.jsxs)("button",{onClick:()=>j.push("/settings"),className:"inline-flex items-center gap-2 px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500",children:[(0,b.jsx)(e.Settings,{className:"w-4 h-4"}),"Go to Settings"]})]})}):(0,b.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,b.jsxs)("div",{className:"text-center space-y-4 max-w-sm",children:[(0,b.jsx)("img",{src:x,alt:"Spaces",className:"w-12 h-12 mx-auto"}),(0,b.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Terminal Verification"}),(0,b.jsx)("p",{className:"text-sm text-zinc-400",children:"Enter the 6-digit code from your authenticator app."}),(0,b.jsxs)("div",{children:[(0,b.jsx)("input",{ref:w,type:"text",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"000000",value:q,onChange:a=>{let b;r(b=a.target.value.replace(/\D/g,"").slice(0,6)),t(""),6===b.length&&y(b)},disabled:u,className:"w-48 px-3 py-3 text-2xl font-mono tracking-[0.4em] text-center bg-zinc-800 border border-zinc-700 rounded-lg focus:outline-none focus:border-indigo-500 text-white disabled:opacity-50",autoFocus:!0}),u&&(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2 mt-3 text-xs text-zinc-400",children:[(0,b.jsx)(d.Loader2,{className:"w-3 h-3 animate-spin"}),"Verifying..."]}),s&&(0,b.jsx)("p",{className:"text-sm text-red-400 mt-3",children:s})]}),(0,b.jsx)("p",{className:"text-[11px] text-zinc-600",children:"Token is valid for 8 hours after verification."})]})})}a.s(["TotpGate",()=>j])},104975,630032,a=>{"use strict";var b=a.i(883706);let c=(0,b.default)("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]);a.s(["Mic",()=>c],104975);let d=(0,b.default)("mic-off",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]]);a.s(["MicOff",()=>d],630032)},805699,a=>{"use strict";let b={claude:{id:"claude",name:"Claude Code",command:"claude",resumeFlag:"--resume",supportsResume:!0,color:"#d97706",description:"Anthropic Claude Code CLI"},codex:{id:"codex",name:"Codex CLI",command:"codex",resumeFlag:"resume",supportsResume:!0,color:"#10b981",description:"OpenAI Codex CLI"},gemini:{id:"gemini",name:"Gemini CLI",command:"gemini",resumeFlag:"--resume",supportsResume:!0,color:"#3b82f6",description:"Google Gemini CLI"},aider:{id:"aider",name:"Aider",command:"aider",resumeFlag:"",supportsResume:!1,color:"#8b5cf6",description:"AI pair programming in your terminal"},forge:{id:"forge",name:"Forge",command:"forge",resumeFlag:"--cid",supportsResume:!0,color:"#f43f5e",description:"ForgeCode.dev agentic CLI"},copilot:{id:"copilot",name:"Copilot CLI",command:"copilot",resumeFlag:"--resume",supportsResume:!0,color:"#6366f1",description:"GitHub Copilot CLI - agentic coding in your terminal"},pi:{id:"pi",name:"Pi",command:"pi",resumeFlag:"--continue",supportsResume:!0,color:"#f97316",description:"Pi Coding Agent - extensible AI development CLI"},shell:{id:"shell",name:"Shell",command:"",resumeFlag:"",supportsResume:!1,color:"#71717a",description:"Plain terminal shell"},custom:{id:"custom",name:"Custom",command:"",resumeFlag:"",supportsResume:!1,color:"#ec4899",description:"Custom command"}},c=Object.values(b);a.s(["AGENT_LIST",0,c,"AGENT_TYPES",0,b])},292e3,a=>{"use strict";let b=(0,a.i(883706).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",()=>b],292e3)},311809,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_xterm_lib_xterm_2d364f66.js"].map(b=>a.l(b))).then(()=>b(418407)))},271789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@xterm_addon-fit_lib_addon-fit_mjs_9b7cb17b._.js"].map(b=>a.l(b))).then(()=>b(699813)))},114391,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@xterm_addon-web-links_lib_addon-web-links_mjs_54276680._.js"].map(b=>a.l(b))).then(()=>b(13521)))}];
1
+ module.exports=[935112,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].ReactDOM},596221,a=>{"use strict";let b=(0,a.i(883706).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",()=>b],596221)},859603,a=>{"use strict";var b=a.i(433217),c=a.i(370025),d=a.i(937927),e=a.i(119032);function f(a={}){return(0,b.useQuery)({queryKey:["sessions",a],queryFn:async()=>{let b=new URLSearchParams;return a.projectId&&b.set("projectId",a.projectId),void 0!==a.starred&&b.set("starred",String(a.starred)),a.search&&b.set("search",a.search),a.agentType&&b.set("agentType",a.agentType),a.sortBy&&b.set("sortBy",a.sortBy),a.sortDir&&b.set("sortDir",a.sortDir),void 0!==a.offset&&b.set("offset",String(a.offset)),void 0!==a.limit&&b.set("limit",String(a.limit)),"all"===a.nodeFilter&&b.set("nodes","all"),(await fetch((0,e.api)(`/api/sessions?${b}`))).json()}})}function g(a){return(0,b.useQuery)({queryKey:["session",a],queryFn:async()=>{let b=await fetch((0,e.api)(`/api/sessions/${a}`));if(!b.ok)throw Error("Session not found");return b.json()},enabled:!!a})}function h(a,c=0,d=50,f){return(0,b.useQuery)({queryKey:["messages",a,c,d,f],queryFn:async()=>{let b=f?(0,e.api)(`/api/network/proxy/${f}/sessions/${a}/messages?offset=${c}&limit=${d}`):(0,e.api)(`/api/sessions/${a}/messages?offset=${c}&limit=${d}`);return(await fetch(b)).json()},enabled:!!a})}function i(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"star"})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function j(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({sessionId:a,notes:b})=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"notes",notes:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["session"]})}})}function k(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({sessionId:a,tagName:b})=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"tag",tagName:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]}),a.invalidateQueries({queryKey:["tags"]})}})}function l(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({sessionId:a,tagName:b})=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"removeTag",tagName:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]}),a.invalidateQueries({queryKey:["tags"]})}})}function m(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({sessionId:a,name:b})=>(await fetch((0,e.api)(`/api/sessions/${a}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"rename",name:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function n(){return(0,b.useQuery)({queryKey:["tags"],queryFn:async()=>(await fetch((0,e.api)("/api/tags"))).json()})}function o(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)("/api/tags"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",tagId:a})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["tags"]}),a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function p(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({tagId:a,color:b})=>(await fetch((0,e.api)("/api/tags"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"updateColor",tagId:a,color:b})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["tags"]}),a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function q(){return(0,b.useQuery)({queryKey:["workspaces"],queryFn:async()=>(await fetch((0,e.api)("/api/workspaces"))).json()})}function r(){return(0,b.useQuery)({queryKey:["workspaces","remote"],queryFn:async()=>(await fetch((0,e.api)("/api/workspaces?nodes=all"))).json()})}function s(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({workspaceId:a,sessionId:b,nodeId:c,title:d,cwd:f,agentType:g})=>{let h=await fetch((0,e.api)(`/api/workspaces/${a}/sessions`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:b,nodeId:c,title:d,cwd:f,agentType:g})});if(!h.ok)throw Error("Failed to add session to workspace");return h.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["workspaces"]}),a.invalidateQueries({queryKey:["workspace-sessions"]}),a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function t(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async({workspaceId:a,sessionId:b})=>{let c=await fetch((0,e.api)(`/api/workspaces/${a}/sessions`),{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:b})});if(!c.ok)throw Error("Failed to remove session from workspace");return c.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["workspaces"]}),a.invalidateQueries({queryKey:["workspace-sessions"]}),a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["session"]})}})}function u(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)("/api/bulk"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["sessions"]}),a.invalidateQueries({queryKey:["workspaces"]}),a.invalidateQueries({queryKey:["tags"]})}})}function v(){return(0,b.useQuery)({queryKey:["projects"],queryFn:async()=>(await fetch((0,e.api)("/api/projects"))).json()})}function w(){return(0,b.useQuery)({queryKey:["analytics"],queryFn:async()=>(await fetch((0,e.api)("/api/analytics/overview"))).json()})}function x(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async()=>(await fetch((0,e.api)("/api/sync"),{method:"POST"})).json(),onSuccess:()=>{a.invalidateQueries()}})}a.s(["useAddSessionToWorkspace",()=>s,"useAddTag",()=>k,"useAnalytics",()=>w,"useBulkAction",()=>u,"useDeleteTag",()=>o,"useMessages",()=>h,"useProjects",()=>v,"useRemoteWorkspaces",()=>r,"useRemoveSessionFromWorkspace",()=>t,"useRemoveTag",()=>l,"useRenameSession",()=>m,"useSession",()=>g,"useSessions",()=>f,"useSync",()=>x,"useTags",()=>n,"useToggleStar",()=>i,"useUpdateNotes",()=>j,"useUpdateTagColor",()=>p,"useWorkspaces",()=>q])},400210,a=>{"use strict";let b=(0,a.i(883706).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",()=>b],400210)},641710,a=>{"use strict";let b=(0,a.i(883706).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",()=>b],641710)},915618,a=>{"use strict";let b=(0,a.i(883706).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],915618)},781560,a=>{"use strict";let b=(0,a.i(883706).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",()=>b],781560)},1279,a=>{"use strict";var b=a.i(433217),c=a.i(370025),d=a.i(937927),e=a.i(119032);function f(){return(0,b.useQuery)({queryKey:["node-identity"],queryFn:async()=>(await fetch((0,e.api)("/api/network/identity"))).json()})}function g(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)("/api/network/identity"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a})})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["node-identity"]})}})}function h(a=!0){return(0,b.useQuery)({queryKey:["network-nodes"],queryFn:async()=>{let a=await fetch((0,e.api)("/api/network/nodes"));if(!a.ok)return[];let b=await a.json();return Array.isArray(b)?b:[]},enabled:a})}function i(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>{let b=await fetch((0,e.api)("/api/network/nodes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json()).error||"Failed to add node");return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["network-nodes"]})}})}function j(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>{let b=await fetch((0,e.api)("/api/network/nodes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a.url,apiKey:a.apiKey,name:a.name})});if(!b.ok)throw Error((await b.json()).error||"Failed to connect");return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["network-nodes"]})}})}function k(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)(`/api/network/nodes/${a}`),{method:"DELETE"})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["network-nodes"]})}})}function l(){return(0,b.useQuery)({queryKey:["network-api-keys"],queryFn:async()=>(await fetch((0,e.api)("/api/network/keys"))).json()})}function m(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)("/api/network/keys"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["network-api-keys"]})}})}function n(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>(await fetch((0,e.api)(`/api/network/keys/${a}`),{method:"DELETE"})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["network-api-keys"]})}})}function o(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async()=>(await fetch((0,e.api)("/api/network/nodes/check"),{method:"POST"})).json(),onSuccess:()=>{a.invalidateQueries({queryKey:["network-nodes"]})}})}function p(){return(0,b.useQuery)({queryKey:["connection-requests"],queryFn:async()=>{let a=await fetch((0,e.api)("/api/network/connect-request"));return a.ok?a.json():{incoming:[],outgoing:[]}},refetchInterval:5e3})}function q(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>{let b=await fetch((0,e.api)("/api/network/connect-request"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({_sendRequest:!0,targetNodeId:a.nodeId,targetNodeName:a.nodeName,targetNodeUrl:a.nodeUrl})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Request failed"}))).error||`Request failed (${b.status})`);return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["connection-requests"]})}})}function r(){let a=(0,d.useQueryClient)();return(0,c.useMutation)({mutationFn:async a=>{let b=await fetch((0,e.api)(`/api/network/connect-request/${a.id}`),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a.action})});if(!b.ok)throw Error((await b.json().catch(()=>({error:"Failed"}))).error||"Failed to respond");return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["connection-requests"]}),a.invalidateQueries({queryKey:["network-nodes"]})}})}a.s(["useAddNode",()=>i,"useApiKeys",()=>l,"useCheckHealth",()=>o,"useConnectDiscoveredNode",()=>j,"useConnectionRequests",()=>p,"useCreateApiKey",()=>m,"useNodeIdentity",()=>f,"useNodes",()=>h,"useRemoveNode",()=>k,"useRespondToRequest",()=>r,"useRevokeApiKey",()=>n,"useSendConnectionRequest",()=>q,"useUpdateNodeName",()=>g])},681010,a=>{"use strict";let b=(0,a.i(883706).default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);a.s(["Home",()=>b],681010)},141379,a=>{"use strict";let b=(0,a.i(883706).default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);a.s(["EyeOff",()=>b],141379)},501027,a=>{"use strict";let b=(0,a.i(883706).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);a.s(["Zap",()=>b],501027)},431067,a=>{"use strict";let b=(0,a.i(883706).default)("log-in",[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]);a.s(["LogIn",()=>b],431067)},177156,a=>{"use strict";let b=(0,a.i(883706).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Eye",()=>b],177156)},405784,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",()=>b],405784)},50522,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],50522)},692759,a=>{"use strict";let b=(0,a.i(883706).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);a.s(["Send",()=>b],692759)},699464,a=>{"use strict";let b=(0,a.i(883706).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",()=>b],699464)},533441,a=>{"use strict";let b=(0,a.i(883706).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",()=>b],533441)},705151,a=>{"use strict";let b=(0,a.i(883706).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",()=>b],705151)},80386,a=>{"use strict";let b=(0,a.i(883706).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],80386)},104720,a=>{"use strict";let b=(0,a.i(883706).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["FileText",()=>b],104720)},533350,a=>{"use strict";let b=(0,a.i(883706).default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);a.s(["Tag",()=>b],533350)},767552,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);a.s(["ChevronUp",()=>b],767552)},463002,a=>{"use strict";var b=a.i(187924),c=a.i(368114);let d=["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"];function e({value:a,onChange:e,className:f}){return(0,b.jsx)("div",{className:(0,c.cn)("grid grid-cols-8 gap-1.5",f),children:d.map(d=>(0,b.jsx)("button",{onClick:()=>e(d),className:(0,c.cn)("w-6 h-6 rounded-full border-2 transition-transform hover:scale-110",a===d?"border-foreground scale-110":"border-transparent"),style:{backgroundColor:d},title:d},d))})}a.s(["ColorPicker",()=>e])},773320,a=>{"use strict";let b=(0,a.i(883706).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);a.s(["Upload",()=>b],773320)},379082,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(596221),e=a.i(321161),f=a.i(50944),g=a.i(119032),h=a.i(897498);let i="spaces-terminal-token";function j({children:a}){let j=(0,f.useRouter)(),{isDesktop:k,basePath:l}=(0,h.useTier)(),[m,n]=(0,c.useState)("loading"),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)(!1),w=(0,c.useRef)(null),x=`${l}/spaces_icon.png`;(0,c.useEffect)(()=>{if(k){p("desktop-local"),n("authorized");return}function a(){let a=sessionStorage.getItem(i);if(a){p(a),n("authorized");return}fetch((0,g.api)("/api/auth/totp/status")).then(a=>a.json()).then(a=>{a.enabled?(n("prompt"),setTimeout(()=>w.current?.focus(),100)):n("not-setup")}).catch(()=>n("not-setup"))}fetch((0,g.api)("/api/auth/me")).then(b=>{if(b.ok){p("session-auth"),n("authorized");return}return a()}).catch(()=>a())},[k]);let y=(0,c.useCallback)(async a=>{if(6!==a.length)return;v(!0),t("");let b=await fetch((0,g.api)("/api/auth/totp/verify"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,action:"verify"})}),c=await b.json();v(!1),c.success&&c.terminalToken?(sessionStorage.setItem(i,c.terminalToken),p(c.terminalToken),n("authorized")):(t(c.error||"Invalid code"),r(""),w.current?.focus())},[]);return"loading"===m?(0,b.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,b.jsx)(d.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):"authorized"===m?(0,b.jsx)(b.Fragment,{children:a(o)}):"not-setup"===m?(0,b.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,b.jsxs)("div",{className:"text-center space-y-4 max-w-sm",children:[(0,b.jsx)("img",{src:x,alt:"Spaces",className:"w-12 h-12 mx-auto opacity-40"}),(0,b.jsx)("h2",{className:"text-lg font-semibold text-white",children:"2FA Required"}),(0,b.jsx)("p",{className:"text-sm text-zinc-400",children:"Two-factor authentication must be set up before you can use terminals."}),(0,b.jsxs)("button",{onClick:()=>j.push("/settings"),className:"inline-flex items-center gap-2 px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500",children:[(0,b.jsx)(e.Settings,{className:"w-4 h-4"}),"Go to Settings"]})]})}):(0,b.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,b.jsxs)("div",{className:"text-center space-y-4 max-w-sm",children:[(0,b.jsx)("img",{src:x,alt:"Spaces",className:"w-12 h-12 mx-auto"}),(0,b.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Terminal Verification"}),(0,b.jsx)("p",{className:"text-sm text-zinc-400",children:"Enter the 6-digit code from your authenticator app."}),(0,b.jsxs)("div",{children:[(0,b.jsx)("input",{ref:w,type:"text",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"000000",value:q,onChange:a=>{let b;r(b=a.target.value.replace(/\D/g,"").slice(0,6)),t(""),6===b.length&&y(b)},disabled:u,className:"w-48 px-3 py-3 text-2xl font-mono tracking-[0.4em] text-center bg-zinc-800 border border-zinc-700 rounded-lg focus:outline-none focus:border-indigo-500 text-white disabled:opacity-50",autoFocus:!0}),u&&(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2 mt-3 text-xs text-zinc-400",children:[(0,b.jsx)(d.Loader2,{className:"w-3 h-3 animate-spin"}),"Verifying..."]}),s&&(0,b.jsx)("p",{className:"text-sm text-red-400 mt-3",children:s})]}),(0,b.jsx)("p",{className:"text-[11px] text-zinc-600",children:"Token is valid for 8 hours after verification."})]})})}a.s(["TotpGate",()=>j])},104975,630032,a=>{"use strict";var b=a.i(883706);let c=(0,b.default)("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]);a.s(["Mic",()=>c],104975);let d=(0,b.default)("mic-off",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]]);a.s(["MicOff",()=>d],630032)},805699,a=>{"use strict";let b={claude:{id:"claude",name:"Claude Code",command:"claude",resumeFlag:"--resume",supportsResume:!0,color:"#d97706",description:"Anthropic Claude Code CLI"},codex:{id:"codex",name:"Codex CLI",command:"codex",resumeFlag:"resume",supportsResume:!0,color:"#10b981",description:"OpenAI Codex CLI"},gemini:{id:"gemini",name:"Gemini CLI",command:"gemini",resumeFlag:"--resume",supportsResume:!0,color:"#3b82f6",description:"Google Gemini CLI"},aider:{id:"aider",name:"Aider",command:"aider",resumeFlag:"",supportsResume:!1,color:"#8b5cf6",description:"AI pair programming in your terminal"},forge:{id:"forge",name:"Forge",command:"forge",resumeFlag:"--cid",supportsResume:!0,color:"#f43f5e",description:"ForgeCode.dev agentic CLI"},copilot:{id:"copilot",name:"Copilot CLI",command:"copilot",resumeFlag:"--resume",supportsResume:!0,color:"#6366f1",description:"GitHub Copilot CLI - agentic coding in your terminal"},pi:{id:"pi",name:"Pi",command:"pi",resumeFlag:"--continue",supportsResume:!0,color:"#f97316",description:"Pi Coding Agent - extensible AI development CLI"},shell:{id:"shell",name:"Shell",command:"",resumeFlag:"",supportsResume:!1,color:"#71717a",description:"Plain terminal shell"},custom:{id:"custom",name:"Custom",command:"",resumeFlag:"",supportsResume:!1,color:"#ec4899",description:"Custom command"}},c=Object.values(b);a.s(["AGENT_LIST",0,c,"AGENT_TYPES",0,b])},292e3,a=>{"use strict";let b=(0,a.i(883706).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",()=>b],292e3)},311809,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_xterm_lib_xterm_2d364f66.js"].map(b=>a.l(b))).then(()=>b(418407)))},271789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@xterm_addon-fit_lib_addon-fit_mjs_9b7cb17b._.js"].map(b=>a.l(b))).then(()=>b(699813)))},114391,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_@xterm_addon-web-links_lib_addon-web-links_mjs_54276680._.js"].map(b=>a.l(b))).then(()=>b(13521)))}];
2
2
 
3
- //# sourceMappingURL=_17b946fd._.js.map
3
+ //# sourceMappingURL=_20c2cf3a._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[935112,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].ReactDOM},596221,a=>{"use strict";let b=(0,a.i(883706).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",()=>b],596221)},641710,a=>{"use strict";let b=(0,a.i(883706).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",()=>b],641710)},431067,a=>{"use strict";let b=(0,a.i(883706).default)("log-in",[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]);a.s(["LogIn",()=>b],431067)},501027,a=>{"use strict";let b=(0,a.i(883706).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);a.s(["Zap",()=>b],501027)},951906,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(290669),e=a.i(596221),f=a.i(431067),g=a.i(641710),h=a.i(660246),i=a.i(501027),j=a.i(618155),k=a.i(923665),l=a.i(39622),m=a.i(985811),n=a.i(758042),o=a.i(994222),p=a.i(659854),q=a.i(48662),r=a.i(119032);function s(){let[a,s]=(0,c.useState)(null),[w,x]=(0,c.useState)(!0),[y,z]=(0,c.useState)(""),[A,B]=(0,c.useState)(30);if((0,c.useEffect)(()=>{x(!0),fetch((0,r.api)(`/api/admin/analytics?days=${A}`)).then(a=>{if(!a.ok)throw Error(403===a.status?"Forbidden":"Failed to load analytics");return a.json()}).then(a=>{s(a),z("")}).catch(a=>z(a.message)).finally(()=>x(!1))},[A]),w)return(0,b.jsxs)("div",{className:"p-6 flex items-center gap-2 text-zinc-400",children:[(0,b.jsx)(e.Loader2,{className:"w-4 h-4 animate-spin"}),"Loading activity data..."]});if(y)return(0,b.jsx)("div",{className:"p-6",children:(0,b.jsx)("p",{className:"text-red-400 text-sm",children:y})});if(!a)return null;let C=new Set(a.userSummary.map(a=>a.username)).size,D=a.dailyLogins.map(a=>({date:new Date(a.date+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric"}),logins:a.count})),E=a.dailySessionTime.map(a=>({date:new Date(a.date+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric"}),hours:Math.round(a.minutes/6)/10}));return(0,b.jsxs)("div",{className:"p-6 space-y-6 max-w-7xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[(0,b.jsx)(d.Activity,{className:"w-6 h-6"}),"Team Activity"]}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mt-1",children:"Login and terminal session analytics across all users"})]}),(0,b.jsx)("div",{className:"flex items-center gap-1 bg-zinc-100 dark:bg-zinc-800 rounded-lg p-1",children:[7,30,90].map(a=>(0,b.jsxs)("button",{onClick:()=>B(a),className:`px-3 py-1.5 text-xs rounded-md transition-colors ${A===a?"bg-white dark:bg-zinc-700 text-zinc-900 dark:text-zinc-100 shadow-sm font-medium":"text-zinc-500 hover:text-zinc-700 dark:hover:text-zinc-300"}`,children:[a,"d"]},a))})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4",children:[(0,b.jsx)(t,{icon:(0,b.jsx)(i.Zap,{className:"w-4 h-4 text-green-500"}),label:"Active Now",value:a.activeSessions}),(0,b.jsx)(t,{icon:(0,b.jsx)(f.LogIn,{className:"w-4 h-4 text-indigo-500"}),label:"Total Logins",value:a.totalLogins}),(0,b.jsx)(t,{icon:(0,b.jsx)(g.Clock,{className:"w-4 h-4 text-violet-500"}),label:"Total Vibe Time",value:u(a.totalSessionMinutes)}),(0,b.jsx)(t,{icon:(0,b.jsx)(h.Users,{className:"w-4 h-4 text-amber-500"}),label:"Unique Users",value:C})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-4",children:[(0,b.jsx)("h3",{className:"font-semibold mb-4",children:"Daily Logins"}),0===D.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground h-[200px] flex items-center justify-center",children:"No login data yet"}):(0,b.jsx)(q.ResponsiveContainer,{width:"100%",height:200,children:(0,b.jsxs)(j.BarChart,{data:D,children:[(0,b.jsx)(n.XAxis,{dataKey:"date",tick:{fontSize:11}}),(0,b.jsx)(o.YAxis,{tick:{fontSize:11},allowDecimals:!1}),(0,b.jsx)(p.Tooltip,{contentStyle:{background:"var(--background)",border:"1px solid var(--border)",borderRadius:"0.5rem",fontSize:"12px"}}),(0,b.jsx)(k.Bar,{dataKey:"logins",fill:"#6366f1",radius:[2,2,0,0]})]})})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-4",children:[(0,b.jsx)("h3",{className:"font-semibold mb-4",children:"Daily Vibe Time"}),0===E.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground h-[200px] flex items-center justify-center",children:"No session data yet"}):(0,b.jsx)(q.ResponsiveContainer,{width:"100%",height:200,children:(0,b.jsxs)(l.AreaChart,{data:E,children:[(0,b.jsx)(n.XAxis,{dataKey:"date",tick:{fontSize:11}}),(0,b.jsx)(o.YAxis,{tick:{fontSize:11},tickFormatter:a=>`${a}h`}),(0,b.jsx)(p.Tooltip,{formatter:a=>[`${a}h`,"Time"],contentStyle:{background:"var(--background)",border:"1px solid var(--border)",borderRadius:"0.5rem",fontSize:"12px"}}),(0,b.jsx)(m.Area,{type:"monotone",dataKey:"hours",fill:"#8b5cf6",fillOpacity:.2,stroke:"#8b5cf6"})]})})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-4 border-b border-zinc-200 dark:border-zinc-800",children:(0,b.jsx)("h3",{className:"font-semibold",children:"User Leaderboard"})}),(0,b.jsxs)("table",{className:"w-full text-sm",children:[(0,b.jsx)("thead",{className:"bg-zinc-50 dark:bg-zinc-800/50",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:"text-left px-4 py-3 font-medium text-zinc-500",children:"Username"}),(0,b.jsx)("th",{className:"text-right px-4 py-3 font-medium text-zinc-500",children:"Sessions"}),(0,b.jsx)("th",{className:"text-right px-4 py-3 font-medium text-zinc-500",children:"Total Time"}),(0,b.jsx)("th",{className:"text-right px-4 py-3 font-medium text-zinc-500",children:"Last Login"})]})}),(0,b.jsxs)("tbody",{className:"divide-y divide-zinc-100 dark:divide-zinc-800",children:[a.userSummary.map(a=>(0,b.jsxs)("tr",{className:"hover:bg-zinc-50 dark:hover:bg-zinc-800/30",children:[(0,b.jsx)("td",{className:"px-4 py-3 font-mono",children:a.username}),(0,b.jsx)("td",{className:"px-4 py-3 text-right text-zinc-400",children:a.session_count}),(0,b.jsx)("td",{className:"px-4 py-3 text-right text-zinc-400",children:u(Math.round(a.total_minutes))}),(0,b.jsx)("td",{className:"px-4 py-3 text-right text-zinc-400 text-xs",children:a.last_login?v(a.last_login):"-"})]},a.username)),0===a.userSummary.length&&(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:4,className:"px-4 py-8 text-center text-zinc-500",children:"No session data yet"})})]})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-4 border-b border-zinc-200 dark:border-zinc-800",children:(0,b.jsx)("h3",{className:"font-semibold",children:"Recent Logins"})}),(0,b.jsxs)("table",{className:"w-full text-sm",children:[(0,b.jsx)("thead",{className:"bg-zinc-50 dark:bg-zinc-800/50",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:"text-left px-4 py-3 font-medium text-zinc-500",children:"Username"}),(0,b.jsx)("th",{className:"text-left px-4 py-3 font-medium text-zinc-500",children:"Time"}),(0,b.jsx)("th",{className:"text-left px-4 py-3 font-medium text-zinc-500",children:"IP Address"})]})}),(0,b.jsxs)("tbody",{className:"divide-y divide-zinc-100 dark:divide-zinc-800",children:[a.recentLogins.slice(0,25).map((a,c)=>(0,b.jsxs)("tr",{className:"hover:bg-zinc-50 dark:hover:bg-zinc-800/30",children:[(0,b.jsx)("td",{className:"px-4 py-3 font-mono",children:a.username}),(0,b.jsx)("td",{className:"px-4 py-3 text-zinc-400 text-xs",children:v(a.timestamp)}),(0,b.jsx)("td",{className:"px-4 py-3 text-zinc-400 font-mono text-xs",children:a.ip_address||"-"})]},c)),0===a.recentLogins.length&&(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:3,className:"px-4 py-8 text-center text-zinc-500",children:"No login events yet"})})]})]})]})]})}function t({icon:a,label:c,value:d}){return(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs text-zinc-500 mb-2",children:[a,c]}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:d})]})}function u(a){if(a<60)return`${a}m`;let b=Math.floor(a/60),c=a%60;return c>0?`${b}h ${c}m`:`${b}h`}function v(a){try{return new Date(a.includes("T")?a:a+"Z").toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return a}}a.s(["default",()=>s])}];
2
+
3
+ //# sourceMappingURL=_5f55bf8f._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[773663,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(859603),e=a.i(321161),f=a.i(669520),g=a.i(296101),h=a.i(596221),i=a.i(603314),j=a.i(167453),k=a.i(839761),l=a.i(915618),m=a.i(633508),n=a.i(663572),o=a.i(119032),p=a.i(58037),q=a.i(897498),r=a.i(565870);function s(){let{hasAuth:a,tier:s,version:t,hasCortex:u,cortexTierEnabled:v}=(0,q.useTier)(),w="u">typeof document&&document.cookie.includes("spaces-session="),x=(0,d.useSync)(),[y,z]=(0,c.useState)(""),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!0),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)(""),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(!1),Q=(0,c.useRef)(null),[R,S]=(0,c.useState)(null),[T,U]=(0,c.useState)([]),[V,W]=(0,c.useState)(""),[X,Y]=(0,c.useState)(!1),[Z,$]=(0,c.useState)(!0);(0,c.useEffect)(()=>{a?w?fetch((0,o.api)("/api/auth/me")).then(a=>a.json()).then(a=>{S(a),D(!1)}).catch(()=>D(!1)):fetch((0,o.api)("/api/auth/totp/status")).then(a=>a.json()).then(a=>{B(a.enabled),D(!1)}).catch(()=>D(!1)):D(!1)},[a,w]),(0,c.useEffect)(()=>{fetch((0,o.api)("/api/config")).then(a=>a.json()).then(a=>{Y(a.telemetryOptOut),U(a.devDirectories||[]),$(!1)}).catch(()=>$(!1))},[]);let _=async a=>{U(a),await fetch((0,o.api)("/api/config"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({devDirectories:a})})},aa=()=>{let a=V.trim();!a||T.includes(a)||(a.startsWith("/")||/^[A-Za-z]:[\\/]/.test(a))&&(_([...T,a]),W(""))},ab=async()=>{let a=await x.mutateAsync();z(`Synced ${a.projects} projects, ${a.sessions} sessions, enriched ${a.enriched}`),(0,p.track)("sync_completed",{projects:a.projects,sessions:a.sessions,enriched:a.enriched})},ac=async()=>{let a=!X;Y(a),(0,p.setOptOut)(a),(0,p.track)("telemetry_toggled",{enabled:!a}),await fetch((0,o.api)("/api/config"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({telemetryOptOut:a})})},ad=async()=>{F(!0),N(""),L("");let a=await fetch((0,o.api)("/api/auth/totp/setup"),{method:"POST"}),b=await a.json();H(b.qrDataUrl),J(b.secret),setTimeout(()=>Q.current?.focus(),100)},ae=async a=>{if(6!==a.length)return;P(!0),N("");let b=await fetch((0,o.api)("/api/auth/totp/verify"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,action:"enable"})}),c=await b.json();P(!1),c.success?(B(!0),F(!1),H(""),J(""),L("")):(N(c.error||"Invalid code"),L(""),Q.current?.focus())},af=async()=>{confirm("Disable 2FA? You will need to set it up again to use terminals.")&&(await fetch((0,o.api)("/api/auth/totp/setup"),{method:"POST"}),B(!1),F(!1))};return(0,b.jsxs)("div",{className:"p-6 max-w-3xl",children:[(0,b.jsxs)("div",{className:"mb-6",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold",children:"Settings"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mt-1",children:"Configure Spaces"})]}),(0,b.jsxs)("div",{className:"space-y-6",children:[a&&(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(i.Shield,{className:"w-4 h-4"}),"Terminal Security"]}),C?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-zinc-400",children:[(0,b.jsx)(h.Loader2,{className:"w-4 h-4 animate-spin"}),"Loading..."]}):w?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(j.CheckCircle2,{className:"w-5 h-5 text-green-500"}),(0,b.jsx)("span",{className:"text-sm font-medium text-green-500",children:"2FA Enabled"})]}),(0,b.jsx)("p",{className:"text-xs text-zinc-500",children:"Two-factor authentication is required at login. TOTP is managed through the login flow. Contact an admin to reset your 2FA if needed."})]}):A&&!E?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(j.CheckCircle2,{className:"w-5 h-5 text-green-500"}),(0,b.jsx)("span",{className:"text-sm font-medium text-green-500",children:"2FA Enabled"})]}),(0,b.jsx)("p",{className:"text-xs text-zinc-500",children:"Two-factor authentication is required each time you open a terminal session. Tokens are valid for 8 hours."}),(0,b.jsx)("button",{onClick:af,className:"text-xs text-zinc-500 hover:text-red-400 transition-colors",children:"Disable 2FA"})]}):E?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("p",{className:"text-sm text-zinc-400",children:"Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.)"}),G?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,b.jsx)("div",{className:"bg-white p-3 rounded-lg",children:(0,b.jsx)("img",{src:G,alt:"TOTP QR Code",width:200,height:200})}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-[10px] text-zinc-600 mb-1",children:"Manual entry key:"}),(0,b.jsx)("code",{className:"text-xs bg-zinc-800 px-2 py-1 rounded font-mono select-all",children:I})]})]}):(0,b.jsx)("div",{className:"flex justify-center py-8",children:(0,b.jsx)(h.Loader2,{className:"w-6 h-6 animate-spin text-zinc-400"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs text-zinc-400 block mb-1.5",children:"Enter the 6-digit code from your authenticator"}),(0,b.jsx)("input",{ref:Q,type:"text",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"000000",value:K,onChange:a=>{let b;L(b=a.target.value.replace(/\D/g,"").slice(0,6)),N(""),6===b.length&&ae(b)},disabled:O,className:"w-40 px-3 py-2 text-lg font-mono tracking-[0.3em] text-center bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white disabled:opacity-50"}),O&&(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-2 text-xs text-zinc-400",children:[(0,b.jsx)(h.Loader2,{className:"w-3 h-3 animate-spin"}),"Verifying..."]}),M&&(0,b.jsx)("p",{className:"text-xs text-red-400 mt-2",children:M})]}),(0,b.jsx)("button",{onClick:()=>{F(!1),H(""),J("")},className:"text-xs text-zinc-500 hover:text-white transition-colors",children:"Cancel"})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("p",{className:"text-sm text-zinc-400",children:"Two-factor authentication adds an extra layer of security to terminal access. You'll need an authenticator app to generate codes."}),(0,b.jsxs)("button",{onClick:ad,className:"flex items-center gap-2 px-4 py-2 text-sm bg-indigo-500 text-white rounded-md hover:bg-indigo-600",children:[(0,b.jsx)(i.Shield,{className:"w-4 h-4"}),"Set up 2FA"]})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(g.FolderOpen,{className:"w-4 h-4"}),"Data Source"]}),(0,b.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-muted-foreground text-xs",children:"Agent Data Directories"}),(0,b.jsxs)("div",{className:"font-mono text-xs mt-1 p-2 bg-zinc-50 dark:bg-zinc-800 rounded space-y-1",children:[(0,b.jsx)("p",{children:"~/.claude/"}),(0,b.jsx)("p",{children:"~/.codex/"}),(0,b.jsx)("p",{children:"~/.gemini/"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-muted-foreground text-xs",children:"Spaces Database"}),(0,b.jsx)("p",{className:"font-mono text-xs mt-1 p-2 bg-zinc-50 dark:bg-zinc-800 rounded",children:"~/.spaces/spaces.db"})]})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(n.FolderCode,{className:"w-4 h-4"}),"Development Directories"]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Restrict terminal pane creation to these project roots. Paths must be absolute."}),T.length>0&&(0,b.jsx)("div",{className:"space-y-1.5 mb-3",children:T.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 bg-zinc-50 dark:bg-zinc-800 rounded-md group",children:[(0,b.jsx)(g.FolderOpen,{className:"w-3.5 h-3.5 text-amber-500/70 flex-shrink-0"}),(0,b.jsx)("span",{className:"font-mono text-xs flex-1 truncate",children:a}),(0,b.jsx)("button",{onClick:()=>{_(T.filter(b=>b!==a))},className:"text-zinc-400 hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",title:"Remove",children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]},a))}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"text",placeholder:"u">typeof navigator&&navigator.platform?.startsWith("Win")?"C:\\Users\\you\\projects":"/home/user/projects",value:V,onChange:a=>W(a.target.value),onKeyDown:a=>"Enter"===a.key&&aa(),className:"flex-1 px-3 py-1.5 text-sm bg-zinc-50 dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 font-mono"}),(0,b.jsxs)("button",{onClick:aa,disabled:!V.trim()||!(V.trim().startsWith("/")||/^[A-Za-z]:[\\/]/.test(V.trim())),className:"flex items-center gap-1.5 px-3 py-1.5 text-sm bg-indigo-500 text-white rounded-md hover:bg-indigo-600 disabled:opacity-50",children:[(0,b.jsx)(l.Plus,{className:"w-3.5 h-3.5"}),"Add"]})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(f.RefreshCw,{className:"w-4 h-4"}),"Data Sync"]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Force a full re-scan of all agent sessions. This rebuilds the index from scratch."}),(0,b.jsxs)("button",{onClick:ab,disabled:x.isPending,className:"flex items-center gap-2 px-4 py-2 text-sm bg-indigo-500 text-white rounded-md hover:bg-indigo-600 disabled:opacity-50",children:[x.isPending?(0,b.jsx)(h.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsx)(f.RefreshCw,{className:"w-4 h-4"}),"Re-sync Now"]}),y&&(0,b.jsx)("p",{className:"text-xs text-green-600 mt-2",children:y})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(k.BarChart3,{className:"w-4 h-4"}),"Telemetry"]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Anonymous usage data helps us understand how Spaces is used and improve the product. No file paths, session content, or personal information is ever collected."}),Z?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-zinc-400",children:[(0,b.jsx)(h.Loader2,{className:"w-4 h-4 animate-spin"}),"Loading..."]}):(0,b.jsxs)("label",{className:"flex items-center gap-3 cursor-pointer",children:[(0,b.jsx)("input",{type:"checkbox",checked:!X,onChange:ac,className:"w-4 h-4 rounded border-zinc-300 dark:border-zinc-700 text-indigo-500 focus:ring-indigo-500"}),(0,b.jsx)("span",{className:"text-sm",children:"Send anonymous usage data"})]})]}),v&&(0,b.jsx)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:(0,b.jsx)(r.CortexSettings,{})}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(e.Settings,{className:"w-4 h-4"}),"About"]}),(0,b.jsxs)("div",{className:"text-sm space-y-1",children:[(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Version:"})," ",t||"..."]}),(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Tier:"})," ",(0,b.jsx)("span",{className:"capitalize",children:s})]}),(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Data access:"})," Read-only (never modifies agent data directories)"]}),(0,b.jsx)("p",{className:"text-muted-foreground text-xs mt-2",children:"Spaces is an open-source agent workspace manager. All session data stays local on your machine."})]})]})]})]})}a.s(["default",()=>s])}];
1
+ module.exports=[773663,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(859603),e=a.i(321161),f=a.i(669520),g=a.i(296101),h=a.i(596221),i=a.i(603314),j=a.i(167453),k=a.i(839761),l=a.i(915618),m=a.i(633508),n=a.i(663572);let o=(0,a.i(883706).default)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]);var p=a.i(119032),q=a.i(58037),r=a.i(897498),s=a.i(565870);function t(){let{hasAuth:a,tier:t,version:u,hasCortex:v,cortexTierEnabled:w}=(0,r.useTier)(),x="u">typeof document&&document.cookie.includes("spaces-session="),y=(0,d.useSync)(),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useState)(!1),[D,E]=(0,c.useState)(!0),[F,G]=(0,c.useState)(!1),[H,I]=(0,c.useState)(""),[J,K]=(0,c.useState)(""),[L,M]=(0,c.useState)(""),[N,O]=(0,c.useState)(""),[P,Q]=(0,c.useState)(!1),R=(0,c.useRef)(null),[S,T]=(0,c.useState)(null),[U,V]=(0,c.useState)([]),[W,X]=(0,c.useState)(""),[Y,Z]=(0,c.useState)(!1),[$,_]=(0,c.useState)(!0),[aa,ab]=(0,c.useState)(!1);(0,c.useEffect)(()=>{a?x?fetch((0,p.api)("/api/auth/me")).then(a=>a.json()).then(a=>{T(a),E(!1)}).catch(()=>E(!1)):fetch((0,p.api)("/api/auth/totp/status")).then(a=>a.json()).then(a=>{C(a.enabled),E(!1)}).catch(()=>E(!1)):E(!1)},[a,x]),(0,c.useEffect)(()=>{fetch((0,p.api)("/api/config")).then(a=>a.json()).then(a=>{Z(a.telemetryOptOut),V(a.devDirectories||[]),ab(!!a.todosEnabled),_(!1)}).catch(()=>_(!1))},[]);let ac=async()=>{let a=!aa;ab(a),await fetch((0,p.api)("/api/config"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({todosEnabled:a})})},ad=async a=>{V(a),await fetch((0,p.api)("/api/config"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({devDirectories:a})})},ae=()=>{let a=W.trim();!a||U.includes(a)||(a.startsWith("/")||/^[A-Za-z]:[\\/]/.test(a))&&(ad([...U,a]),X(""))},af=async()=>{let a=await y.mutateAsync();A(`Synced ${a.projects} projects, ${a.sessions} sessions, enriched ${a.enriched}`),(0,q.track)("sync_completed",{projects:a.projects,sessions:a.sessions,enriched:a.enriched})},ag=async()=>{let a=!Y;Z(a),(0,q.setOptOut)(a),(0,q.track)("telemetry_toggled",{enabled:!a}),await fetch((0,p.api)("/api/config"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({telemetryOptOut:a})})},ah=async()=>{G(!0),O(""),M("");let a=await fetch((0,p.api)("/api/auth/totp/setup"),{method:"POST"}),b=await a.json();I(b.qrDataUrl),K(b.secret),setTimeout(()=>R.current?.focus(),100)},ai=async a=>{if(6!==a.length)return;Q(!0),O("");let b=await fetch((0,p.api)("/api/auth/totp/verify"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,action:"enable"})}),c=await b.json();Q(!1),c.success?(C(!0),G(!1),I(""),K(""),M("")):(O(c.error||"Invalid code"),M(""),R.current?.focus())},aj=async()=>{confirm("Disable 2FA? You will need to set it up again to use terminals.")&&(await fetch((0,p.api)("/api/auth/totp/setup"),{method:"POST"}),C(!1),G(!1))};return(0,b.jsxs)("div",{className:"p-6 max-w-3xl",children:[(0,b.jsxs)("div",{className:"mb-6",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold",children:"Settings"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mt-1",children:"Configure Spaces"})]}),(0,b.jsxs)("div",{className:"space-y-6",children:[a&&(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(i.Shield,{className:"w-4 h-4"}),"Terminal Security"]}),D?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-zinc-400",children:[(0,b.jsx)(h.Loader2,{className:"w-4 h-4 animate-spin"}),"Loading..."]}):x?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(j.CheckCircle2,{className:"w-5 h-5 text-green-500"}),(0,b.jsx)("span",{className:"text-sm font-medium text-green-500",children:"2FA Enabled"})]}),(0,b.jsx)("p",{className:"text-xs text-zinc-500",children:"Two-factor authentication is required at login. TOTP is managed through the login flow. Contact an admin to reset your 2FA if needed."})]}):B&&!F?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(j.CheckCircle2,{className:"w-5 h-5 text-green-500"}),(0,b.jsx)("span",{className:"text-sm font-medium text-green-500",children:"2FA Enabled"})]}),(0,b.jsx)("p",{className:"text-xs text-zinc-500",children:"Two-factor authentication is required each time you open a terminal session. Tokens are valid for 8 hours."}),(0,b.jsx)("button",{onClick:aj,className:"text-xs text-zinc-500 hover:text-red-400 transition-colors",children:"Disable 2FA"})]}):F?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("p",{className:"text-sm text-zinc-400",children:"Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.)"}),H?(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,b.jsx)("div",{className:"bg-white p-3 rounded-lg",children:(0,b.jsx)("img",{src:H,alt:"TOTP QR Code",width:200,height:200})}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-[10px] text-zinc-600 mb-1",children:"Manual entry key:"}),(0,b.jsx)("code",{className:"text-xs bg-zinc-800 px-2 py-1 rounded font-mono select-all",children:J})]})]}):(0,b.jsx)("div",{className:"flex justify-center py-8",children:(0,b.jsx)(h.Loader2,{className:"w-6 h-6 animate-spin text-zinc-400"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs text-zinc-400 block mb-1.5",children:"Enter the 6-digit code from your authenticator"}),(0,b.jsx)("input",{ref:R,type:"text",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"000000",value:L,onChange:a=>{let b;M(b=a.target.value.replace(/\D/g,"").slice(0,6)),O(""),6===b.length&&ai(b)},disabled:P,className:"w-40 px-3 py-2 text-lg font-mono tracking-[0.3em] text-center bg-zinc-800 border border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 text-white disabled:opacity-50"}),P&&(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-2 text-xs text-zinc-400",children:[(0,b.jsx)(h.Loader2,{className:"w-3 h-3 animate-spin"}),"Verifying..."]}),N&&(0,b.jsx)("p",{className:"text-xs text-red-400 mt-2",children:N})]}),(0,b.jsx)("button",{onClick:()=>{G(!1),I(""),K("")},className:"text-xs text-zinc-500 hover:text-white transition-colors",children:"Cancel"})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("p",{className:"text-sm text-zinc-400",children:"Two-factor authentication adds an extra layer of security to terminal access. You'll need an authenticator app to generate codes."}),(0,b.jsxs)("button",{onClick:ah,className:"flex items-center gap-2 px-4 py-2 text-sm bg-indigo-500 text-white rounded-md hover:bg-indigo-600",children:[(0,b.jsx)(i.Shield,{className:"w-4 h-4"}),"Set up 2FA"]})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(g.FolderOpen,{className:"w-4 h-4"}),"Data Source"]}),(0,b.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-muted-foreground text-xs",children:"Agent Data Directories"}),(0,b.jsxs)("div",{className:"font-mono text-xs mt-1 p-2 bg-zinc-50 dark:bg-zinc-800 rounded space-y-1",children:[(0,b.jsx)("p",{children:"~/.claude/"}),(0,b.jsx)("p",{children:"~/.codex/"}),(0,b.jsx)("p",{children:"~/.gemini/"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-muted-foreground text-xs",children:"Spaces Database"}),(0,b.jsx)("p",{className:"font-mono text-xs mt-1 p-2 bg-zinc-50 dark:bg-zinc-800 rounded",children:"~/.spaces/spaces.db"})]})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(n.FolderCode,{className:"w-4 h-4"}),"Development Directories"]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Restrict terminal pane creation to these project roots. Paths must be absolute."}),U.length>0&&(0,b.jsx)("div",{className:"space-y-1.5 mb-3",children:U.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 bg-zinc-50 dark:bg-zinc-800 rounded-md group",children:[(0,b.jsx)(g.FolderOpen,{className:"w-3.5 h-3.5 text-amber-500/70 flex-shrink-0"}),(0,b.jsx)("span",{className:"font-mono text-xs flex-1 truncate",children:a}),(0,b.jsx)("button",{onClick:()=>{ad(U.filter(b=>b!==a))},className:"text-zinc-400 hover:text-red-400 opacity-0 group-hover:opacity-100 transition-opacity",title:"Remove",children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]},a))}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"text",placeholder:"u">typeof navigator&&navigator.platform?.startsWith("Win")?"C:\\Users\\you\\projects":"/home/user/projects",value:W,onChange:a=>X(a.target.value),onKeyDown:a=>"Enter"===a.key&&ae(),className:"flex-1 px-3 py-1.5 text-sm bg-zinc-50 dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:border-indigo-500 font-mono"}),(0,b.jsxs)("button",{onClick:ae,disabled:!W.trim()||!(W.trim().startsWith("/")||/^[A-Za-z]:[\\/]/.test(W.trim())),className:"flex items-center gap-1.5 px-3 py-1.5 text-sm bg-indigo-500 text-white rounded-md hover:bg-indigo-600 disabled:opacity-50",children:[(0,b.jsx)(l.Plus,{className:"w-3.5 h-3.5"}),"Add"]})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(f.RefreshCw,{className:"w-4 h-4"}),"Data Sync"]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Force a full re-scan of all agent sessions. This rebuilds the index from scratch."}),(0,b.jsxs)("button",{onClick:af,disabled:y.isPending,className:"flex items-center gap-2 px-4 py-2 text-sm bg-indigo-500 text-white rounded-md hover:bg-indigo-600 disabled:opacity-50",children:[y.isPending?(0,b.jsx)(h.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsx)(f.RefreshCw,{className:"w-4 h-4"}),"Re-sync Now"]}),z&&(0,b.jsx)("p",{className:"text-xs text-green-600 mt-2",children:z})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(o,{className:"w-4 h-4"}),"Experimental"]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Opt-in to features that are still being shaped."}),(0,b.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer",children:[(0,b.jsx)("input",{type:"checkbox",checked:aa,onChange:ac,className:"mt-0.5 w-4 h-4 rounded border-zinc-300 dark:border-zinc-700 text-indigo-500 focus:ring-indigo-500"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm",children:"Workspace todos"}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground mt-0.5",children:"Show a horizontal row of todo chips above the pane grid in each workspace."})]})]})]}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(k.BarChart3,{className:"w-4 h-4"}),"Telemetry"]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground mb-3",children:"Anonymous usage data helps us understand how Spaces is used and improve the product. No file paths, session content, or personal information is ever collected."}),$?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-zinc-400",children:[(0,b.jsx)(h.Loader2,{className:"w-4 h-4 animate-spin"}),"Loading..."]}):(0,b.jsxs)("label",{className:"flex items-center gap-3 cursor-pointer",children:[(0,b.jsx)("input",{type:"checkbox",checked:!Y,onChange:ag,className:"w-4 h-4 rounded border-zinc-300 dark:border-zinc-700 text-indigo-500 focus:ring-indigo-500"}),(0,b.jsx)("span",{className:"text-sm",children:"Send anonymous usage data"})]})]}),w&&(0,b.jsx)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:(0,b.jsx)(s.CortexSettings,{})}),(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-5",children:[(0,b.jsxs)("h3",{className:"font-semibold flex items-center gap-2 mb-3",children:[(0,b.jsx)(e.Settings,{className:"w-4 h-4"}),"About"]}),(0,b.jsxs)("div",{className:"text-sm space-y-1",children:[(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Version:"})," ",u||"..."]}),(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Tier:"})," ",(0,b.jsx)("span",{className:"capitalize",children:t})]}),(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Data access:"})," Read-only (never modifies agent data directories)"]}),(0,b.jsx)("p",{className:"text-muted-foreground text-xs mt-2",children:"Spaces is an open-source agent workspace manager. All session data stays local on your machine."})]})]})]})]})}a.s(["default",()=>t],773663)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28desktop%29_settings_page_tsx_f74824b3._.js.map