@jlongo78/agent-spaces 0.5.1 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +2 -2
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +19 -19
  5. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  19. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  27. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  28. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  30. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  31. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  32. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  33. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  34. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  35. package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
  36. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
  38. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  40. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
  41. package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
  42. package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
  43. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
  44. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  45. package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
  46. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
  47. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
  48. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  49. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  50. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
  51. package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
  53. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
  54. package/.next/standalone/.next/server/app/analytics.html +1 -1
  55. package/.next/standalone/.next/server/app/analytics.rsc +2 -2
  56. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  59. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
  60. package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
  61. package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
  62. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  63. package/.next/standalone/.next/server/app/api/analytics/overview/route.js +2 -2
  64. package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/bulk/route.js +2 -2
  66. package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/events/route.js +2 -2
  69. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/network/handshake/route.js +1 -1
  72. package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/api/panes/[id]/route.js +2 -2
  74. package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/panes/route.js +2 -2
  76. package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/projects/route.js +2 -2
  78. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/search/route.js +2 -2
  80. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +2 -2
  82. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +2 -2
  84. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +2 -2
  86. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/sessions/route.js +2 -2
  88. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/sync/route.js +3 -3
  90. package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/tags/route.js +2 -2
  92. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/tier/route.js +1 -1
  94. package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +2 -2
  96. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +2 -2
  98. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +2 -2
  100. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +2 -2
  102. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +2 -2
  104. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +2 -2
  106. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
  107. package/.next/standalone/.next/server/app/api/workspaces/route.js +2 -2
  108. package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/login.html +1 -1
  111. package/.next/standalone/.next/server/app/login.rsc +2 -2
  112. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
  113. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  114. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
  115. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  116. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  121. package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
  122. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
  124. package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
  125. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
  126. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
  129. package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  132. package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
  133. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
  134. package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
  135. package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
  136. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
  137. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
  138. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
  139. package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
  140. package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
  141. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  142. package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
  143. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
  144. package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
  145. package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
  146. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
  147. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
  148. package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
  150. package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
  151. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  152. package/.next/standalone/.next/server/app/m/terminal.rsc +2 -2
  153. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +2 -2
  154. package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
  155. package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
  156. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
  157. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
  158. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
  159. package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
  160. package/.next/standalone/.next/server/app/m.html +1 -1
  161. package/.next/standalone/.next/server/app/m.rsc +2 -2
  162. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
  163. package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
  164. package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
  165. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
  166. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
  167. package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
  168. package/.next/standalone/.next/server/app/network.html +1 -1
  169. package/.next/standalone/.next/server/app/network.rsc +2 -2
  170. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
  171. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
  172. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  173. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
  174. package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
  175. package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
  176. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
  177. package/.next/standalone/.next/server/app/projects.html +1 -1
  178. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  179. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
  180. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
  181. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  182. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  183. package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  184. package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  185. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  186. package/.next/standalone/.next/server/app/sessions.html +1 -1
  187. package/.next/standalone/.next/server/app/sessions.rsc +2 -2
  188. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
  189. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
  190. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  191. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
  192. package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  193. package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
  194. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  195. package/.next/standalone/.next/server/app/settings.html +1 -1
  196. package/.next/standalone/.next/server/app/settings.rsc +2 -2
  197. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
  198. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
  199. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  200. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  201. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  202. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  203. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  204. package/.next/standalone/.next/server/app/terminal.html +1 -1
  205. package/.next/standalone/.next/server/app/terminal.rsc +2 -2
  206. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +1 -1
  207. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
  208. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  209. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +2 -2
  210. package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  211. package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
  212. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
  213. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  214. package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
  215. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
  216. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
  217. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  218. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
  219. package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
  220. package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
  221. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  222. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e742ef33._.js → [root-of-the-server]__0e4c2d35._.js} +2 -2
  223. package/.next/standalone/.next/server/chunks/[root-of-the-server]__130dee4b._.js +98 -0
  224. package/.next/standalone/.next/server/chunks/[root-of-the-server]__142c2f41._.js +98 -0
  225. package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +148 -0
  226. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2861e096._.js +1 -1
  227. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2d3d8d52._.js +98 -0
  228. package/.next/standalone/.next/server/chunks/[root-of-the-server]__57b966d5._.js +98 -0
  229. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5a0020ba._.js +106 -0
  230. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5bd0f118._.js +98 -0
  231. package/.next/standalone/.next/server/chunks/[root-of-the-server]__64f5810e._.js +98 -0
  232. package/.next/standalone/.next/server/chunks/[root-of-the-server]__74c48d65._.js +98 -0
  233. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7d6610c4._.js +98 -0
  234. package/.next/standalone/.next/server/chunks/[root-of-the-server]__84f3af14._.js +98 -0
  235. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8765f2fc._.js +98 -0
  236. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a2ee9884._.js +1 -1
  237. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a6eb742d._.js +98 -0
  238. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4c83e91._.js +114 -0
  239. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c546cf71._.js +1 -1
  240. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cae0486f._.js +106 -0
  241. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d5615808._.js +98 -0
  242. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d877df12._.js +1 -1
  243. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f66ceeb8._.js +98 -0
  244. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f84e3cf3._.js +98 -0
  245. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f893957c._.js +98 -0
  246. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fcd26315._.js +98 -0
  247. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd505913._.js +98 -0
  248. package/.next/standalone/.next/server/chunks/[root-of-the-server]__feff7b91._.js +98 -0
  249. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
  250. package/.next/standalone/.next/server/edge/chunks/_d73df637._.js +1 -1
  251. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  252. package/.next/standalone/.next/server/pages/404.html +1 -1
  253. package/.next/standalone/.next/server/pages/500.html +2 -2
  254. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  256. package/.next/standalone/.next/static/chunks/67c7bf5024309fca.css +3 -0
  257. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
  258. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  259. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
  260. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  261. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
  262. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  263. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  264. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  265. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  266. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  267. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
  268. package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  269. package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-linux-x64}/package.json +46 -39
  270. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  271. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  272. package/.next/standalone/package.json +89 -89
  273. package/.next/standalone/server.js +1 -1
  274. package/.next/standalone/tsconfig.json +34 -34
  275. package/LICENSE +661 -661
  276. package/README.md +131 -131
  277. package/bin/fix-standalone-externals.js +79 -79
  278. package/bin/lib/auto-setup.js +101 -101
  279. package/bin/mdns-service.js +171 -171
  280. package/bin/postinstall.js +35 -35
  281. package/bin/setup-admin.js +189 -189
  282. package/bin/spaces-dev.js +208 -208
  283. package/bin/spaces-install.js +483 -426
  284. package/bin/spaces-setup.js +247 -242
  285. package/bin/spaces.js +465 -465
  286. package/bin/terminal-server.js +1117 -1117
  287. package/package.json +89 -89
  288. package/.next/standalone/.claude/settings.local.json +0 -11
  289. package/.next/standalone/.next/server/chunks/[root-of-the-server]__086be15a._.js +0 -3
  290. package/.next/standalone/.next/server/chunks/[root-of-the-server]__20353b76._.js +0 -3
  291. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b6758fc._.js +0 -3
  292. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2e9d1d5a._.js +0 -3
  293. package/.next/standalone/.next/server/chunks/[root-of-the-server]__34c34116._.js +0 -3
  294. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3ce30e4e._.js +0 -3
  295. package/.next/standalone/.next/server/chunks/[root-of-the-server]__43112c34._.js +0 -3
  296. package/.next/standalone/.next/server/chunks/[root-of-the-server]__47a63195._.js +0 -3
  297. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60689e2b._.js +0 -3
  298. package/.next/standalone/.next/server/chunks/[root-of-the-server]__83b9bcf3._.js +0 -11
  299. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89124c96._.js +0 -243
  300. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c2eee30._.js +0 -3
  301. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8ffcf827._.js +0 -3
  302. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e343d64._.js +0 -3
  303. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a651ede9._.js +0 -3
  304. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4b692df._.js +0 -3
  305. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4edb4d6._.js +0 -3
  306. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b71497ab._.js +0 -243
  307. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bef2ed87._.js +0 -3
  308. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c525457e._.js +0 -19
  309. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccc27199._.js +0 -3
  310. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ce5edd98._.js +0 -3
  311. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dd2e81be._.js +0 -11
  312. package/.next/standalone/.next/static/chunks/ff5fac1bd7b518dd.css +0 -3
  313. package/.next/standalone/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64.node +0 -0
  314. /package/.next/standalone/.next/static/{U-EFIvMEHFIoGaoj6xBXK → nbYSIjUtkSwSvTgyR5p00}/_buildManifest.js +0 -0
  315. /package/.next/standalone/.next/static/{U-EFIvMEHFIoGaoj6xBXK → nbYSIjUtkSwSvTgyR5p00}/_clientMiddlewareManifest.json +0 -0
  316. /package/.next/standalone/.next/static/{U-EFIvMEHFIoGaoj6xBXK → nbYSIjUtkSwSvTgyR5p00}/_ssgManifest.js +0 -0
  317. /package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-libvips-linux-x64}/versions.json +0 -0
