@jlongo78/agent-spaces 0.3.12 → 0.4.0

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 (565) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +5 -0
  3. package/.next/standalone/.next/build-manifest.json +4 -4
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +11 -6
  6. package/.next/standalone/.next/routes-manifest.json +40 -0
  7. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page/build-manifest.json +2 -2
  8. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page.js +1 -1
  9. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(desktop)/admin/users/page/build-manifest.json +2 -2
  12. package/.next/standalone/.next/server/app/(desktop)/admin/users/page.js +1 -1
  13. package/.next/standalone/.next/server/app/(desktop)/admin/users/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(desktop)/analytics/page/build-manifest.json +2 -2
  16. package/.next/standalone/.next/server/app/(desktop)/analytics/page.js +1 -1
  17. package/.next/standalone/.next/server/app/(desktop)/analytics/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(desktop)/network/page/build-manifest.json +2 -2
  20. package/.next/standalone/.next/server/app/(desktop)/network/page.js +1 -1
  21. package/.next/standalone/.next/server/app/(desktop)/network/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(desktop)/page/build-manifest.json +2 -2
  24. package/.next/standalone/.next/server/app/(desktop)/page.js +2 -2
  25. package/.next/standalone/.next/server/app/(desktop)/page.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(desktop)/projects/page/build-manifest.json +2 -2
  28. package/.next/standalone/.next/server/app/(desktop)/projects/page.js +1 -1
  29. package/.next/standalone/.next/server/app/(desktop)/projects/page.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page/build-manifest.json +2 -2
  32. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page.js +1 -1
  33. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(desktop)/sessions/page/build-manifest.json +2 -2
  36. package/.next/standalone/.next/server/app/(desktop)/sessions/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(desktop)/sessions/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(desktop)/settings/page/build-manifest.json +2 -2
  40. package/.next/standalone/.next/server/app/(desktop)/settings/page.js +1 -1
  41. package/.next/standalone/.next/server/app/(desktop)/settings/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(desktop)/terminal/page/build-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/(desktop)/terminal/page.js +1 -1
  45. package/.next/standalone/.next/server/app/(desktop)/terminal/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page/build-manifest.json +2 -2
  48. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page.js +1 -1
  49. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page/build-manifest.json +2 -2
  52. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page.js +1 -1
  53. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/(desktop)/workspaces/page/build-manifest.json +2 -2
  56. package/.next/standalone/.next/server/app/(desktop)/workspaces/page.js +1 -1
  57. package/.next/standalone/.next/server/app/(desktop)/workspaces/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  60. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  61. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  63. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  64. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  65. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  66. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  67. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  69. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  70. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  71. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  74. package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
  75. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  76. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  77. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  78. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  79. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  81. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  82. package/.next/standalone/.next/server/app/admin/analytics.rsc +6 -6
  83. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +2 -2
  84. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
  85. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  86. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  87. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +6 -6
  88. package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
  89. package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +3 -3
  90. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
  91. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  92. package/.next/standalone/.next/server/app/admin/users.rsc +6 -6
  93. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +2 -2
  94. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
  95. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  97. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +6 -6
  98. package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
  99. package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +3 -3
  100. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
  101. package/.next/standalone/.next/server/app/analytics.html +1 -1
  102. package/.next/standalone/.next/server/app/analytics.rsc +6 -6
  103. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +2 -2
  104. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
  105. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  106. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +6 -6
  107. package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +3 -3
  109. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  110. package/.next/standalone/.next/server/app/api/admin/analytics/route.js +1 -1
  111. package/.next/standalone/.next/server/app/api/admin/analytics/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js +1 -1
  113. package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/admin/users/route.js +1 -1
  115. package/.next/standalone/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/analytics/overview/route.js +2 -2
  117. package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/auth/login/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/auth/logout/route.js +1 -1
  121. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/api/auth/me/route.js +1 -1
  123. package/.next/standalone/.next/server/app/api/auth/me/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/auth/totp/status/route.js +1 -1
  127. package/.next/standalone/.next/server/app/api/auth/totp/status/route.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/bulk/route.js +2 -2
  131. package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
  132. package/.next/standalone/.next/server/app/api/chat/route.js +1 -1
  133. package/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  134. package/.next/standalone/.next/server/app/api/config/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/events/route.js +2 -2
  137. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/api/folders/route.js +1 -1
  139. package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/network/discovered/route.js +1 -1
  141. package/.next/standalone/.next/server/app/api/network/discovered/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/network/handshake/route.js +1 -1
  143. package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/network/health/route.js +1 -1
  145. package/.next/standalone/.next/server/app/api/network/health/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/network/identity/route.js +1 -1
  147. package/.next/standalone/.next/server/app/api/network/identity/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js +1 -1
  149. package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/network/keys/route.js +1 -1
  151. package/.next/standalone/.next/server/app/api/network/keys/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/network/nodes/check/route.js +1 -1
  155. package/.next/standalone/.next/server/app/api/network/nodes/check/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/network/nodes/route.js +1 -1
  157. package/.next/standalone/.next/server/app/api/network/nodes/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/network/projects/route.js +1 -1
  159. package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js +1 -1
  161. package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/network/search/route.js +1 -1
  163. package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js +1 -1
  165. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js +1 -1
  167. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/network/sessions/route.js +1 -1
  169. package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/network/terminal/token/route.js +1 -1
  171. package/.next/standalone/.next/server/app/api/network/terminal/token/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +1 -1
  173. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/network/workspaces/route.js +1 -1
  175. package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/panes/[id]/route.js +2 -2
  177. package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/panes/route.js +2 -2
  179. package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/projects/route.js +2 -2
  181. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/search/route.js +2 -2
  183. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +2 -2
  185. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
  186. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +2 -2
  187. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +2 -2
  189. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/sessions/route.js +2 -2
  191. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/sync/route.js +3 -3
  193. package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/tags/route.js +2 -2
  195. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/tier/route/app-paths-manifest.json +3 -0
  197. package/.next/standalone/.next/server/app/api/tier/route/build-manifest.json +11 -0
  198. package/.next/standalone/.next/server/app/api/tier/route/server-reference-manifest.json +4 -0
  199. package/.next/standalone/.next/server/app/api/tier/route.js +7 -0
  200. package/.next/standalone/.next/server/app/api/tier/route.js.map +5 -0
  201. package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -0
  202. package/.next/standalone/.next/server/app/api/tier/route_client-reference-manifest.js +2 -0
  203. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route/app-paths-manifest.json +3 -0
  204. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route/build-manifest.json +11 -0
  205. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route/server-reference-manifest.json +4 -0
  206. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +7 -0
  207. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.map +5 -0
  208. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -0
  209. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route_client-reference-manifest.js +2 -0
  210. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route/app-paths-manifest.json +3 -0
  211. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route/build-manifest.json +11 -0
  212. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route/server-reference-manifest.json +4 -0
  213. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +7 -0
  214. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.map +5 -0
  215. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -0
  216. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route_client-reference-manifest.js +2 -0
  217. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route/app-paths-manifest.json +3 -0
  218. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route/build-manifest.json +11 -0
  219. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route/server-reference-manifest.json +4 -0
  220. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +7 -0
  221. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.map +5 -0
  222. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -0
  223. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route_client-reference-manifest.js +2 -0
  224. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route/app-paths-manifest.json +3 -0
  225. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route/build-manifest.json +11 -0
  226. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route/server-reference-manifest.json +4 -0
  227. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +7 -0
  228. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.map +5 -0
  229. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -0
  230. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route_client-reference-manifest.js +2 -0
  231. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +2 -2
  232. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +2 -2
  234. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
  235. package/.next/standalone/.next/server/app/api/workspaces/route.js +2 -2
  236. package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  237. package/.next/standalone/.next/server/app/login/page/build-manifest.json +2 -2
  238. package/.next/standalone/.next/server/app/login/page.js +1 -1
  239. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/login.html +1 -1
  242. package/.next/standalone/.next/server/app/login.rsc +5 -5
  243. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +5 -5
  244. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  245. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  246. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  247. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  248. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  249. package/.next/standalone/.next/server/app/m/page/build-manifest.json +2 -2
  250. package/.next/standalone/.next/server/app/m/page.js +1 -1
  251. package/.next/standalone/.next/server/app/m/page.js.nft.json +1 -1
  252. package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
  253. package/.next/standalone/.next/server/app/m/projects/page/build-manifest.json +2 -2
  254. package/.next/standalone/.next/server/app/m/projects/page.js +1 -1
  255. package/.next/standalone/.next/server/app/m/projects/page.js.nft.json +1 -1
  256. package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  258. package/.next/standalone/.next/server/app/m/projects.rsc +6 -6
  259. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +6 -6
  260. package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
  261. package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +3 -3
  262. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
  263. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +2 -2
  264. package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
  265. package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +2 -2
  266. package/.next/standalone/.next/server/app/m/sessions/[id]/page/build-manifest.json +2 -2
  267. package/.next/standalone/.next/server/app/m/sessions/[id]/page.js +1 -1
  268. package/.next/standalone/.next/server/app/m/sessions/[id]/page.js.nft.json +1 -1
  269. package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/m/sessions/page/build-manifest.json +2 -2
  271. package/.next/standalone/.next/server/app/m/sessions/page.js +1 -1
  272. package/.next/standalone/.next/server/app/m/sessions/page.js.nft.json +1 -1
  273. package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
  274. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  275. package/.next/standalone/.next/server/app/m/sessions.rsc +6 -6
  276. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +6 -6
  277. package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
  278. package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +3 -3
  279. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
  280. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +2 -2
  281. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
  282. package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +2 -2
  283. package/.next/standalone/.next/server/app/m/settings/page/build-manifest.json +2 -2
  284. package/.next/standalone/.next/server/app/m/settings/page.js +1 -1
  285. package/.next/standalone/.next/server/app/m/settings/page.js.nft.json +1 -1
  286. package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
  287. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  288. package/.next/standalone/.next/server/app/m/settings.rsc +6 -6
  289. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +6 -6
  290. package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
  291. package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +3 -3
  292. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
  293. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +2 -2
  294. package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
  295. package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +2 -2
  296. package/.next/standalone/.next/server/app/m/terminal/page/build-manifest.json +2 -2
  297. package/.next/standalone/.next/server/app/m/terminal/page.js +1 -1
  298. package/.next/standalone/.next/server/app/m/terminal/page.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
  300. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  301. package/.next/standalone/.next/server/app/m/terminal.rsc +6 -6
  302. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +6 -6
  303. package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
  304. package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +3 -3
  305. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
  306. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +2 -2
  307. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
  308. package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +2 -2
  309. package/.next/standalone/.next/server/app/m.html +1 -1
  310. package/.next/standalone/.next/server/app/m.rsc +6 -6
  311. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +6 -6
  312. package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
  313. package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +3 -3
  314. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
  315. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +2 -2
  316. package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +2 -2
  317. package/.next/standalone/.next/server/app/network.html +1 -1
  318. package/.next/standalone/.next/server/app/network.rsc +6 -6
  319. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +2 -2
  320. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
  321. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  322. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +6 -6
  323. package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
  324. package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +3 -3
  325. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
  326. package/.next/standalone/.next/server/app/projects.html +1 -1
  327. package/.next/standalone/.next/server/app/projects.rsc +6 -6
  328. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +2 -2
  329. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
  330. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  331. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +6 -6
  332. package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  333. package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +3 -3
  334. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  335. package/.next/standalone/.next/server/app/sessions.html +1 -1
  336. package/.next/standalone/.next/server/app/sessions.rsc +6 -6
  337. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +2 -2
  338. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
  339. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  340. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +6 -6
  341. package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  342. package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +3 -3
  343. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  344. package/.next/standalone/.next/server/app/settings.html +1 -1
  345. package/.next/standalone/.next/server/app/settings.rsc +6 -6
  346. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +2 -2
  347. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
  348. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  349. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +6 -6
  350. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  351. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +3 -3
  352. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  353. package/.next/standalone/.next/server/app/terminal.html +1 -1
  354. package/.next/standalone/.next/server/app/terminal.rsc +6 -6
  355. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
  356. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
  357. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  358. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +6 -6
  359. package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  360. package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +3 -3
  361. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
  362. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  363. package/.next/standalone/.next/server/app/workspaces.rsc +6 -6
  364. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +2 -2
  365. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
  366. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +2 -2
  367. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +6 -6
  368. package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
  369. package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +3 -3
  370. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  371. package/.next/standalone/.next/server/app-paths-manifest.json +5 -0
  372. package/.next/standalone/.next/server/chunks/[externals]_chokidar_a0cd9157._.js +3 -0
  373. package/.next/standalone/.next/server/chunks/[root-of-the-server]__025cd038._.js +3 -0
  374. package/.next/standalone/.next/server/chunks/[root-of-the-server]__042ba2bc._.js +3 -0
  375. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07cc153d._.js +3 -0
  376. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08e411dd._.js +3 -0
  377. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0add852f._.js +3 -0
  378. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c113ed0._.js +3 -0
  379. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cf032ab._.js +3 -0
  380. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11293532._.js +13 -0
  381. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1194f2c1._.js +3 -0
  382. package/.next/standalone/.next/server/chunks/[root-of-the-server]__19c2d094._.js +3 -0
  383. package/.next/standalone/.next/server/chunks/[root-of-the-server]__19c3ad21._.js +3 -0
  384. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ebc634e._.js +3 -0
  385. package/.next/standalone/.next/server/chunks/[root-of-the-server]__24197539._.js +3 -0
  386. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2891c969._.js +11 -0
  387. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2c6e6625._.js +3 -0
  388. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2fe2b40e._.js +3 -0
  389. package/.next/standalone/.next/server/chunks/[root-of-the-server]__318f12c6._.js +3 -0
  390. package/.next/standalone/.next/server/chunks/[root-of-the-server]__32df12e4._.js +3 -0
  391. package/.next/standalone/.next/server/chunks/[root-of-the-server]__34e7cb21._.js +3 -0
  392. package/.next/standalone/.next/server/chunks/[root-of-the-server]__49c92d87._.js +3 -0
  393. package/.next/standalone/.next/server/chunks/[root-of-the-server]__52bde30c._.js +3 -0
  394. package/.next/standalone/.next/server/chunks/[root-of-the-server]__53090a81._.js +3 -0
  395. package/.next/standalone/.next/server/chunks/[root-of-the-server]__57193cf5._.js +3 -0
  396. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c33078d._.js +3 -0
  397. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5f8c694a._.js +3 -0
  398. package/.next/standalone/.next/server/chunks/[root-of-the-server]__630b9a6a._.js +3 -0
  399. package/.next/standalone/.next/server/chunks/[root-of-the-server]__727d05f1._.js +3 -0
  400. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__b71497ab._.js → [root-of-the-server]__75a774f0._.js} +19 -18
  401. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__89124c96._.js → [root-of-the-server]__7f0bc701._.js} +19 -18
  402. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8915603e._.js +3 -0
  403. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8afe4d5e._.js +3 -0
  404. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d15de27._.js +3 -0
  405. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a1fbc199._.js +3 -0
  406. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a1fe6070._.js +3 -0
  407. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a3f604d6._.js +3 -0
  408. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a5504205._.js +3 -0
  409. package/.next/standalone/.next/server/chunks/[root-of-the-server]__abf53d11._.js +3 -0
  410. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b78eeead._.js +11 -0
  411. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1b8f8f6._.js +3 -0
  412. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c3c74ca4._.js +3 -0
  413. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c79824d9._.js +3 -0
  414. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c9db5d8a._.js +3 -0
  415. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cbd9cb15._.js +3 -0
  416. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccb4e920._.js +3 -0
  417. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d15515e3._.js +3 -0
  418. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d490583e._.js +3 -0
  419. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9c106a9._.js +3 -0
  420. package/.next/standalone/.next/server/chunks/[root-of-the-server]__de2c3bf8._.js +3 -0
  421. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dfbf7bdd._.js +19 -0
  422. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1e26f47._.js +3 -0
  423. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ee9346bf._.js +3 -0
  424. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fea012d6._.js +3 -0
  425. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ff1b0769._.js +3 -0
  426. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tier_route_actions_6186023b.js +3 -0
  427. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_workspaces_[id]_context_route_actions_e9cb4bed.js +3 -0
  428. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_workspaces_[id]_messages_route_actions_0cf1d576.js +3 -0
  429. package/.next/standalone/.next/server/chunks/ce889_server_app_api_workspaces_[id]_context_[key]_route_actions_8e11e764.js +3 -0
  430. package/.next/standalone/.next/server/chunks/ce889_server_app_api_workspaces_[id]_messages_[msgId]_route_actions_008a0317.js +3 -0
  431. package/.next/standalone/.next/server/chunks/src_lib_events_sse_ts_1ad73980._.js +6 -0
  432. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ea64930e._.js → [root-of-the-server]__2b4e2acc._.js} +2 -2
  433. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__36a11bc9._.js +1 -1
  434. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__63c35e0f._.js +3 -0
  435. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__650a172d._.js +3 -0
  436. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ba1024f6._.js → [root-of-the-server]__67234962._.js} +2 -2
  437. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__72acd514._.js → [root-of-the-server]__c73bef9a._.js} +2 -2
  438. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e921fdfc._.js +5 -0
  439. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__eac7aeff._.js +3 -0
  440. package/.next/standalone/.next/server/chunks/ssr/{_548abc09._.js → _0946fdc3._.js} +1 -1
  441. package/.next/standalone/.next/server/chunks/ssr/_1f12caba._.js +2 -2
  442. package/.next/standalone/.next/server/chunks/ssr/_2230ad2d._.js +3 -0
  443. package/.next/standalone/.next/server/chunks/ssr/_3b54193d._.js +1 -1
  444. package/.next/standalone/.next/server/chunks/ssr/_43e7e611._.js +2 -2
  445. package/.next/standalone/.next/server/chunks/ssr/_5ac43c5d._.js +1 -3
  446. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__3611990a._.js → _cd0986af._.js} +2 -2
  447. package/.next/standalone/.next/server/chunks/ssr/_cd50a174._.js +3 -0
  448. package/.next/standalone/.next/server/chunks/ssr/{_7e741697._.js → _de57b857._.js} +2 -2
  449. package/.next/standalone/.next/server/chunks/ssr/_ef42f47a._.js +3 -0
  450. package/.next/standalone/.next/server/chunks/ssr/_f67f58f1._.js +1 -1
  451. package/.next/standalone/.next/server/chunks/ssr/{_dd004864._.js → _fbc5e000._.js} +1 -1
  452. package/.next/standalone/.next/server/chunks/ssr/node_modules_861e98fe._.js +1 -1
  453. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +1 -1
  454. package/.next/standalone/.next/server/chunks/ssr/src_app_m_terminal_page_tsx_553a0130._.js +2 -2
  455. package/.next/standalone/.next/server/edge/chunks/{[root-of-the-server]__6154bdc0._.js → [root-of-the-server]__32a0045c._.js} +3 -5
  456. package/.next/standalone/.next/server/edge/chunks/{turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_03b33eff.js → turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_a5230bba.js} +2 -2
  457. package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
  458. package/.next/standalone/.next/server/middleware-manifest.json +7 -7
  459. package/.next/standalone/.next/server/pages/404.html +1 -1
  460. package/.next/standalone/.next/server/pages/500.html +2 -2
  461. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  462. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  463. package/.next/standalone/.next/static/chunks/{4bd6943fa4082aa9.js → 3165c61fb2e4045d.js} +1 -1
  464. package/.next/standalone/.next/static/chunks/{f58f62604604c529.js → 31f45c67350373f2.js} +2 -2
  465. package/.next/standalone/.next/static/chunks/3c4ee171d96760e8.js +5 -0
  466. package/.next/standalone/.next/static/chunks/4e792c3078e37704.js +5 -0
  467. package/.next/standalone/.next/static/chunks/65afda485a466977.js +1 -0
  468. package/.next/standalone/.next/static/chunks/780381483091d8fb.js +1 -0
  469. package/.next/standalone/.next/static/chunks/7c1e6d7f1d3b4173.js +5 -0
  470. package/.next/standalone/.next/static/chunks/806334ea0f6ca92a.css +3 -0
  471. package/.next/standalone/.next/static/chunks/{0b733ac17fcb2bef.js → 8cc07e8d950d6962.js} +1 -1
  472. package/.next/standalone/.next/static/chunks/d0c839c82cf232b8.js +1 -0
  473. package/.next/standalone/.next/static/chunks/e6134a48180c8a36.js +1 -0
  474. package/.next/standalone/.next/static/chunks/{7de9141b1af425c3.js → e7772d64463868eb.js} +1 -1
  475. package/.next/standalone/.next/static/chunks/{e94f6965199a47e7.js → eb780226f5bd3892.js} +1 -1
  476. package/.next/standalone/.next/static/chunks/f2b58d718b34646d.js +1 -0
  477. package/.next/standalone/.next/static/chunks/f789a1d0736e1154.js +1 -0
  478. package/.next/standalone/.next/static/chunks/{turbopack-947de56768b27172.js → turbopack-ea18b8255590c757.js} +1 -1
  479. package/.next/standalone/node_modules/chokidar/LICENSE +21 -0
  480. package/.next/standalone/node_modules/chokidar/README.md +305 -0
  481. package/.next/standalone/node_modules/chokidar/handler.js +632 -0
  482. package/.next/standalone/node_modules/chokidar/index.js +822 -0
  483. package/.next/standalone/node_modules/chokidar/package.json +63 -0
  484. package/.next/standalone/node_modules/readdirp/LICENSE +21 -0
  485. package/.next/standalone/node_modules/readdirp/README.md +120 -0
  486. package/.next/standalone/node_modules/readdirp/index.js +272 -0
  487. package/.next/standalone/node_modules/readdirp/package.json +66 -0
  488. package/.next/standalone/package.json +7 -7
  489. package/.next/standalone/server.js +1 -1
  490. package/README.md +3 -3
  491. package/bin/lib/auto-setup.js +101 -0
  492. package/bin/spaces-dev.js +70 -5
  493. package/bin/spaces-setup.js +242 -0
  494. package/bin/spaces.js +286 -123
  495. package/bin/terminal-server.js +65 -4
  496. package/package.json +7 -7
  497. package/.next/standalone/.next/server/chunks/[externals]_node:path_d28a9bfe._.js +0 -3
  498. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01c98454._.js +0 -3
  499. package/.next/standalone/.next/server/chunks/[root-of-the-server]__18b8f7d9._.js +0 -3
  500. package/.next/standalone/.next/server/chunks/[root-of-the-server]__193cb667._.js +0 -5
  501. package/.next/standalone/.next/server/chunks/[root-of-the-server]__25b4d5ca._.js +0 -3
  502. package/.next/standalone/.next/server/chunks/[root-of-the-server]__280398d8._.js +0 -3
  503. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2a4c2db6._.js +0 -13
  504. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3fd6439e._.js +0 -3
  505. package/.next/standalone/.next/server/chunks/[root-of-the-server]__40c21d75._.js +0 -5
  506. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4375a280._.js +0 -5
  507. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4950da9c._.js +0 -3
  508. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a77d855._.js +0 -3
  509. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4d551a41._.js +0 -5
  510. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5420fbcd._.js +0 -3
  511. package/.next/standalone/.next/server/chunks/[root-of-the-server]__586418c6._.js +0 -5
  512. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c2f4a8e._.js +0 -3
  513. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5eaa589f._.js +0 -3
  514. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5f4dc1dd._.js +0 -5
  515. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5ff6b7d9._.js +0 -3
  516. package/.next/standalone/.next/server/chunks/[root-of-the-server]__65509457._.js +0 -3
  517. package/.next/standalone/.next/server/chunks/[root-of-the-server]__65620687._.js +0 -5
  518. package/.next/standalone/.next/server/chunks/[root-of-the-server]__76e7a7b9._.js +0 -3
  519. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7fae7bd7._.js +0 -3
  520. package/.next/standalone/.next/server/chunks/[root-of-the-server]__821ffcfb._.js +0 -5
  521. package/.next/standalone/.next/server/chunks/[root-of-the-server]__83676993._.js +0 -3
  522. package/.next/standalone/.next/server/chunks/[root-of-the-server]__86e02dd1._.js +0 -5
  523. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8a7fae80._.js +0 -5
  524. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8af8821a._.js +0 -3
  525. package/.next/standalone/.next/server/chunks/[root-of-the-server]__93e1af64._.js +0 -3
  526. package/.next/standalone/.next/server/chunks/[root-of-the-server]__94f437bd._.js +0 -3
  527. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e9f597a._.js +0 -3
  528. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aae49c2b._.js +0 -15
  529. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab25b881._.js +0 -3
  530. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aef285c3._.js +0 -5
  531. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b52523c7._.js +0 -3
  532. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b607a85c._.js +0 -5
  533. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b950ac1e._.js +0 -3
  534. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c6355fd6._.js +0 -3
  535. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d1771755._.js +0 -3
  536. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d55d3167._.js +0 -12
  537. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9533783._.js +0 -3
  538. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9540965._.js +0 -21
  539. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ddbb7b16._.js +0 -5
  540. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e4989332._.js +0 -5
  541. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e7a6a584._.js +0 -3
  542. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ed0f1148._.js +0 -5
  543. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f1436778._.js +0 -5
  544. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fe65bfb1._.js +0 -3
  545. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__17ba2e09._.js +0 -3
  546. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__6bd17d85._.js +0 -5
  547. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__7e604f3d._.js +0 -3
  548. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a923e475._.js +0 -5
  549. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__d23f4926._.js +0 -5
  550. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e3bf6054._.js +0 -5
  551. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__f08a4c64._.js +0 -3
  552. package/.next/standalone/.next/static/chunks/06e3af139a18e326.js +0 -5
  553. package/.next/standalone/.next/static/chunks/13c233fe06728b88.js +0 -1
  554. package/.next/standalone/.next/static/chunks/1f4937830aceaae2.js +0 -1
  555. package/.next/standalone/.next/static/chunks/6b8fb2027281ae5d.js +0 -3
  556. package/.next/standalone/.next/static/chunks/76698b8c3d5cae75.js +0 -1
  557. package/.next/standalone/.next/static/chunks/7fbc5bdede00e3c9.js +0 -1
  558. package/.next/standalone/.next/static/chunks/acbcf40fb5a2ca5e.js +0 -1
  559. package/.next/standalone/.next/static/chunks/b873b989ec82be01.css +0 -3
  560. package/.next/standalone/.next/static/chunks/db03df936139672b.js +0 -1
  561. package/.next/standalone/.next/static/chunks/e7ac38524a30e234.js +0 -5
  562. package/.next/standalone/.next/static/chunks/f8cf8e5a643bd23f.js +0 -5
  563. /package/.next/standalone/.next/static/{_8ZLzufn5gU1vrGxPWqKS → k4gRsS979E-cbl1AWcHhx}/_buildManifest.js +0 -0
  564. /package/.next/standalone/.next/static/{_8ZLzufn5gU1vrGxPWqKS → k4gRsS979E-cbl1AWcHhx}/_clientMiddlewareManifest.json +0 -0
  565. /package/.next/standalone/.next/static/{_8ZLzufn5gU1vrGxPWqKS → k4gRsS979E-cbl1AWcHhx}/_ssgManifest.js +0 -0
package/bin/spaces.js CHANGED
@@ -1,155 +1,318 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  const http = require('http');
4
- const { execSync, spawn } = require('child_process');
4
+ const { execFileSync, spawn } = require('child_process');
5
5
  const path = require('path');
6
6
  const os = require('os');
7
7
  const fs = require('fs');
8
- const { createTerminalServer } = require('./terminal-server');
8
+ // terminal-server is loaded lazily (after SPACES_TIER is set in process.env)
9
9
 
10
+ const SPACES_DIR = path.join(os.homedir(), '.spaces');
11
+ const CONFIG_PATH = path.join(SPACES_DIR, 'server.json');
12
+ const SESSION_SECRET_PATH = path.join(SPACES_DIR, 'session_secret');
10
13
  const NEXT_INTERNAL_PORT = 3400;
11
- const PORT = parseInt(process.env.SPACES_PORT || '3457', 10);
12
14
  const projectDir = path.join(__dirname, '..');
13
15
 
14
- console.log('');
15
- console.log(' Spaces - Agent Workspace Manager');
16
- console.log(' =================================');
17
- console.log('');
18
-
19
- // Detect standalone build (npm global install) vs full .next (git clone)
20
- const standaloneServer = path.join(projectDir, '.next', 'standalone', 'server.js');
21
- const fullBuildDir = path.join(projectDir, '.next', 'BUILD_ID');
22
- const isStandalone = fs.existsSync(standaloneServer);
23
- const isFullBuild = fs.existsSync(fullBuildDir);
24
-
25
- if (!isStandalone && !isFullBuild) {
26
- console.error(' Error: No build found.');
27
- console.error(' Run "npm run build" first, or install via "npm install -g @jlongo78/agent-spaces".');
28
- process.exit(1);
16
+ // ─── CLI arg parsing ──────────────────────────────────────
17
+ const args = process.argv.slice(2);
18
+ const cliFlags = {};
19
+ for (let i = 0; i < args.length; i++) {
20
+ if (args[i] === '--setup') { cliFlags.setup = true; }
21
+ else if (args[i] === '--port' && args[i + 1]) { cliFlags.port = parseInt(args[++i], 10); }
22
+ else if (args[i] === '--tier' && args[i + 1]) { cliFlags.tier = args[++i]; }
23
+ else if (args[i] === '--base-path' && args[i + 1]) { cliFlags.basePath = args[++i]; }
24
+ else if (args[i] === '--help' || args[i] === '-h') { cliFlags.help = true; }
29
25
  }
30
26
 
31
- // Check for ~/.claude/ directory
32
- const claudeDir = path.join(os.homedir(), '.claude');
33
- if (!fs.existsSync(claudeDir)) {
34
- console.log(' Warning: ~/.claude/ not found. Have you used Claude Code yet?');
35
- console.log('');
27
+ if (cliFlags.help) {
28
+ console.log(`
29
+ Spaces - Agent Workspace Manager
30
+
31
+ Usage:
32
+ spaces Start the server (auto-detects tier)
33
+ spaces --setup Interactive first-time setup wizard
34
+ spaces --port 3457 Override port
35
+ spaces --tier team Override tier (community|server|team|federation)
36
+ spaces --base-path /spaces Set base path for reverse proxy
37
+ spaces --help Show this help
38
+ `);
39
+ process.exit(0);
36
40
  }
37
41
 
38
- // Spawn Next.js production server on an internal port
39
- let next;
40
- if (isStandalone) {
41
- // npm global install run the standalone server directly
42
- // Native modules (better-sqlite3, node-pty) live in the parent package's
43
- // node_modules, not in the standalone bundle. Add NODE_PATH so they're found.
44
- const parentNodeModules = path.join(projectDir, 'node_modules');
45
- const existingNodePath = process.env.NODE_PATH || '';
46
- const nodePath = existingNodePath
47
- ? `${parentNodeModules}${path.delimiter}${existingNodePath}`
48
- : parentNodeModules;
49
-
50
- next = spawn(process.execPath, [standaloneServer], {
51
- cwd: path.dirname(standaloneServer),
52
- stdio: ['ignore', 'pipe', 'pipe'],
53
- env: {
54
- ...process.env,
55
- PORT: String(NEXT_INTERNAL_PORT),
56
- HOSTNAME: '0.0.0.0',
57
- NODE_ENV: 'production',
58
- NODE_PATH: nodePath,
59
- },
60
- });
42
+ // ─── Setup wizard ─────────────────────────────────────────
43
+ if (cliFlags.setup) {
44
+ require('./spaces-setup');
45
+ // spaces-setup handles its own process.exit
61
46
  } else {
62
- // git clone — use next start
63
- next = spawn('npx', ['next', 'start', '--port', String(NEXT_INTERNAL_PORT)], {
64
- cwd: projectDir,
65
- stdio: ['ignore', 'pipe', 'pipe'],
66
- env: {
67
- ...process.env,
68
- PORT: String(NEXT_INTERNAL_PORT),
69
- HOSTNAME: '0.0.0.0',
70
- NODE_ENV: 'production',
71
- },
72
- shell: true,
73
- });
47
+ startServer();
74
48
  }
75
49
 
76
- let nextReady = false;
77
-
78
- next.stdout.on('data', (data) => {
79
- const msg = data.toString();
80
- process.stdout.write(msg);
81
- if (!nextReady && (msg.includes('Ready') || msg.includes('started server') || msg.includes('Listening') || msg.includes('localhost'))) {
82
- nextReady = true;
83
- console.log(`\n Ready at http://localhost:${PORT}\n`);
84
-
85
- // Try to open browser (hardcoded localhost URL, no user input)
86
- const url = `http://localhost:${PORT}`;
87
- try {
88
- if (process.platform === 'win32') {
89
- execSync(`start ${url}`, { stdio: 'ignore' });
90
- } else if (process.platform === 'darwin') {
91
- execSync(`open ${url}`, { stdio: 'ignore' });
92
- } else {
93
- execSync(`xdg-open ${url}`, { stdio: 'ignore' });
50
+ function startServer() {
51
+ // ─── Load saved config ────────────────────────────────────
52
+ let savedConfig = {};
53
+ if (fs.existsSync(CONFIG_PATH)) {
54
+ try { savedConfig = JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf-8')); } catch {}
55
+ }
56
+
57
+ // ─── Resolve settings (CLI > env > config > defaults) ─────
58
+ const PORT = cliFlags.port
59
+ || parseInt(process.env.SPACES_PORT || '', 10)
60
+ || savedConfig.port
61
+ || 3457;
62
+
63
+ const basePath = cliFlags.basePath
64
+ || process.env.SPACES_BASE_PATH
65
+ || savedConfig.basePath
66
+ || '';
67
+
68
+ // ─── Resolve optional packages once ─────────────────────────
69
+ const proPath = resolveSpacesPro();
70
+ const teamsPath = resolveSpacesTeams();
71
+
72
+ // Tier resolution: CLI > env > config > auto-detect
73
+ let tier = cliFlags.tier
74
+ || process.env.SPACES_TIER
75
+ || savedConfig.tier
76
+ || '';
77
+
78
+ // Auto-detect tier from package presence
79
+ if (!tier) {
80
+ if (proPath) tier = 'federation';
81
+ else if (teamsPath) tier = 'team';
82
+ else tier = 'community';
83
+ }
84
+
85
+ console.log('');
86
+ console.log(' Spaces - Agent Workspace Manager');
87
+ console.log(' =================================');
88
+ console.log('');
89
+ console.log(` Tier: ${tier}`);
90
+
91
+ // ─── Server tier prerequisites ────────────────────────────
92
+ const childEnv = { ...process.env };
93
+
94
+ if (tier !== 'community') {
95
+ // server/federation tiers require @spaces/pro
96
+ if ((tier === 'server' || tier === 'federation') && !proPath) {
97
+ console.error(' Error: @spaces/pro is required for server/federation tiers.');
98
+ console.error(' Install it: npm install -g @spaces/pro');
99
+ process.exit(1);
100
+ }
101
+ // team/federation tiers require @spaces/teams
102
+ if ((tier === 'team' || tier === 'federation') && !teamsPath) {
103
+ console.error(' Error: @spaces/teams is required for team/federation tiers.');
104
+ console.error(' Install it: npm install -g @spaces/teams');
105
+ process.exit(1);
106
+ }
107
+
108
+ // Check for session secret
109
+ let sessionSecret = process.env.SPACES_SESSION_SECRET || '';
110
+ if (!sessionSecret && fs.existsSync(SESSION_SECRET_PATH)) {
111
+ sessionSecret = fs.readFileSync(SESSION_SECRET_PATH, 'utf-8').trim();
112
+ }
113
+
114
+ // Check for admin DB — auto-setup if missing
115
+ const adminDbPath = path.join(SPACES_DIR, 'admin.db');
116
+ if (!fs.existsSync(adminDbPath) || !sessionSecret) {
117
+ const { autoSetup } = require('./lib/auto-setup');
118
+ const result = autoSetup({ SPACES_DIR, SESSION_SECRET_PATH, ADMIN_DB_PATH: adminDbPath, CONFIG_PATH, tier, port: PORT, basePath });
119
+ sessionSecret = result.sessionSecret;
120
+ }
121
+
122
+ childEnv.SPACES_SESSION_SECRET = sessionSecret;
123
+ console.log(` Admin DB: ${adminDbPath}`);
124
+ }
125
+
126
+ // Set tier in both child env and own process env (terminal-server reads it)
127
+ childEnv.SPACES_TIER = tier;
128
+ process.env.SPACES_TIER = tier;
129
+ if (basePath) {
130
+ childEnv.SPACES_BASE_PATH = basePath;
131
+ console.log(` Base path: ${basePath}`);
132
+ }
133
+
134
+ // ─── Resolve NODE_PATH for @spaces/pro and @spaces/teams ──
135
+ for (const pkgPath of [proPath, teamsPath]) {
136
+ if (pkgPath) {
137
+ const nodeModulesDir = path.dirname(path.dirname(pkgPath));
138
+ const existing = childEnv.NODE_PATH || '';
139
+ if (!existing.includes(nodeModulesDir)) {
140
+ childEnv.NODE_PATH = existing
141
+ ? `${nodeModulesDir}${path.delimiter}${existing}`
142
+ : nodeModulesDir;
94
143
  }
95
- } catch {
96
- console.log(` Open ${url} in your browser`);
97
144
  }
98
145
  }
99
- });
100
146
 
101
- next.stderr.on('data', (data) => {
102
- const msg = data.toString();
103
- if (!msg.includes('Warning')) {
104
- process.stderr.write(data);
147
+ console.log('');
148
+
149
+ // Check for ~/.claude/ directory
150
+ const claudeDir = path.join(os.homedir(), '.claude');
151
+ if (!fs.existsSync(claudeDir)) {
152
+ console.log(' Warning: ~/.claude/ not found. Have you used Claude Code yet?');
153
+ console.log('');
105
154
  }
106
- });
107
155
 
108
- next.on('exit', (code) => {
109
- if (code !== 0 && code !== null) {
110
- console.error(` [spaces] Next.js exited with code ${code}`);
156
+ // ─── Detect build type ────────────────────────────────────
157
+ const standaloneServer = path.join(projectDir, '.next', 'standalone', 'server.js');
158
+ const fullBuildDir = path.join(projectDir, '.next', 'BUILD_ID');
159
+ const isStandalone = fs.existsSync(standaloneServer);
160
+ const isFullBuild = fs.existsSync(fullBuildDir);
161
+
162
+ if (!isStandalone && !isFullBuild) {
163
+ console.error(' Error: No build found.');
164
+ console.error(' Run "npm run build" first, or install via "npm install -g @jlongo78/agent-spaces".');
165
+ process.exit(1);
166
+ }
167
+
168
+ // ─── Spawn Next.js ────────────────────────────────────────
169
+ let next;
170
+ if (isStandalone) {
171
+ const parentNodeModules = path.join(projectDir, 'node_modules');
172
+ const existingNodePath = childEnv.NODE_PATH || '';
173
+ childEnv.NODE_PATH = existingNodePath
174
+ ? `${parentNodeModules}${path.delimiter}${existingNodePath}`
175
+ : parentNodeModules;
176
+
177
+ next = spawn(process.execPath, [standaloneServer], {
178
+ cwd: path.dirname(standaloneServer),
179
+ stdio: ['ignore', 'pipe', 'pipe'],
180
+ env: {
181
+ ...childEnv,
182
+ PORT: String(NEXT_INTERNAL_PORT),
183
+ HOSTNAME: '0.0.0.0',
184
+ NODE_ENV: 'production',
185
+ },
186
+ });
187
+ } else {
188
+ next = spawn('npx', ['next', 'start', '--port', String(NEXT_INTERNAL_PORT)], {
189
+ cwd: projectDir,
190
+ stdio: ['ignore', 'pipe', 'pipe'],
191
+ env: {
192
+ ...childEnv,
193
+ PORT: String(NEXT_INTERNAL_PORT),
194
+ HOSTNAME: '0.0.0.0',
195
+ NODE_ENV: 'production',
196
+ },
197
+ shell: true,
198
+ });
111
199
  }
112
- cleanup();
113
- });
114
-
115
- // Create unified HTTP server
116
- const server = http.createServer((req, res) => {
117
- const proxyReq = http.request(
118
- {
119
- hostname: '127.0.0.1',
120
- port: NEXT_INTERNAL_PORT,
121
- path: req.url,
122
- method: req.method,
123
- headers: req.headers,
124
- },
125
- (proxyRes) => {
126
- res.writeHead(proxyRes.statusCode, proxyRes.headers);
127
- proxyRes.pipe(res);
200
+
201
+ let nextReady = false;
202
+
203
+ next.stdout.on('data', (data) => {
204
+ const msg = data.toString();
205
+ process.stdout.write(msg);
206
+ if (!nextReady && (msg.includes('Ready') || msg.includes('started server') || msg.includes('Listening') || msg.includes('localhost'))) {
207
+ nextReady = true;
208
+ console.log(`\n Ready at http://localhost:${PORT}\n`);
209
+
210
+ const url = `http://localhost:${PORT}`;
211
+ try {
212
+ if (process.platform === 'win32') {
213
+ execFileSync('cmd', ['/c', 'start', url], { stdio: 'ignore' });
214
+ } else if (process.platform === 'darwin') {
215
+ execFileSync('open', [url], { stdio: 'ignore' });
216
+ } else {
217
+ execFileSync('xdg-open', [url], { stdio: 'ignore' });
218
+ }
219
+ } catch {
220
+ console.log(` Open ${url} in your browser`);
221
+ }
128
222
  }
129
- );
130
- proxyReq.on('error', () => {
131
- if (!res.headersSent) {
132
- res.writeHead(502);
133
- res.end('Server not ready yet. Refresh in a moment.');
223
+ });
224
+
225
+ next.stderr.on('data', (data) => {
226
+ const msg = data.toString();
227
+ if (!msg.includes('Warning')) {
228
+ process.stderr.write(data);
134
229
  }
135
230
  });
136
- req.pipe(proxyReq);
137
- });
138
231
 
139
- // Attach terminal WebSocket server for /ws upgrades
140
- createTerminalServer(server);
232
+ next.on('exit', (code) => {
233
+ if (code !== 0 && code !== null) {
234
+ console.error(` [spaces] Next.js exited with code ${code}`);
235
+ }
236
+ cleanup();
237
+ });
141
238
 
142
- server.listen(PORT, () => {
143
- console.log(` Starting server on http://localhost:${PORT}`);
144
- console.log('');
145
- });
239
+ // ─── HTTP proxy server ────────────────────────────────────
240
+ const server = http.createServer((req, res) => {
241
+ const proxyReq = http.request(
242
+ {
243
+ hostname: '127.0.0.1',
244
+ port: NEXT_INTERNAL_PORT,
245
+ path: req.url,
246
+ method: req.method,
247
+ headers: req.headers,
248
+ },
249
+ (proxyRes) => {
250
+ res.writeHead(proxyRes.statusCode, proxyRes.headers);
251
+ proxyRes.pipe(res);
252
+ }
253
+ );
254
+ proxyReq.on('error', () => {
255
+ if (!res.headersSent) {
256
+ res.writeHead(502);
257
+ res.end('Server not ready yet. Refresh in a moment.');
258
+ }
259
+ });
260
+ req.pipe(proxyReq);
261
+ });
146
262
 
147
- // Cleanup
148
- function cleanup() {
149
- next.kill();
150
- server.close();
151
- process.exit(0);
263
+ const { createTerminalServer } = require('./terminal-server');
264
+ createTerminalServer(server);
265
+
266
+ server.listen(PORT, () => {
267
+ console.log(` Starting server on http://localhost:${PORT}`);
268
+ console.log('');
269
+ });
270
+
271
+ function cleanup() {
272
+ next.kill();
273
+ server.close();
274
+ process.exit(0);
275
+ }
276
+
277
+ process.on('SIGINT', cleanup);
278
+ process.on('SIGTERM', cleanup);
152
279
  }
153
280
 
154
- process.on('SIGINT', cleanup);
155
- process.on('SIGTERM', cleanup);
281
+ // ─── @spaces/pro resolution ──────────────────────────────────
282
+ function resolveSpacesPro() {
283
+ // 1. Local node_modules
284
+ try {
285
+ return require.resolve('@spaces/pro');
286
+ } catch {}
287
+
288
+ // 2. Global npm prefix
289
+ try {
290
+ const globalPrefix = execFileSync('npm', ['prefix', '-g'], { encoding: 'utf-8' }).trim();
291
+ const globalProPath = path.join(globalPrefix, 'lib', 'node_modules', '@spaces', 'pro');
292
+ if (fs.existsSync(globalProPath)) return globalProPath;
293
+ // Some platforms put it directly under node_modules (e.g. Windows)
294
+ const altPath = path.join(globalPrefix, 'node_modules', '@spaces', 'pro');
295
+ if (fs.existsSync(altPath)) return altPath;
296
+ } catch {}
297
+
298
+ return null;
299
+ }
300
+
301
+ // ─── @spaces/teams resolution ────────────────────────────────
302
+ function resolveSpacesTeams() {
303
+ // 1. Local node_modules
304
+ try {
305
+ return require.resolve('@spaces/teams');
306
+ } catch {}
307
+
308
+ // 2. Global npm prefix
309
+ try {
310
+ const globalPrefix = execFileSync('npm', ['prefix', '-g'], { encoding: 'utf-8' }).trim();
311
+ const globalTeamsPath = path.join(globalPrefix, 'lib', 'node_modules', '@spaces', 'teams');
312
+ if (fs.existsSync(globalTeamsPath)) return globalTeamsPath;
313
+ const altPath = path.join(globalPrefix, 'node_modules', '@spaces', 'teams');
314
+ if (fs.existsSync(altPath)) return altPath;
315
+ } catch {}
316
+
317
+ return null;
318
+ }
@@ -2,6 +2,7 @@
2
2
 
3
3
  const { WebSocketServer } = require('ws');
4
4
  const pty = require('node-pty');
5
+ const http = require('http');
5
6
  const fs = require('fs');
6
7
  const path = require('path');
7
8
  const os = require('os');
@@ -351,8 +352,8 @@ function isAllowedOrigin(origin) {
351
352
  if (allowed) {
352
353
  return allowed.split(',').some(h => url.hostname === h.trim());
353
354
  }
354
- // In server/federation mode, require explicit allowed origins
355
- if (SPACES_TIER === 'server' || SPACES_TIER === 'federation') return false;
355
+ // In non-community modes, require explicit allowed origins
356
+ if (SPACES_TIER !== 'community') return false;
356
357
  // Desktop/community: allow any origin
357
358
  return true;
358
359
  } catch {
@@ -531,6 +532,25 @@ function handleConnection(wss, ws, req) {
531
532
  console.log(`[Spawn] cwd "${cwd}" does not exist, falling back to "${safeCwd}"`);
532
533
  }
533
534
 
535
+ // Inject Spaces bus environment for agent communication
536
+ env.SPACES_PANE_ID = paneId;
537
+ env.SPACES_API_URL = `http://localhost:${PORT}`;
538
+
539
+ // Look up workspace collaboration config from @spaces/teams
540
+ let isCollaborating = false;
541
+ try {
542
+ const teams = require('@spaces/teams');
543
+ const config = teams.terminal.getCollabConfig(paneId, username);
544
+ if (config) {
545
+ env.SPACES_WORKSPACE_ID = config.workspaceId;
546
+ env.SPACES_PANE_NAME = config.paneName;
547
+ isCollaborating = true;
548
+ env.SPACES_COLLABORATING = '1';
549
+ }
550
+ } catch {
551
+ // @spaces/teams not installed — collaboration not available
552
+ }
553
+
534
554
  console.log(`[Spawn] user=${username} shell=${shell} args=${JSON.stringify(args)} cwd=${safeCwd} agentType=${agentType}`);
535
555
 
536
556
  let term;
@@ -549,7 +569,16 @@ function handleConnection(wss, ws, req) {
549
569
  return;
550
570
  }
551
571
 
552
- const session = { pty: term, ws, buffer: [], exited: false, username };
572
+ const session = {
573
+ pty: term, ws, buffer: [], exited: false, username,
574
+ agentType,
575
+ paneName: env.SPACES_PANE_NAME || paneId,
576
+ lastOutputTime: Date.now(),
577
+ lastNudgeTime: 0,
578
+ startedAt: Date.now(),
579
+ workspaceId: env.SPACES_WORKSPACE_ID || null,
580
+ isCollaborating,
581
+ };
553
582
  sessions.set(paneId, session);
554
583
  analyticsRecordSessionStart(paneId, username, agentType);
555
584
 
@@ -567,6 +596,14 @@ function handleConnection(wss, ws, req) {
567
596
  }, 300);
568
597
  }
569
598
 
599
+ // Write collaboration config for agent panes via @spaces/teams
600
+ if (isCollaborating && agentType !== 'shell') {
601
+ try {
602
+ const teams = require('@spaces/teams');
603
+ teams.terminal.writeAgentConfig(agentType, safeCwd, env);
604
+ } catch { /* @spaces/teams not installed */ }
605
+ }
606
+
570
607
  if (agentType !== 'shell') {
571
608
  const command = agentType === 'custom' ? customCommand : agent.command;
572
609
 
@@ -613,6 +650,7 @@ function handleConnection(wss, ws, req) {
613
650
 
614
651
  // pty -> ws (and buffer)
615
652
  term.onData((data) => {
653
+ session.lastOutputTime = Date.now();
616
654
  session.buffer.push(data);
617
655
  if (session.buffer.length > MAX_BUFFER_LINES) {
618
656
  session.buffer.shift();
@@ -626,6 +664,11 @@ function handleConnection(wss, ws, req) {
626
664
  term.onExit(({ exitCode }) => {
627
665
  session.exited = true;
628
666
  analyticsRecordSessionEnd(paneId);
667
+ // Clean up hook state file
668
+ try {
669
+ const hookStateFile = path.join(os.homedir(), '.spaces', 'hook-state', `${paneId}.json`);
670
+ if (fs.existsSync(hookStateFile)) fs.unlinkSync(hookStateFile);
671
+ } catch { /* ignore */ }
629
672
  if (session.ws && session.ws.readyState === 1) {
630
673
  session.ws.send(JSON.stringify({ type: 'exit', exitCode }));
631
674
  }
@@ -945,6 +988,15 @@ function startMdnsIfNeeded() {
945
988
  }
946
989
  }
947
990
 
991
+ // ─── Poll-based idle nudge for agent collaboration ───────
992
+
993
+ function startMessageWatcher(apiPort) {
994
+ try {
995
+ const teams = require('@spaces/teams');
996
+ teams.terminal.startMessageWatcher(apiPort, sessions);
997
+ } catch { /* @spaces/teams not installed — no message watcher */ }
998
+ }
999
+
948
1000
  // ─── Attached mode: mount on an existing HTTP server ─────
949
1001
 
950
1002
  function createTerminalServer(httpServer) {
@@ -953,7 +1005,7 @@ function createTerminalServer(httpServer) {
953
1005
 
954
1006
  httpServer.on('upgrade', (req, socket, head) => {
955
1007
  const url = new URL(req.url, 'http://localhost');
956
- if (url.pathname === '/ws') {
1008
+ if (url.pathname === '/ws' || url.pathname.endsWith('/ws')) {
957
1009
  // Verify origin for browser clients
958
1010
  const origin = req.headers.origin;
959
1011
  if (origin && !isAllowedOrigin(origin)) {
@@ -968,6 +1020,14 @@ function createTerminalServer(httpServer) {
968
1020
  });
969
1021
 
970
1022
  startMdnsIfNeeded();
1023
+ // Start message watcher once the server is listening
1024
+ if (httpServer.listening) {
1025
+ startMessageWatcher(httpServer.address().port);
1026
+ } else {
1027
+ httpServer.on('listening', () => {
1028
+ startMessageWatcher(httpServer.address().port);
1029
+ });
1030
+ }
971
1031
  return wss;
972
1032
  }
973
1033
 
@@ -984,6 +1044,7 @@ if (require.main === module) {
984
1044
  });
985
1045
  setupWss(wss);
986
1046
  startMdnsIfNeeded();
1047
+ startMessageWatcher(PORT);
987
1048
  console.log(`Terminal WebSocket server running on ws://localhost:${PORT}`);
988
1049
  }
989
1050
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jlongo78/agent-spaces",
3
- "version": "0.3.12",
3
+ "version": "0.4.0",
4
4
  "description": "Agent workspace manager for Claude, Codex, Gemini, and more",
5
5
  "bin": {
6
6
  "spaces": "./bin/spaces.js"
@@ -26,22 +26,20 @@
26
26
  "gemini"
27
27
  ],
28
28
  "homepage": "http://www.agentspaces.co",
29
- "license": "AGPL-3.0-or-later",
29
+ "license": "AGPL-3.0-only",
30
30
  "scripts": {
31
31
  "start": "node bin/spaces.js",
32
32
  "dev": "node bin/spaces-dev.js",
33
33
  "build": "cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",
34
- "build:server": "cross-env NEXT_PUBLIC_TIER=server STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\"",
35
- "build:team": "cross-env NEXT_PUBLIC_TIER=team STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\"",
36
- "build:federation": "cross-env NEXT_PUBLIC_TIER=federation STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\"",
37
34
  "prepublishOnly": "npm run build",
35
+ "setup": "node bin/spaces-setup.js",
38
36
  "setup-admin": "node bin/setup-admin.js",
39
37
  "server:build": "next build",
40
38
  "server:start": "next start --port 3457",
41
- "lint": "eslint",
42
- "postinstall": "node bin/postinstall.js"
39
+ "lint": "eslint"
43
40
  },
44
41
  "dependencies": {
42
+ "@modelcontextprotocol/sdk": "^1.27.1",
45
43
  "better-sqlite3": "^12.6.2",
46
44
  "bonjour-service": "^1.3.0",
47
45
  "node-pty": "^1.1.0",
@@ -84,6 +82,8 @@
84
82
  "xterm": "^5.3.0"
85
83
  },
86
84
  "optionalDependencies": {
85
+ "@spaces/teams": "*",
86
+ "@spaces/pro": "*",
87
87
  "@types/qrcode": "^1.5.6",
88
88
  "otpauth": "^9.5.0",
89
89
  "qrcode": "^1.5.4"
@@ -1,3 +0,0 @@
1
- module.exports=[50227,(e,o,p)=>{o.exports=e.x("node:path",()=>require("node:path"))}];
2
-
3
- //# sourceMappingURL=%5Bexternals%5D_node%3Apath_d28a9bfe._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18167,e=>{"use strict";let t=null,r=!1;function a(){if(!r){try{t=(()=>{let e=Error("Cannot find module '@spaces/pro'");throw e.code="MODULE_NOT_FOUND",e})()}catch{}r=!0}return t}e.s(["getPro",()=>a])},30450,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),o=e.i(61916),i=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),R=e.i(74838),x=e.i(10372),v=e.i(93695);e.i(52474);var g=e.i(220),f=e.i(18167);async function E(e){let t=(0,f.getPro)();return t?.auth.api.login.POST(e)??Response.json({error:"Requires @spaces/pro"},{status:404})}e.s(["POST",()=>E],11615);var w=e.i(11615);let m=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/login/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:C,workUnitAsyncStorage:y,serverHooks:A}=m;function b(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:y})}async function P(e,t,a){m.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/auth/login/route";f=f.replace(/\/index$/,"")||"/";let E=await m.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:C,nextConfig:y,parsedUrl:A,isDraftMode:b,prerenderManifest:P,routerServerContext:T,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,resolvedPathname:_,clientReferenceManifest:S,serverActionsManifest:k}=E,q=(0,s.normalizeAppPath)(f),U=!!(P.dynamicRoutes[q]||P.routes[_]),H=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,A,!1):t.end("This page could not be found"),null);if(U&&!b){let e=!!P.routes[_],t=P.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await H();throw new v.NoFallbackError}}let j=null;!U||m.isDev||b||(j="/index"===(j=_)?"/":j);let D=!0===m.isDev||!U,I=U&&!D;k&&S&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:S,serverActionsManifest:k});let M=e.method||"GET",F=(0,o.getTracer)(),$=F.getActiveScopeSpan(),K={params:C,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>m.onRequestError(e,t,a,n,T)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let i=async e=>m.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${f}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!s&&O&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!U)return await (0,c.sendResponse)(L,B,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[x.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await m.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:O})},!1,T),t}},d=await m.handleResponse({req:e,nextConfig:y,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!U)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",O?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&U||v.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,R.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(L,B,new Response(d.value.body,{headers:v,status:d.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${f}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:O})},!1,T),U)throw t;return await (0,c.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>b,"routeModule",()=>m,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>y],30450)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__01c98454._.js.map