package/bin/spaces-dev.js CHANGED
@@ -1,208 +1,208 @@
1
- #!/usr/bin/env node
2
-
3
- const http = require('http');
4
- const fs = require('fs');
5
- const { spawn } = require('child_process');
6
- const path = require('path');
7
- const os = require('os');
8
- const SPACES_DIR = path.join(os.homedir(), '.spaces');
9
- const CONFIG_PATH = path.join(SPACES_DIR, 'server.json');
10
- const SESSION_SECRET_PATH = path.join(SPACES_DIR, 'session_secret');
11
-
12
- // ─── Load saved config ────────────────────────────────────
13
- let savedConfig = {};
14
- if (fs.existsSync(CONFIG_PATH)) {
15
- try { savedConfig = JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf-8')); } catch {}
16
- }
17
-
18
- // ─── Resolve settings (env > config > defaults) ──────────
19
- const NEXT_INTERNAL_PORT = parseInt(process.env.SPACES_NEXT_PORT || '3400', 10);
20
- const PORT = parseInt(process.env.SPACES_PORT || '', 10) || savedConfig.port || 3457;
21
-
22
- const basePath = process.env.SPACES_BASE_PATH || savedConfig.basePath || '';
23
- if (basePath) {
24
- process.env.SPACES_BASE_PATH = basePath;
25
- }
26
-
27
- const allowedOrigins = process.env.SPACES_ALLOWED_ORIGINS || savedConfig.allowedOrigins || '';
28
- if (allowedOrigins) {
29
- process.env.SPACES_ALLOWED_ORIGINS = allowedOrigins;
30
- }
31
-
32
- // ─── Managed packages directory ──────────────────────────────
33
- const MANAGED_PACKAGES = path.join(SPACES_DIR, 'packages');
34
- const MANAGED_NODE_MODULES = path.join(MANAGED_PACKAGES, 'node_modules');
35
-
36
- // ─── Auto-detect tier (check managed packages first) ─────────
37
- function hasManagedPro() {
38
- return fs.existsSync(path.join(MANAGED_NODE_MODULES, '@spaces', 'pro', 'dist', 'index.js'));
39
- }
40
- function hasManagedTeams() {
41
- return fs.existsSync(path.join(MANAGED_NODE_MODULES, '@spaces', 'teams', 'index.js'));
42
- }
43
- function hasRequirePro() {
44
- try { require.resolve('@spaces/pro'); return true; } catch { return false; }
45
- }
46
- function hasRequireTeams() {
47
- try { require.resolve('@spaces/teams'); return true; } catch { return false; }
48
- }
49
-
50
- const hasSpacesPro = hasManagedPro() || hasRequirePro();
51
- const hasSpacesTeams = hasManagedTeams() || hasRequireTeams();
52
-
53
- let tier = process.env.SPACES_TIER || savedConfig.tier || '';
54
- if (!tier) {
55
- if (hasSpacesPro) tier = 'federation';
56
- else if (hasSpacesTeams) tier = 'team';
57
- else tier = 'community';
58
- }
59
- process.env.SPACES_TIER = tier;
60
-
61
- // ─── Resolve NODE_PATH for managed packages ──────────────────
62
- const nodePaths = [MANAGED_NODE_MODULES];
63
- // Add each managed package's own node_modules for bundled deps
64
- for (const pkgName of ['pro', 'teams']) {
65
- const pkgDir = path.join(MANAGED_PACKAGES, pkgName, 'node_modules');
66
- if (fs.existsSync(pkgDir)) nodePaths.push(pkgDir);
67
- }
68
- for (const dir of nodePaths) {
69
- const existing = process.env.NODE_PATH || '';
70
- if (!existing.includes(dir)) {
71
- process.env.NODE_PATH = existing ? `${dir}${path.delimiter}${existing}` : dir;
72
- }
73
- }
74
- require('module').Module._initPaths();
75
-
76
- // Require terminal-server AFTER tier is set so it reads the correct SPACES_TIER
77
- const { createTerminalServer } = require('./terminal-server');
78
-
79
- // ─── Federation prerequisites — auto-setup if needed ──────
80
- if (tier !== 'community') {
81
- let sessionSecret = process.env.SPACES_SESSION_SECRET || '';
82
- if (!sessionSecret && fs.existsSync(SESSION_SECRET_PATH)) {
83
- sessionSecret = fs.readFileSync(SESSION_SECRET_PATH, 'utf-8').trim();
84
- }
85
-
86
- const adminDbPath = path.join(SPACES_DIR, 'admin.db');
87
- if (!fs.existsSync(adminDbPath) || !sessionSecret) {
88
- const { autoSetup } = require('./lib/auto-setup');
89
- const result = autoSetup({ SPACES_DIR, SESSION_SECRET_PATH, ADMIN_DB_PATH: adminDbPath, CONFIG_PATH, tier, port: PORT, basePath });
90
- sessionSecret = result.sessionSecret;
91
- }
92
-
93
- process.env.SPACES_SESSION_SECRET = sessionSecret;
94
- }
95
-
96
- // Spawn Next.js dev server on an internal port
97
- const childEnv = { ...process.env, PORT: String(NEXT_INTERNAL_PORT) };
98
- const next = spawn('npx', ['next', 'dev', '--hostname', '0.0.0.0', '--port', String(NEXT_INTERNAL_PORT)], {
99
- cwd: path.join(__dirname, '..'),
100
- stdio: ['ignore', 'pipe', 'pipe'],
101
- env: childEnv,
102
- shell: true,
103
- });
104
-
105
- let nextReady = false;
106
-
107
- next.stdout.on('data', (data) => {
108
- const msg = data.toString();
109
- process.stdout.write(msg);
110
- if (msg.includes('Ready') || msg.includes('started server') || msg.includes('Listening') || msg.includes('localhost')) {
111
- nextReady = true;
112
- }
113
- });
114
-
115
- next.stderr.on('data', (data) => {
116
- process.stderr.write(data);
117
- });
118
-
119
- next.on('exit', (code) => {
120
- console.error(`[spaces-dev] Next.js exited with code ${code}`);
121
- process.exit(code || 1);
122
- });
123
-
124
- // Create unified HTTP server
125
- const server = http.createServer((req, res) => {
126
- const proxyReq = http.request(
127
- {
128
- hostname: '127.0.0.1',
129
- port: NEXT_INTERNAL_PORT,
130
- path: req.url,
131
- method: req.method,
132
- headers: req.headers,
133
- },
134
- (proxyRes) => {
135
- res.writeHead(proxyRes.statusCode, proxyRes.headers);
136
- proxyRes.pipe(res);
137
- }
138
- );
139
- proxyReq.on('error', (err) => {
140
- // Next.js not ready yet
141
- if (!res.headersSent) {
142
- res.writeHead(502);
143
- res.end('Next.js dev server not ready yet. Refresh in a moment.');
144
- }
145
- });
146
- req.pipe(proxyReq);
147
- });
148
-
149
- // Attach terminal WebSocket server for /ws upgrades
150
- createTerminalServer(server);
151
-
152
- // Proxy non-/ws upgrades (Next.js HMR WebSocket) to Next.js dev
153
- server.on('upgrade', (req, socket, head) => {
154
- const url = new URL(req.url, 'http://localhost');
155
- if (url.pathname !== '/ws' && !url.pathname.endsWith('/ws')) {
156
- const proxyReq = http.request({
157
- hostname: '127.0.0.1',
158
- port: NEXT_INTERNAL_PORT,
159
- path: req.url,
160
- method: req.method,
161
- headers: req.headers,
162
- });
163
- proxyReq.on('upgrade', (proxyRes, proxySocket, proxyHead) => {
164
- socket.write(
165
- 'HTTP/1.1 101 Switching Protocols\r\n' +
166
- Object.entries(proxyRes.headers).map(([k, v]) => `${k}: ${v}`).join('\r\n') +
167
- '\r\n\r\n'
168
- );
169
- if (proxyHead.length > 0) proxySocket.unshift(proxyHead);
170
- proxySocket.on('error', () => socket.destroy());
171
- socket.on('error', () => proxySocket.destroy());
172
- proxySocket.on('close', () => {
173
- console.log(`[HMR proxy] upstream closed (${url.pathname})`);
174
- });
175
- socket.on('close', () => {
176
- console.log(`[HMR proxy] browser closed (${url.pathname})`);
177
- });
178
- proxySocket.pipe(socket);
179
- socket.pipe(proxySocket);
180
- });
181
- proxyReq.on('response', (res) => {
182
- // Upgrade was rejected — log and clean up
183
- console.log(`[HMR proxy] upgrade rejected: ${res.statusCode} for ${url.pathname}`);
184
- socket.destroy();
185
- });
186
- proxyReq.on('error', (err) => {
187
- console.log(`[HMR proxy] error: ${err.message}`);
188
- socket.destroy();
189
- });
190
- socket.on('error', () => {});
191
- if (head.length > 0) proxyReq.write(head);
192
- proxyReq.end();
193
- }
194
- });
195
-
196
- server.listen(PORT, () => {
197
- console.log(`\n Spaces dev server on http://localhost:${PORT}\n`);
198
- });
199
-
200
- // Cleanup
201
- function cleanup() {
202
- next.kill();
203
- server.close();
204
- process.exit(0);
205
- }
206
-
207
- process.on('SIGINT', cleanup);
208
- process.on('SIGTERM', cleanup);
1
+ #!/usr/bin/env node
2
+
3
+ const http = require('http');
4
+ const fs = require('fs');
5
+ const { spawn } = require('child_process');
6
+ const path = require('path');
7
+ const os = require('os');
8
+ const SPACES_DIR = path.join(os.homedir(), '.spaces');
9
+ const CONFIG_PATH = path.join(SPACES_DIR, 'server.json');
10
+ const SESSION_SECRET_PATH = path.join(SPACES_DIR, 'session_secret');
11
+
12
+ // ─── Load saved config ────────────────────────────────────
13
+ let savedConfig = {};
14
+ if (fs.existsSync(CONFIG_PATH)) {
15
+ try { savedConfig = JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf-8')); } catch {}
16
+ }
17
+
18
+ // ─── Resolve settings (env > config > defaults) ──────────
19
+ const NEXT_INTERNAL_PORT = parseInt(process.env.SPACES_NEXT_PORT || '3400', 10);
20
+ const PORT = parseInt(process.env.SPACES_PORT || '', 10) || savedConfig.port || 3457;
21
+
22
+ const basePath = process.env.SPACES_BASE_PATH || savedConfig.basePath || '';
23
+ if (basePath) {
24
+ process.env.SPACES_BASE_PATH = basePath;
25
+ }
26
+
27
+ const allowedOrigins = process.env.SPACES_ALLOWED_ORIGINS || savedConfig.allowedOrigins || '';
28
+ if (allowedOrigins) {
29
+ process.env.SPACES_ALLOWED_ORIGINS = allowedOrigins;
30
+ }
31
+
32
+ // ─── Managed packages directory ──────────────────────────────
33
+ const MANAGED_PACKAGES = path.join(SPACES_DIR, 'packages');
34
+ const MANAGED_NODE_MODULES = path.join(MANAGED_PACKAGES, 'node_modules');
35
+
36
+ // ─── Auto-detect tier (check managed packages first) ─────────
37
+ function hasManagedPro() {
38
+ return fs.existsSync(path.join(MANAGED_NODE_MODULES, '@spaces', 'pro', 'dist', 'index.js'));
39
+ }
40
+ function hasManagedTeams() {
41
+ return fs.existsSync(path.join(MANAGED_NODE_MODULES, '@spaces', 'teams', 'index.js'));
42
+ }
43
+ function hasRequirePro() {
44
+ try { require.resolve('@spaces/pro'); return true; } catch { return false; }
45
+ }
46
+ function hasRequireTeams() {
47
+ try { require.resolve('@spaces/teams'); return true; } catch { return false; }
48
+ }
49
+
50
+ const hasSpacesPro = hasManagedPro() || hasRequirePro();
51
+ const hasSpacesTeams = hasManagedTeams() || hasRequireTeams();
52
+
53
+ let tier = process.env.SPACES_TIER || savedConfig.tier || '';
54
+ if (!tier) {
55
+ if (hasSpacesPro) tier = 'federation';
56
+ else if (hasSpacesTeams) tier = 'team';
57
+ else tier = 'community';
58
+ }
59
+ process.env.SPACES_TIER = tier;
60
+
61
+ // ─── Resolve NODE_PATH for managed packages ──────────────────
62
+ const nodePaths = [MANAGED_NODE_MODULES];
63
+ // Add each managed package's own node_modules for bundled deps
64
+ for (const pkgName of ['pro', 'teams']) {
65
+ const pkgDir = path.join(MANAGED_PACKAGES, pkgName, 'node_modules');
66
+ if (fs.existsSync(pkgDir)) nodePaths.push(pkgDir);
67
+ }
68
+ for (const dir of nodePaths) {
69
+ const existing = process.env.NODE_PATH || '';
70
+ if (!existing.includes(dir)) {
71
+ process.env.NODE_PATH = existing ? `${dir}${path.delimiter}${existing}` : dir;
72
+ }
73
+ }
74
+ require('module').Module._initPaths();
75
+
76
+ // Require terminal-server AFTER tier is set so it reads the correct SPACES_TIER
77
+ const { createTerminalServer } = require('./terminal-server');
78
+
79
+ // ─── Federation prerequisites — auto-setup if needed ──────
80
+ if (tier !== 'community') {
81
+ let sessionSecret = process.env.SPACES_SESSION_SECRET || '';
82
+ if (!sessionSecret && fs.existsSync(SESSION_SECRET_PATH)) {
83
+ sessionSecret = fs.readFileSync(SESSION_SECRET_PATH, 'utf-8').trim();
84
+ }
85
+
86
+ const adminDbPath = path.join(SPACES_DIR, 'admin.db');
87
+ if (!fs.existsSync(adminDbPath) || !sessionSecret) {
88
+ const { autoSetup } = require('./lib/auto-setup');
89
+ const result = autoSetup({ SPACES_DIR, SESSION_SECRET_PATH, ADMIN_DB_PATH: adminDbPath, CONFIG_PATH, tier, port: PORT, basePath });
90
+ sessionSecret = result.sessionSecret;
91
+ }
92
+
93
+ process.env.SPACES_SESSION_SECRET = sessionSecret;
94
+ }
95
+
96
+ // Spawn Next.js dev server on an internal port
97
+ const childEnv = { ...process.env, PORT: String(NEXT_INTERNAL_PORT) };
98
+ const next = spawn('npx', ['next', 'dev', '--hostname', '0.0.0.0', '--port', String(NEXT_INTERNAL_PORT)], {
99
+ cwd: path.join(__dirname, '..'),
100
+ stdio: ['ignore', 'pipe', 'pipe'],
101
+ env: childEnv,
102
+ shell: true,
103
+ });
104
+
105
+ let nextReady = false;
106
+
107
+ next.stdout.on('data', (data) => {
108
+ const msg = data.toString();
109
+ process.stdout.write(msg);
110
+ if (msg.includes('Ready') || msg.includes('started server') || msg.includes('Listening') || msg.includes('localhost')) {
111
+ nextReady = true;
112
+ }
113
+ });
114
+
115
+ next.stderr.on('data', (data) => {
116
+ process.stderr.write(data);
117
+ });
118
+
119
+ next.on('exit', (code) => {
120
+ console.error(`[spaces-dev] Next.js exited with code ${code}`);
121
+ process.exit(code || 1);
122
+ });
123
+
124
+ // Create unified HTTP server
125
+ const server = http.createServer((req, res) => {
126
+ const proxyReq = http.request(
127
+ {
128
+ hostname: '127.0.0.1',
129
+ port: NEXT_INTERNAL_PORT,
130
+ path: req.url,
131
+ method: req.method,
132
+ headers: req.headers,
133
+ },
134
+ (proxyRes) => {
135
+ res.writeHead(proxyRes.statusCode, proxyRes.headers);
136
+ proxyRes.pipe(res);
137
+ }
138
+ );
139
+ proxyReq.on('error', (err) => {
140
+ // Next.js not ready yet
141
+ if (!res.headersSent) {
142
+ res.writeHead(502);
143
+ res.end('Next.js dev server not ready yet. Refresh in a moment.');
144
+ }
145
+ });
146
+ req.pipe(proxyReq);
147
+ });
148
+
149
+ // Attach terminal WebSocket server for /ws upgrades
150
+ createTerminalServer(server);
151
+
152
+ // Proxy non-/ws upgrades (Next.js HMR WebSocket) to Next.js dev
153
+ server.on('upgrade', (req, socket, head) => {
154
+ const url = new URL(req.url, 'http://localhost');
155
+ if (url.pathname !== '/ws' && !url.pathname.endsWith('/ws')) {
156
+ const proxyReq = http.request({
157
+ hostname: '127.0.0.1',
158
+ port: NEXT_INTERNAL_PORT,
159
+ path: req.url,
160
+ method: req.method,
161
+ headers: req.headers,
162
+ });
163
+ proxyReq.on('upgrade', (proxyRes, proxySocket, proxyHead) => {
164
+ socket.write(
165
+ 'HTTP/1.1 101 Switching Protocols\r\n' +
166
+ Object.entries(proxyRes.headers).map(([k, v]) => `${k}: ${v}`).join('\r\n') +
167
+ '\r\n\r\n'
168
+ );
169
+ if (proxyHead.length > 0) proxySocket.unshift(proxyHead);
170
+ proxySocket.on('error', () => socket.destroy());
171
+ socket.on('error', () => proxySocket.destroy());
172
+ proxySocket.on('close', () => {
173
+ console.log(`[HMR proxy] upstream closed (${url.pathname})`);
174
+ });
175
+ socket.on('close', () => {
176
+ console.log(`[HMR proxy] browser closed (${url.pathname})`);
177
+ });
178
+ proxySocket.pipe(socket);
179
+ socket.pipe(proxySocket);
180
+ });
181
+ proxyReq.on('response', (res) => {
182
+ // Upgrade was rejected — log and clean up
183
+ console.log(`[HMR proxy] upgrade rejected: ${res.statusCode} for ${url.pathname}`);
184
+ socket.destroy();
185
+ });
186
+ proxyReq.on('error', (err) => {
187
+ console.log(`[HMR proxy] error: ${err.message}`);
188
+ socket.destroy();
189
+ });
190
+ socket.on('error', () => {});
191
+ if (head.length > 0) proxyReq.write(head);
192
+ proxyReq.end();
193
+ }
194
+ });
195
+
196
+ server.listen(PORT, () => {
197
+ console.log(`\n Spaces dev server on http://localhost:${PORT}\n`);
198
+ });
199
+
200
+ // Cleanup
201
+ function cleanup() {
202
+ next.kill();
203
+ server.close();
204
+ process.exit(0);
205
+ }
206
+
207
+ process.on('SIGINT', cleanup);
208
+ process.on('SIGTERM', cleanup);