@jlongo78/agent-spaces 0.9.6 → 0.9.8

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 (917) hide show
  1. package/.next/standalone/.claude/settings.local.json +68 -0
  2. package/.next/standalone/.claude/spaces-env.json +1 -0
  3. package/.next/standalone/.next/BUILD_ID +1 -1
  4. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  5. package/.next/standalone/.next/build-manifest.json +2 -2
  6. package/.next/standalone/.next/prerender-manifest.json +3 -3
  7. package/.next/standalone/.next/required-server-files.json +19 -19
  8. package/.next/standalone/.next/routes-manifest.json +6 -0
  9. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(desktop)/cortex/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(desktop)/terminal/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  26. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  27. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  30. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  31. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  32. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  34. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  35. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  36. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  38. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  40. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  41. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  42. package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
  43. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
  44. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
  45. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  47. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
  48. package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
  49. package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
  50. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
  51. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  52. package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
  53. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
  55. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
  58. package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
  59. package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
  60. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
  61. package/.next/standalone/.next/server/app/analytics.html +1 -1
  62. package/.next/standalone/.next/server/app/analytics.rsc +2 -2
  63. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
  64. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
  65. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  66. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
  67. package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
  69. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  70. package/.next/standalone/.next/server/app/api/analytics/overview/route.js +1 -1
  71. package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/benchmark/run/route.js +1 -1
  75. package/.next/standalone/.next/server/app/api/benchmark/run/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js +1 -1
  77. package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/benchmark/runs/route.js +1 -1
  79. package/.next/standalone/.next/server/app/api/benchmark/runs/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/benchmark/status/route.js +1 -1
  81. package/.next/standalone/.next/server/app/api/benchmark/status/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/bulk/route.js +1 -1
  83. package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/config/route.js +1 -1
  85. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/cortex/context/route.js +1 -1
  87. package/.next/standalone/.next/server/app/api/cortex/context/route.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js +1 -1
  89. package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js +1 -1
  91. package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js +1 -1
  93. package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js +1 -1
  95. package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js +1 -1
  97. package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/api/cortex/export/route.js +1 -1
  99. package/.next/standalone/.next/server/app/api/cortex/export/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js +1 -1
  101. package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js +1 -1
  103. package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js +1 -1
  105. package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js.nft.json +1 -1
  106. package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js +1 -1
  107. package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js +1 -1
  109. package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js +1 -1
  111. package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js +1 -1
  113. package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js +1 -1
  115. package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/cortex/import/route.js +1 -1
  117. package/.next/standalone/.next/server/app/api/cortex/import/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/cortex/import/status/route.js +1 -1
  119. package/.next/standalone/.next/server/app/api/cortex/import/status/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js +1 -1
  121. package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js +1 -1
  123. package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js +1 -1
  125. package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js +1 -1
  127. package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/cortex/lobes/route.js +1 -1
  131. package/.next/standalone/.next/server/app/api/cortex/lobes/route.js.nft.json +1 -1
  132. package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js +1 -1
  133. package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js.nft.json +1 -1
  134. package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js +1 -1
  137. package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js +1 -1
  139. package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js +1 -1
  141. package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/cortex/search/route.js +1 -1
  143. package/.next/standalone/.next/server/app/api/cortex/search/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/cortex/settings/route.js +1 -1
  145. package/.next/standalone/.next/server/app/api/cortex/settings/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/cortex/status/route.js +1 -1
  147. package/.next/standalone/.next/server/app/api/cortex/status/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/cortex/timeline/route.js +1 -1
  149. package/.next/standalone/.next/server/app/api/cortex/timeline/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/cortex/usage/route.js +1 -1
  151. package/.next/standalone/.next/server/app/api/cortex/usage/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/events/route.js +1 -1
  155. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/files/route.js +1 -1
  157. package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/folders/route.js +1 -1
  159. package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/network/handshake/route.js +1 -1
  161. package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js +1 -1
  163. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/network/panes/route.js +1 -1
  165. package/.next/standalone/.next/server/app/api/network/panes/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/network/projects/route.js +1 -1
  167. package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/network/search/route.js +1 -1
  169. package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js +1 -1
  171. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js +1 -1
  173. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/network/sessions/route.js +1 -1
  175. package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +1 -1
  177. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/network/workspaces/route.js +1 -1
  179. package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js +1 -1
  181. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/panes/[id]/route.js +1 -1
  183. package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/panes/route.js +1 -1
  185. package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
  186. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  187. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js +1 -1
  189. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js +1 -1
  191. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/search/route.js +2 -2
  193. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +1 -1
  195. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +1 -1
  197. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +1 -1
  199. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/sessions/route.js +2 -2
  201. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/sync/route.js +1 -1
  203. package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/tags/route.js +1 -1
  205. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/tier/route.js +1 -1
  207. package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/whisper/config/route.js +1 -1
  209. package/.next/standalone/.next/server/app/api/whisper/config/route.js.nft.json +1 -1
  210. package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/wizard/chart/route/app-paths-manifest.json +3 -0
  212. package/.next/standalone/.next/server/app/api/wizard/chart/route/build-manifest.json +11 -0
  213. package/.next/standalone/.next/server/app/api/wizard/chart/route/server-reference-manifest.json +4 -0
  214. package/.next/standalone/.next/server/app/api/wizard/chart/route.js +7 -0
  215. package/.next/standalone/.next/server/app/api/wizard/chart/route.js.map +5 -0
  216. package/.next/standalone/.next/server/app/api/wizard/chart/route.js.nft.json +1 -0
  217. package/.next/standalone/.next/server/app/api/wizard/chart/route_client-reference-manifest.js +2 -0
  218. package/.next/standalone/.next/server/app/api/wizard/chat/route.js +1 -1
  219. package/.next/standalone/.next/server/app/api/wizard/chat/route.js.nft.json +1 -1
  220. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +1 -1
  221. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
  222. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +1 -1
  223. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
  224. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +1 -1
  225. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
  226. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +1 -1
  227. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
  228. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +1 -1
  229. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +1 -1
  231. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/api/workspaces/route.js +2 -2
  233. package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  234. package/.next/standalone/.next/server/app/cortex.html +1 -1
  235. package/.next/standalone/.next/server/app/cortex.rsc +3 -3
  236. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex/__PAGE__.segment.rsc +2 -2
  237. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex.segment.rsc +1 -1
  238. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  239. package/.next/standalone/.next/server/app/cortex.segments/_full.segment.rsc +3 -3
  240. package/.next/standalone/.next/server/app/cortex.segments/_head.segment.rsc +1 -1
  241. package/.next/standalone/.next/server/app/cortex.segments/_index.segment.rsc +2 -2
  242. package/.next/standalone/.next/server/app/cortex.segments/_tree.segment.rsc +2 -2
  243. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  244. package/.next/standalone/.next/server/app/login.html +1 -1
  245. package/.next/standalone/.next/server/app/login.rsc +2 -2
  246. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
  247. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  248. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
  249. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  250. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  251. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +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_client-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  255. package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
  256. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
  257. package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
  258. package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
  259. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
  260. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
  261. package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
  262. package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
  263. package/.next/standalone/.next/server/app/m/sessions/[id]/page.js.nft.json +1 -1
  264. package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
  265. package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
  266. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  267. package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
  268. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
  269. package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
  270. package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
  271. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
  272. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
  273. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
  274. package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
  275. package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  277. package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
  278. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
  279. package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
  280. package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
  281. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
  282. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
  283. package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
  284. package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
  285. package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
  286. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  287. package/.next/standalone/.next/server/app/m/terminal.rsc +3 -3
  288. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +3 -3
  289. package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
  290. package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
  291. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
  292. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +2 -2
  293. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
  294. package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
  295. package/.next/standalone/.next/server/app/m.html +1 -1
  296. package/.next/standalone/.next/server/app/m.rsc +2 -2
  297. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
  298. package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
  299. package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
  300. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
  301. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
  302. package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
  303. package/.next/standalone/.next/server/app/network.html +1 -1
  304. package/.next/standalone/.next/server/app/network.rsc +2 -2
  305. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
  306. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
  307. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  308. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
  309. package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
  310. package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
  311. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
  312. package/.next/standalone/.next/server/app/projects.html +1 -1
  313. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  314. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
  315. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
  316. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  317. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  318. package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  319. package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  320. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  321. package/.next/standalone/.next/server/app/sessions.html +1 -1
  322. package/.next/standalone/.next/server/app/sessions.rsc +2 -2
  323. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
  324. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
  325. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  326. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
  327. package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  328. package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
  329. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  330. package/.next/standalone/.next/server/app/settings.html +1 -1
  331. package/.next/standalone/.next/server/app/settings.rsc +2 -2
  332. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
  333. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
  334. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  335. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  336. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  337. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  338. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  339. package/.next/standalone/.next/server/app/terminal.html +1 -1
  340. package/.next/standalone/.next/server/app/terminal.rsc +3 -3
  341. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
  342. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
  343. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  344. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +3 -3
  345. package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  346. package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
  347. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
  348. package/.next/standalone/.next/server/app/vr/page/react-loadable-manifest.json +1 -1
  349. package/.next/standalone/.next/server/app/vr/page_client-reference-manifest.js +1 -1
  350. package/.next/standalone/.next/server/app/vr.html +1 -1
  351. package/.next/standalone/.next/server/app/vr.rsc +3 -3
  352. package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +3 -3
  353. package/.next/standalone/.next/server/app/vr.segments/_head.segment.rsc +1 -1
  354. package/.next/standalone/.next/server/app/vr.segments/_index.segment.rsc +2 -2
  355. package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +2 -2
  356. package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +2 -2
  357. package/.next/standalone/.next/server/app/vr.segments/vr.segment.rsc +1 -1
  358. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  359. package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
  360. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
  361. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
  362. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  363. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
  364. package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
  365. package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
  366. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  367. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  368. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00e90fc6._.js +98 -0
  369. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01ab8675._.js +98 -0
  370. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03974f05._.js +98 -0
  371. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__bb331da9._.js → [root-of-the-server]__046c9b91._.js} +3 -3
  372. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04ae6bf0._.js +98 -0
  373. package/.next/standalone/.next/server/chunks/[root-of-the-server]__056fa416._.js +1 -1
  374. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ac4ea3f._.js +3 -0
  375. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b8e64cb._.js +98 -0
  376. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d95165f0._.js → [root-of-the-server]__0facd39e._.js} +3 -3
  377. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10bc76a3._.js +3 -0
  378. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__9d68157b._.js → [root-of-the-server]__115f3934._.js} +3 -3
  379. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11f155f1._.js +3 -0
  380. package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +22 -33
  381. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__91e23c96._.js → [root-of-the-server]__17a3b966._.js} +3 -3
  382. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__277d9445._.js → [root-of-the-server]__17d3a2b2._.js} +3 -3
  383. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a86c055._.js +98 -0
  384. package/.next/standalone/.next/server/chunks/[root-of-the-server]__20b5e9c4._.js +3 -0
  385. package/.next/standalone/.next/server/chunks/[root-of-the-server]__28d6fbd8._.js +98 -0
  386. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04f04898._.js → [root-of-the-server]__2a3f866b._.js} +2 -2
  387. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__a95bb38b._.js → [root-of-the-server]__316617e7._.js} +2 -2
  388. package/.next/standalone/.next/server/chunks/[root-of-the-server]__32ad8f71._.js +98 -0
  389. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__6fe5e6c8._.js → [root-of-the-server]__35457394._.js} +2 -2
  390. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1f054c65._.js → [root-of-the-server]__35de78e6._.js} +3 -3
  391. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3685ffcb._.js +98 -0
  392. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__614458b7._.js → [root-of-the-server]__38954988._.js} +3 -3
  393. package/.next/standalone/.next/server/chunks/[root-of-the-server]__426ad936._.js +106 -0
  394. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4985c034._.js +98 -0
  395. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c6ce9ed._.js +98 -0
  396. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cebe58a._.js +98 -0
  397. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d5e4789._.js +98 -0
  398. package/.next/standalone/.next/server/chunks/[root-of-the-server]__65676930._.js +3 -0
  399. package/.next/standalone/.next/server/chunks/[root-of-the-server]__67cab326._.js +58 -0
  400. package/.next/standalone/.next/server/chunks/[root-of-the-server]__698c6f01._.js +98 -0
  401. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c64af29._.js +131 -0
  402. package/.next/standalone/.next/server/chunks/[root-of-the-server]__73aed9f5._.js +98 -0
  403. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__ac84b704._.js → [root-of-the-server]__79b6a9bb._.js} +3 -3
  404. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e56abacf._.js → [root-of-the-server]__7db704c6._.js} +4 -4
  405. package/.next/standalone/.next/server/chunks/[root-of-the-server]__812ca02b._.js +98 -0
  406. package/.next/standalone/.next/server/chunks/[root-of-the-server]__821f50fa._.js +98 -0
  407. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8716b86e._.js +98 -0
  408. package/.next/standalone/.next/server/chunks/[root-of-the-server]__884ef754._.js +98 -0
  409. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88cdbd68._.js +98 -0
  410. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89d9aba9._.js +98 -0
  411. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8d536cb5._.js +98 -0
  412. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8df8c5d1._.js +98 -0
  413. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2d7a454e._.js → [root-of-the-server]__8f2ccc41._.js} +3 -3
  414. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2a2c5fc5._.js → [root-of-the-server]__95c9d682._.js} +4 -4
  415. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e5d7774._.js +98 -0
  416. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__cc6e2885._.js → [root-of-the-server]__9edcff87._.js} +2 -2
  417. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a049dfc2._.js +98 -0
  418. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a5b4bb9a._.js +98 -0
  419. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__929ea03a._.js → [root-of-the-server]__a83262a1._.js} +2 -2
  420. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9cd1240._.js +98 -0
  421. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9d7f822._.js +98 -0
  422. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad08c221._.js +98 -0
  423. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad585f2f._.js +98 -0
  424. package/.next/standalone/.next/server/chunks/[root-of-the-server]__afcb8f7d._.js +98 -0
  425. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bc250d43._.js +98 -0
  426. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bce2a6e7._.js +98 -0
  427. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c011bf91._.js +98 -0
  428. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c0ac2895._.js +3 -0
  429. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c130a00c._.js +1 -1
  430. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c37d6380._.js +3 -0
  431. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cae392eb._.js +98 -0
  432. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cc2616bb._.js +3 -3
  433. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d501fa9b._.js +98 -0
  434. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d59c6c15._.js +98 -0
  435. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d5c1db32._.js +98 -0
  436. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d5d92527._.js +1 -1
  437. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dba60c86._.js +98 -0
  438. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2384f98e._.js → [root-of-the-server]__de14b9ae._.js} +3 -3
  439. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e10643d1._.js +98 -0
  440. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__00fdfbda._.js → [root-of-the-server]__e2a996e5._.js} +2 -2
  441. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__4d903941._.js → [root-of-the-server]__e3477417._.js} +3 -3
  442. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__32dc5513._.js → [root-of-the-server]__e4db362e._.js} +2 -2
  443. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__49e42a3a._.js → [root-of-the-server]__e4e70b86._.js} +3 -3
  444. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__ac39ecc7._.js → [root-of-the-server]__e54925af._.js} +3 -3
  445. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8edc5b0._.js +98 -0
  446. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__eafd040b._.js → [root-of-the-server]__eab4d83b._.js} +2 -2
  447. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ead29015._.js +1 -1
  448. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__194955d4._.js → [root-of-the-server]__f056fd83._.js} +3 -3
  449. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f0e99572._.js +98 -0
  450. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fe1e16d0._.js +98 -0
  451. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ff9cd277._.js +98 -0
  452. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ffaea2ce._.js +98 -0
  453. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wizard_chart_route_actions_888e2ec1.js +3 -0
  454. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2cffc362._.js +3 -0
  455. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__f1050870._.js → [root-of-the-server]__47c97637._.js} +2 -2
  456. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
  457. package/.next/standalone/.next/server/chunks/ssr/_17b946fd._.js +3 -0
  458. package/.next/standalone/.next/server/chunks/ssr/_2a1d79e7._.js +1 -1
  459. package/.next/standalone/.next/server/chunks/ssr/_5c3c4cfa._.js +7 -5
  460. package/.next/standalone/.next/server/chunks/ssr/_ba432382._.js +7 -5
  461. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_cortex_page_tsx_0f33d8b3._.js +1 -1
  462. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +4 -4
  463. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__90eeddae._.js +1 -1
  464. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  465. package/.next/standalone/.next/server/pages/404.html +1 -1
  466. package/.next/standalone/.next/server/pages/500.html +2 -2
  467. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  468. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  469. package/.next/standalone/.next/static/chunks/0852575eb90c1e8d.js +85 -0
  470. package/.next/standalone/.next/static/chunks/{74d0ac0b1d0a1b79.js → 10b00b4f66102dcf.js} +1 -1
  471. package/.next/standalone/.next/static/chunks/{16eb77953dee9ea3.js → 19c71a8376c23c58.js} +1 -1
  472. package/.next/standalone/.next/static/chunks/2b769d1597e4fc1c.css +3 -0
  473. package/.next/standalone/.next/static/chunks/{3e91fc608659c524.js → 350271fe79509caf.js} +1 -1
  474. package/.next/standalone/.next/static/chunks/{70423c7afd8abf5f.js → 597847c22200c212.js} +1 -1
  475. package/.next/standalone/.next/static/chunks/{fb0abd1933b2b2e1.js → 7f6a14f1849fa94d.js} +1 -1
  476. package/.next/standalone/.next/static/chunks/{7ecd9bbb0ce4d68a.js → b7c8fe9b7275a84f.js} +1 -1
  477. package/.next/standalone/.next/static/chunks/{6245135a7afb8c7b.js → c9b10fc55516d142.js} +8 -6
  478. package/.next/standalone/.next/static/chunks/d0065f48eab94944.js +1 -0
  479. package/.next/standalone/.next/static/chunks/{180c1b9ff31b979f.js → f7b34c807badf95d.js} +8 -6
  480. package/.next/standalone/.spaces/cortex-context.md +50 -144
  481. package/.next/standalone/LICENSE +661 -661
  482. package/.next/standalone/NOTICE +5 -5
  483. package/.next/standalone/README.md +131 -131
  484. package/.next/standalone/bin/cortex-hook.js +79 -79
  485. package/.next/standalone/bin/cortex-hook.sh +62 -62
  486. package/.next/standalone/bin/cortex-learn-hook.js +138 -138
  487. package/.next/standalone/bin/cortex-mcp.js +60 -60
  488. package/.next/standalone/bin/cortex-pi-extension.ts +170 -170
  489. package/.next/standalone/bin/fix-standalone-externals.js +79 -79
  490. package/.next/standalone/bin/lib/auto-setup.js +110 -110
  491. package/.next/standalone/bin/mdns-service.js +171 -171
  492. package/.next/standalone/bin/postinstall.js +35 -35
  493. package/.next/standalone/bin/setup-admin.js +195 -195
  494. package/.next/standalone/bin/spaces-dev.js +247 -247
  495. package/.next/standalone/bin/spaces-install.js +660 -660
  496. package/.next/standalone/bin/spaces-postinstall.js +50 -50
  497. package/.next/standalone/bin/spaces-reset-totp.js +50 -50
  498. package/.next/standalone/bin/spaces-service.js +1046 -1046
  499. package/.next/standalone/bin/spaces-setup.js +253 -253
  500. package/.next/standalone/bin/spaces.js +808 -805
  501. package/.next/standalone/bin/ssh-auth-keys.sh +68 -68
  502. package/.next/standalone/bin/terminal-server.js +2819 -2781
  503. package/.next/standalone/cortex-hook-debug.log +57 -23
  504. package/.next/standalone/docker-compose.yml +28 -28
  505. package/.next/standalone/docs/architecture.md +387 -387
  506. package/.next/standalone/docs/cortex-integration-reference.md +268 -268
  507. package/.next/standalone/docs/cortex.md +293 -293
  508. package/.next/standalone/docs/getting-started.md +96 -96
  509. package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-design.md +133 -133
  510. package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-plan.md +959 -959
  511. package/.next/standalone/docs/plans/2026-03-02-security-audit.md +229 -229
  512. package/.next/standalone/docs/plans/2026-03-07-service-command-design.md +146 -146
  513. package/.next/standalone/docs/plans/2026-03-07-service-command-plan.md +254 -254
  514. package/.next/standalone/docs/server-install.md +564 -564
  515. package/.next/standalone/docs/social-card.html +150 -150
  516. package/.next/standalone/docs/superpowers/plans/2026-03-12-spaces-cortex.md +5270 -5270
  517. package/.next/standalone/docs/superpowers/plans/2026-03-13-cortex-wiring.md +1387 -1387
  518. package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-entity-graph.md +1923 -1923
  519. package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-knowledge-evolution.md +1113 -1113
  520. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-boundary-engine.md +853 -853
  521. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-context-engine.md +1274 -1274
  522. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-signal-ingestion.md +933 -933
  523. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-lobes.md +1080 -1080
  524. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-gravity-system.md +768 -768
  525. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-ui.md +1108 -1108
  526. package/.next/standalone/docs/superpowers/plans/2026-03-18-cortex-ui-integration.md +1846 -1846
  527. package/.next/standalone/docs/superpowers/plans/2026-03-19-vr-phase1-shell.md +1639 -1639
  528. package/.next/standalone/docs/superpowers/plans/2026-03-27-dockview-pane-layout.md +98 -98
  529. package/.next/standalone/docs/superpowers/specs/2026-03-11-universe-view-design.md +320 -320
  530. package/.next/standalone/docs/superpowers/specs/2026-03-12-spaces-brain-design.md +720 -720
  531. package/.next/standalone/docs/superpowers/specs/2026-03-13-cortex-wiring-design.md +268 -268
  532. package/.next/standalone/docs/superpowers/specs/2026-03-14-cortex-v2-design.md +623 -623
  533. package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-lobes-design.md +263 -263
  534. package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-v2-ui-design.md +240 -240
  535. package/.next/standalone/docs/superpowers/specs/2026-03-16-pane-ux-design.md +77 -77
  536. package/.next/standalone/docs/superpowers/specs/2026-03-18-cortex-ui-integration-design.md +341 -341
  537. package/.next/standalone/docs/superpowers/specs/2026-03-19-vr-phase1-shell-design.md +288 -288
  538. package/.next/standalone/docs/superpowers/specs/2026-03-27-pane-diff-review-and-project-wizard-design.md +322 -322
  539. package/.next/standalone/docs/tiers.md +104 -104
  540. package/.next/standalone/eslint.config.mjs +18 -18
  541. package/.next/standalone/next.config.ts +20 -20
  542. package/.next/standalone/nginx.conf +53 -53
  543. package/.next/standalone/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64.node +0 -0
  544. package/.next/standalone/node_modules/@img/{sharp-linux-x64 → sharp-win32-x64}/package.json +39 -46
  545. package/.next/standalone/package-lock.json +14985 -14986
  546. package/.next/standalone/package.json +111 -111
  547. package/.next/standalone/postcss.config.mjs +7 -7
  548. package/.next/standalone/scripts/rebuild.cmd +65 -65
  549. package/.next/standalone/scripts/rebuild.sh +59 -59
  550. package/.next/standalone/server.js +1 -1
  551. package/.next/standalone/src/app/(desktop)/admin/analytics/page.tsx +266 -266
  552. package/.next/standalone/src/app/(desktop)/admin/users/page.tsx +399 -399
  553. package/.next/standalone/src/app/(desktop)/analytics/page.tsx +166 -166
  554. package/.next/standalone/src/app/(desktop)/cortex/page.tsx +81 -81
  555. package/.next/standalone/src/app/(desktop)/dashboard-client.tsx +56 -56
  556. package/.next/standalone/src/app/(desktop)/layout.tsx +18 -18
  557. package/.next/standalone/src/app/(desktop)/network/page.tsx +137 -137
  558. package/.next/standalone/src/app/(desktop)/page.tsx +17 -17
  559. package/.next/standalone/src/app/(desktop)/projects/page.tsx +68 -68
  560. package/.next/standalone/src/app/(desktop)/sessions/[id]/page.tsx +519 -519
  561. package/.next/standalone/src/app/(desktop)/sessions/page.tsx +145 -145
  562. package/.next/standalone/src/app/(desktop)/settings/page.tsx +446 -446
  563. package/.next/standalone/src/app/(desktop)/terminal/layout.tsx +7 -7
  564. package/.next/standalone/src/app/(desktop)/terminal/page.tsx +1330 -1291
  565. package/.next/standalone/src/app/(desktop)/terminal/pane/[id]/page.tsx +211 -211
  566. package/.next/standalone/src/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page.tsx +252 -252
  567. package/.next/standalone/src/app/(desktop)/workspaces/page.tsx +12 -12
  568. package/.next/standalone/src/app/api/admin/analytics/route.ts +10 -10
  569. package/.next/standalone/src/app/api/admin/users/[id]/route.ts +20 -20
  570. package/.next/standalone/src/app/api/admin/users/route.ts +15 -15
  571. package/.next/standalone/src/app/api/analytics/overview/route.ts +80 -80
  572. package/.next/standalone/src/app/api/auth/login/route.ts +10 -10
  573. package/.next/standalone/src/app/api/auth/logout/route.ts +9 -9
  574. package/.next/standalone/src/app/api/auth/me/route.ts +22 -22
  575. package/.next/standalone/src/app/api/auth/totp/setup/route.ts +10 -10
  576. package/.next/standalone/src/app/api/auth/totp/status/route.ts +10 -10
  577. package/.next/standalone/src/app/api/auth/totp/verify/route.ts +10 -10
  578. package/.next/standalone/src/app/api/benchmark/lobes/route.ts +16 -16
  579. package/.next/standalone/src/app/api/benchmark/run/route.ts +113 -92
  580. package/.next/standalone/src/app/api/benchmark/runs/[id]/route.ts +26 -26
  581. package/.next/standalone/src/app/api/benchmark/runs/route.ts +16 -16
  582. package/.next/standalone/src/app/api/benchmark/status/route.ts +35 -35
  583. package/.next/standalone/src/app/api/bulk/route.ts +34 -34
  584. package/.next/standalone/src/app/api/chat/route.ts +85 -85
  585. package/.next/standalone/src/app/api/config/route.ts +30 -30
  586. package/.next/standalone/src/app/api/cortex/context/route.ts +78 -78
  587. package/.next/standalone/src/app/api/cortex/curation/assess/route.ts +27 -27
  588. package/.next/standalone/src/app/api/cortex/curation/publish/route.ts +23 -23
  589. package/.next/standalone/src/app/api/cortex/curation/refine/route.ts +23 -23
  590. package/.next/standalone/src/app/api/cortex/curation/review/route.ts +29 -29
  591. package/.next/standalone/src/app/api/cortex/curation/seed/route.ts +23 -23
  592. package/.next/standalone/src/app/api/cortex/export/route.ts +40 -40
  593. package/.next/standalone/src/app/api/cortex/federation/pending/route.ts +20 -20
  594. package/.next/standalone/src/app/api/cortex/federation/resolve/route.ts +43 -43
  595. package/.next/standalone/src/app/api/cortex/federation/search/route.ts +35 -35
  596. package/.next/standalone/src/app/api/cortex/federation/teach/route.ts +76 -76
  597. package/.next/standalone/src/app/api/cortex/graph/edges/route.ts +112 -112
  598. package/.next/standalone/src/app/api/cortex/graph/entities/[id]/route.ts +73 -73
  599. package/.next/standalone/src/app/api/cortex/graph/entities/route.ts +75 -75
  600. package/.next/standalone/src/app/api/cortex/graph/populate/route.ts +203 -203
  601. package/.next/standalone/src/app/api/cortex/import/route.ts +75 -75
  602. package/.next/standalone/src/app/api/cortex/import/status/route.ts +15 -15
  603. package/.next/standalone/src/app/api/cortex/ingest/bootstrap/route.ts +39 -39
  604. package/.next/standalone/src/app/api/cortex/ingest/status/route.ts +15 -15
  605. package/.next/standalone/src/app/api/cortex/knowledge/[id]/route.ts +91 -91
  606. package/.next/standalone/src/app/api/cortex/knowledge/route.ts +97 -97
  607. package/.next/standalone/src/app/api/cortex/lobes/[id]/route.ts +67 -67
  608. package/.next/standalone/src/app/api/cortex/lobes/route.ts +22 -22
  609. package/.next/standalone/src/app/api/cortex/lobes/share/route.ts +80 -80
  610. package/.next/standalone/src/app/api/cortex/marketplace/browse/route.ts +43 -43
  611. package/.next/standalone/src/app/api/cortex/marketplace/preview/route.ts +46 -46
  612. package/.next/standalone/src/app/api/cortex/mcp/call/route.ts +11 -11
  613. package/.next/standalone/src/app/api/cortex/mcp/tools/route.ts +8 -8
  614. package/.next/standalone/src/app/api/cortex/search/route.ts +57 -45
  615. package/.next/standalone/src/app/api/cortex/settings/route.ts +35 -35
  616. package/.next/standalone/src/app/api/cortex/status/route.ts +169 -169
  617. package/.next/standalone/src/app/api/cortex/timeline/route.ts +42 -42
  618. package/.next/standalone/src/app/api/cortex/usage/route.ts +31 -31
  619. package/.next/standalone/src/app/api/cortex/workspace/[id]/context/route.ts +41 -41
  620. package/.next/standalone/src/app/api/events/route.ts +40 -40
  621. package/.next/standalone/src/app/api/files/route.ts +187 -187
  622. package/.next/standalone/src/app/api/folders/route.ts +107 -97
  623. package/.next/standalone/src/app/api/network/connect-callback/route.ts +11 -11
  624. package/.next/standalone/src/app/api/network/connect-request/[id]/route.ts +11 -11
  625. package/.next/standalone/src/app/api/network/connect-request/route.ts +17 -17
  626. package/.next/standalone/src/app/api/network/discovered/route.ts +9 -9
  627. package/.next/standalone/src/app/api/network/handshake/route.ts +25 -25
  628. package/.next/standalone/src/app/api/network/health/route.ts +10 -10
  629. package/.next/standalone/src/app/api/network/identity/route.ts +15 -15
  630. package/.next/standalone/src/app/api/network/keys/[id]/route.ts +10 -10
  631. package/.next/standalone/src/app/api/network/keys/route.ts +15 -15
  632. package/.next/standalone/src/app/api/network/nodes/[id]/route.ts +15 -15
  633. package/.next/standalone/src/app/api/network/nodes/check/route.ts +9 -9
  634. package/.next/standalone/src/app/api/network/nodes/route.ts +15 -15
  635. package/.next/standalone/src/app/api/network/panes/[id]/route.ts +78 -62
  636. package/.next/standalone/src/app/api/network/panes/route.ts +61 -50
  637. package/.next/standalone/src/app/api/network/projects/route.ts +32 -25
  638. package/.next/standalone/src/app/api/network/proxy/[nodeId]/[...path]/route.ts +25 -25
  639. package/.next/standalone/src/app/api/network/search/route.ts +45 -38
  640. package/.next/standalone/src/app/api/network/sessions/[id]/messages/route.ts +43 -36
  641. package/.next/standalone/src/app/api/network/sessions/[id]/route.ts +41 -34
  642. package/.next/standalone/src/app/api/network/sessions/route.ts +50 -43
  643. package/.next/standalone/src/app/api/network/terminal/token/route.ts +10 -10
  644. package/.next/standalone/src/app/api/network/workspaces/[id]/route.ts +80 -71
  645. package/.next/standalone/src/app/api/network/workspaces/route.ts +87 -85
  646. package/.next/standalone/src/app/api/panes/[id]/diff/route.ts +121 -121
  647. package/.next/standalone/src/app/api/panes/[id]/route.ts +60 -60
  648. package/.next/standalone/src/app/api/panes/route.ts +39 -39
  649. package/.next/standalone/src/app/api/projects/route.ts +13 -13
  650. package/.next/standalone/src/app/api/proxy/models/[modelId]/[...path]/route.ts +80 -80
  651. package/.next/standalone/src/app/api/proxy/models/[modelId]/status/route.ts +33 -33
  652. package/.next/standalone/src/app/api/search/route.ts +47 -47
  653. package/.next/standalone/src/app/api/sessions/[id]/chat/route.ts +120 -120
  654. package/.next/standalone/src/app/api/sessions/[id]/messages/route.ts +34 -34
  655. package/.next/standalone/src/app/api/sessions/[id]/route.ts +73 -73
  656. package/.next/standalone/src/app/api/sessions/route.ts +64 -64
  657. package/.next/standalone/src/app/api/sync/route.ts +24 -24
  658. package/.next/standalone/src/app/api/tags/route.ts +35 -35
  659. package/.next/standalone/src/app/api/tier/route.ts +16 -16
  660. package/.next/standalone/src/app/api/updates/route.ts +65 -65
  661. package/.next/standalone/src/app/api/whisper/config/route.ts +50 -42
  662. package/.next/standalone/src/app/api/whisper/route.ts +91 -91
  663. package/.next/standalone/src/app/api/wizard/chart/route.ts +129 -0
  664. package/.next/standalone/src/app/api/wizard/chat/route.ts +113 -113
  665. package/.next/standalone/src/app/api/workspaces/[id]/context/[key]/route.ts +39 -39
  666. package/.next/standalone/src/app/api/workspaces/[id]/context/route.ts +28 -28
  667. package/.next/standalone/src/app/api/workspaces/[id]/messages/[msgId]/route.ts +17 -17
  668. package/.next/standalone/src/app/api/workspaces/[id]/messages/route.ts +39 -39
  669. package/.next/standalone/src/app/api/workspaces/[id]/route.ts +47 -47
  670. package/.next/standalone/src/app/api/workspaces/[id]/sessions/route.ts +62 -62
  671. package/.next/standalone/src/app/api/workspaces/route.ts +79 -79
  672. package/.next/standalone/src/app/globals.css +88 -88
  673. package/.next/standalone/src/app/layout.tsx +33 -33
  674. package/.next/standalone/src/app/login/layout.tsx +7 -7
  675. package/.next/standalone/src/app/login/page.tsx +315 -315
  676. package/.next/standalone/src/app/m/layout.tsx +16 -16
  677. package/.next/standalone/src/app/m/page.tsx +118 -118
  678. package/.next/standalone/src/app/m/projects/page.tsx +64 -64
  679. package/.next/standalone/src/app/m/sessions/[id]/page.tsx +168 -168
  680. package/.next/standalone/src/app/m/sessions/page.tsx +177 -177
  681. package/.next/standalone/src/app/m/settings/page.tsx +230 -230
  682. package/.next/standalone/src/app/m/terminal/page.tsx +413 -413
  683. package/.next/standalone/src/app/vr/page.tsx +21 -21
  684. package/.next/standalone/src/app/vr/vr-app.tsx +163 -163
  685. package/.next/standalone/src/app/vr/vr-controls.tsx +139 -139
  686. package/.next/standalone/src/app/vr/vr-door.tsx +82 -82
  687. package/.next/standalone/src/app/vr/vr-environment.tsx +71 -71
  688. package/.next/standalone/src/app/vr/vr-gaze.tsx +89 -89
  689. package/.next/standalone/src/app/vr/vr-layout.ts +49 -49
  690. package/.next/standalone/src/app/vr/vr-lobby.tsx +97 -97
  691. package/.next/standalone/src/app/vr/vr-pane.tsx +195 -195
  692. package/.next/standalone/src/app/vr/vr-room.tsx +79 -79
  693. package/.next/standalone/src/app/vr/vr-terminal.tsx +303 -303
  694. package/.next/standalone/src/components/auth/totp-gate.tsx +183 -183
  695. package/.next/standalone/src/components/bus/activity-panel.tsx +261 -261
  696. package/.next/standalone/src/components/common/color-picker.tsx +35 -35
  697. package/.next/standalone/src/components/common/dev-directory-picker.tsx +339 -339
  698. package/.next/standalone/src/components/common/folder-picker.tsx +200 -200
  699. package/.next/standalone/src/components/common/tag-picker.tsx +190 -190
  700. package/.next/standalone/src/components/common/workspace-picker.tsx +113 -113
  701. package/.next/standalone/src/components/cortex/benchmark-tab.tsx +894 -880
  702. package/.next/standalone/src/components/cortex/constants.ts +29 -29
  703. package/.next/standalone/src/components/cortex/cortex-dashboard.tsx +304 -304
  704. package/.next/standalone/src/components/cortex/cortex-indicator.tsx +44 -44
  705. package/.next/standalone/src/components/cortex/cortex-panel.tsx +140 -140
  706. package/.next/standalone/src/components/cortex/cortex-settings.tsx +280 -280
  707. package/.next/standalone/src/components/cortex/curation-tab.tsx +810 -810
  708. package/.next/standalone/src/components/cortex/entity-detail.tsx +101 -101
  709. package/.next/standalone/src/components/cortex/entity-graph.tsx +382 -382
  710. package/.next/standalone/src/components/cortex/import-dialog.tsx +212 -212
  711. package/.next/standalone/src/components/cortex/injection-badge.tsx +72 -72
  712. package/.next/standalone/src/components/cortex/knowledge-card.tsx +109 -109
  713. package/.next/standalone/src/components/cortex/knowledge-tab.tsx +158 -158
  714. package/.next/standalone/src/components/cortex/lobe-settings.tsx +215 -215
  715. package/.next/standalone/src/components/cortex/marketplace-card.tsx +126 -126
  716. package/.next/standalone/src/components/cortex/marketplace-tab.tsx +113 -113
  717. package/.next/standalone/src/components/dashboard/activity-chart.tsx +41 -41
  718. package/.next/standalone/src/components/dashboard/model-usage-chart.tsx +61 -61
  719. package/.next/standalone/src/components/dashboard/recent-sessions.tsx +68 -68
  720. package/.next/standalone/src/components/dashboard/stats-cards.tsx +36 -36
  721. package/.next/standalone/src/components/files/file-explorer.tsx +703 -703
  722. package/.next/standalone/src/components/layout/providers.tsx +38 -38
  723. package/.next/standalone/src/components/layout/sidebar.tsx +170 -170
  724. package/.next/standalone/src/components/layout/tier-provider.tsx +53 -53
  725. package/.next/standalone/src/components/layout/update-banner.tsx +92 -92
  726. package/.next/standalone/src/components/mobile/bottom-nav.tsx +46 -46
  727. package/.next/standalone/src/components/mobile/immersive-voice-button.tsx +123 -123
  728. package/.next/standalone/src/components/mobile/mobile-chat-input.tsx +244 -244
  729. package/.next/standalone/src/components/mobile/mobile-header.tsx +44 -44
  730. package/.next/standalone/src/components/mobile/mobile-session-card.tsx +56 -56
  731. package/.next/standalone/src/components/mobile/mobile-terminal-input.tsx +74 -74
  732. package/.next/standalone/src/components/mobile/mobile-terminal-pane.tsx +302 -302
  733. package/.next/standalone/src/components/mobile/mobile-terminal-toolbar.tsx +76 -76
  734. package/.next/standalone/src/components/mobile/pull-to-refresh.tsx +82 -82
  735. package/.next/standalone/src/components/mobile/voice-input.tsx +53 -53
  736. package/.next/standalone/src/components/network/api-key-list.tsx +190 -190
  737. package/.next/standalone/src/components/network/connection-requests.tsx +94 -94
  738. package/.next/standalone/src/components/network/node-add-dialog.tsx +131 -131
  739. package/.next/standalone/src/components/network/node-badge.tsx +26 -26
  740. package/.next/standalone/src/components/network/node-list.tsx +207 -207
  741. package/.next/standalone/src/components/network/node-selector.tsx +49 -49
  742. package/.next/standalone/src/components/sessions/session-filters.tsx +116 -116
  743. package/.next/standalone/src/components/sessions/session-list.tsx +485 -485
  744. package/.next/standalone/src/components/terminal/pane-diff-panel.tsx +179 -179
  745. package/.next/standalone/src/components/terminal/terminal-pane.tsx +1530 -1464
  746. package/.next/standalone/src/components/viewer/chat-input.tsx +275 -275
  747. package/.next/standalone/src/components/viewer/message-renderer.tsx +551 -551
  748. package/.next/standalone/src/components/wizard/chart-wizard.tsx +405 -0
  749. package/.next/standalone/src/components/wizard/project-wizard.tsx +153 -153
  750. package/.next/standalone/src/components/wizard/wizard-chat.tsx +99 -99
  751. package/.next/standalone/src/components/wizard/wizard-plan-summary.tsx +103 -103
  752. package/.next/standalone/src/components/wizard/wizard-review.tsx +225 -225
  753. package/.next/standalone/src/components/workspace/universe-cluster.tsx +131 -131
  754. package/.next/standalone/src/components/workspace/universe-orb.tsx +128 -128
  755. package/.next/standalone/src/components/workspace/universe-types.ts +22 -22
  756. package/.next/standalone/src/components/workspace/universe-utils.ts +11 -11
  757. package/.next/standalone/src/components/workspace/universe-view.tsx +397 -397
  758. package/.next/standalone/src/components/workspace/workspace-chooser.tsx +634 -634
  759. package/.next/standalone/src/hooks/use-benchmark.ts +72 -71
  760. package/.next/standalone/src/hooks/use-bus.ts +147 -147
  761. package/.next/standalone/src/hooks/use-idle-detection.ts +79 -79
  762. package/.next/standalone/src/hooks/use-network.ts +229 -229
  763. package/.next/standalone/src/hooks/use-sessions.ts +437 -437
  764. package/.next/standalone/src/hooks/use-speech-recognition.ts +114 -113
  765. package/.next/standalone/src/hooks/use-sse.ts +35 -35
  766. package/.next/standalone/src/hooks/use-tier.ts +39 -39
  767. package/.next/standalone/src/lib/agents.ts +97 -97
  768. package/.next/standalone/src/lib/aider/parser.ts +111 -111
  769. package/.next/standalone/src/lib/api.ts +19 -19
  770. package/.next/standalone/src/lib/auth.ts +47 -47
  771. package/.next/standalone/src/lib/claude/parser.ts +212 -212
  772. package/.next/standalone/src/lib/claude/stats.ts +204 -204
  773. package/.next/standalone/src/lib/codex/parser.test.ts +111 -111
  774. package/.next/standalone/src/lib/codex/parser.ts +287 -287
  775. package/.next/standalone/src/lib/config.ts +132 -132
  776. package/.next/standalone/src/lib/cortex/benchmark.ts +83 -67
  777. package/.next/standalone/src/lib/cortex/config.ts +42 -42
  778. package/.next/standalone/src/lib/cortex/debug.ts +10 -10
  779. package/.next/standalone/src/lib/cortex/distillation/usage-store.ts +18 -18
  780. package/.next/standalone/src/lib/cortex/graph/resolver.ts +10 -10
  781. package/.next/standalone/src/lib/cortex/graph/types.ts +22 -22
  782. package/.next/standalone/src/lib/cortex/index.ts +109 -56
  783. package/.next/standalone/src/lib/cortex/ingestion/bootstrap.ts +14 -14
  784. package/.next/standalone/src/lib/cortex/knowledge/compat.ts +14 -14
  785. package/.next/standalone/src/lib/cortex/knowledge/contradiction.ts +10 -10
  786. package/.next/standalone/src/lib/cortex/knowledge/types.ts +67 -67
  787. package/.next/standalone/src/lib/cortex/lobes/config.ts +16 -16
  788. package/.next/standalone/src/lib/cortex/lobes/resolver.ts +8 -8
  789. package/.next/standalone/src/lib/cortex/lobes/shares.ts +14 -14
  790. package/.next/standalone/src/lib/cortex/mcp/server.ts +12 -12
  791. package/.next/standalone/src/lib/cortex/portability/exporter.ts +6 -6
  792. package/.next/standalone/src/lib/cortex/portability/importer.ts +10 -10
  793. package/.next/standalone/src/lib/cortex/retrieval/context-engine.ts +10 -10
  794. package/.next/standalone/src/lib/cortex/types.ts +39 -39
  795. package/.next/standalone/src/lib/cost-calculator.ts +48 -48
  796. package/.next/standalone/src/lib/db/init.ts +71 -71
  797. package/.next/standalone/src/lib/db/queries.ts +740 -827
  798. package/.next/standalone/src/lib/db/schema.ts +206 -206
  799. package/.next/standalone/src/lib/events/sse.ts +36 -36
  800. package/.next/standalone/src/lib/forge/parser.ts +52 -52
  801. package/.next/standalone/src/lib/gemini/parser.ts +258 -258
  802. package/.next/standalone/src/lib/license.ts +56 -56
  803. package/.next/standalone/src/lib/pro.ts +31 -31
  804. package/.next/standalone/src/lib/shell-user.ts +101 -0
  805. package/.next/standalone/src/lib/sync/indexer.ts +504 -504
  806. package/.next/standalone/src/lib/sync/watcher.ts +64 -64
  807. package/.next/standalone/src/lib/teams.ts +31 -31
  808. package/.next/standalone/src/lib/telemetry.ts +75 -75
  809. package/.next/standalone/src/lib/terminal/server.ts +188 -188
  810. package/.next/standalone/src/lib/tier.ts +38 -38
  811. package/.next/standalone/src/lib/utils.ts +72 -72
  812. package/.next/standalone/src/lib/vms/manager.ts +121 -121
  813. package/.next/standalone/src/middleware.ts +133 -133
  814. package/.next/standalone/src/types/claude.ts +208 -208
  815. package/.next/standalone/src/types/network.ts +61 -61
  816. package/.next/standalone/tests/setup.ts +8 -8
  817. package/.next/standalone/tsconfig.json +34 -34
  818. package/.next/standalone/vitest.config.ts +24 -24
  819. package/LICENSE +661 -661
  820. package/README.md +131 -131
  821. package/bin/cortex-hook.js +79 -79
  822. package/bin/cortex-hook.sh +62 -62
  823. package/bin/cortex-learn-hook.js +138 -138
  824. package/bin/cortex-mcp.js +60 -60
  825. package/bin/cortex-pi-extension.ts +170 -170
  826. package/bin/fix-standalone-externals.js +79 -79
  827. package/bin/lib/auto-setup.js +110 -110
  828. package/bin/mdns-service.js +171 -171
  829. package/bin/postinstall.js +35 -35
  830. package/bin/setup-admin.js +195 -195
  831. package/bin/spaces-dev.js +247 -247
  832. package/bin/spaces-install.js +660 -660
  833. package/bin/spaces-postinstall.js +50 -50
  834. package/bin/spaces-reset-totp.js +50 -50
  835. package/bin/spaces-service.js +1046 -1046
  836. package/bin/spaces-setup.js +253 -253
  837. package/bin/spaces.js +808 -805
  838. package/bin/ssh-auth-keys.sh +68 -68
  839. package/bin/terminal-server.js +2819 -2781
  840. package/package.json +111 -111
  841. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0903a426._.js +0 -98
  842. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09e8ccc9._.js +0 -98
  843. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11c684b1._.js +0 -98
  844. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1572d4ef._.js +0 -98
  845. package/.next/standalone/.next/server/chunks/[root-of-the-server]__186cd0bb._.js +0 -3
  846. package/.next/standalone/.next/server/chunks/[root-of-the-server]__212760e6._.js +0 -98
  847. package/.next/standalone/.next/server/chunks/[root-of-the-server]__228595ec._.js +0 -98
  848. package/.next/standalone/.next/server/chunks/[root-of-the-server]__283c890f._.js +0 -3
  849. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2f300a68._.js +0 -98
  850. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2f452778._.js +0 -98
  851. package/.next/standalone/.next/server/chunks/[root-of-the-server]__35f8e77e._.js +0 -98
  852. package/.next/standalone/.next/server/chunks/[root-of-the-server]__379fc2e9._.js +0 -98
  853. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3b40d79f._.js +0 -98
  854. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3d3dca2b._.js +0 -98
  855. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4d5b78d2._.js +0 -98
  856. package/.next/standalone/.next/server/chunks/[root-of-the-server]__54163e52._.js +0 -98
  857. package/.next/standalone/.next/server/chunks/[root-of-the-server]__563c0817._.js +0 -3
  858. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5812f90a._.js +0 -98
  859. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c5e87f5._.js +0 -98
  860. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60d15b16._.js +0 -98
  861. package/.next/standalone/.next/server/chunks/[root-of-the-server]__69d315e5._.js +0 -3
  862. package/.next/standalone/.next/server/chunks/[root-of-the-server]__71f29038._.js +0 -98
  863. package/.next/standalone/.next/server/chunks/[root-of-the-server]__74084e07._.js +0 -3
  864. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7921aa80._.js +0 -98
  865. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7e077dd8._.js +0 -98
  866. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7ebc4280._.js +0 -131
  867. package/.next/standalone/.next/server/chunks/[root-of-the-server]__857c60bb._.js +0 -98
  868. package/.next/standalone/.next/server/chunks/[root-of-the-server]__874fe565._.js +0 -98
  869. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8e2171f7._.js +0 -98
  870. package/.next/standalone/.next/server/chunks/[root-of-the-server]__95659b2d._.js +0 -98
  871. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9679b91e._.js +0 -98
  872. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a90729a1._.js +0 -98
  873. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad4346fa._.js +0 -98
  874. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b0862d69._.js +0 -98
  875. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b43306ee._.js +0 -98
  876. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b689ff5e._.js +0 -106
  877. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba87daaa._.js +0 -98
  878. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c0461005._.js +0 -98
  879. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1deb5f3._.js +0 -98
  880. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c8a62f42._.js +0 -98
  881. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cabaac2b._.js +0 -98
  882. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cb027619._.js +0 -98
  883. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf608218._.js +0 -98
  884. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cfc1290d._.js +0 -98
  885. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d0109b9b._.js +0 -98
  886. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d0125483._.js +0 -3
  887. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d048ee6b._.js +0 -98
  888. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d12644e7._.js +0 -98
  889. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3cc946c._.js +0 -98
  890. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e6fd27f8._.js +0 -98
  891. package/.next/standalone/.next/server/chunks/[root-of-the-server]__efb8251e._.js +0 -98
  892. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f44c6882._.js +0 -98
  893. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f85283de._.js +0 -98
  894. package/.next/standalone/.next/server/chunks/[root-of-the-server]__feceb3e4._.js +0 -98
  895. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__843070a6._.js +0 -3
  896. package/.next/standalone/.next/server/chunks/ssr/_e84a0c06._.js +0 -3
  897. package/.next/standalone/.next/static/chunks/470cade58d4eceeb.css +0 -3
  898. package/.next/standalone/.next/static/chunks/9d4164833c2c1fd6.js +0 -85
  899. package/.next/standalone/.next/static/chunks/f091f4bf8d80fd07.js +0 -1
  900. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +0 -46
  901. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  902. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +0 -1
  903. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  904. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
  905. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  906. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  907. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  908. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  909. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  910. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  911. package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  912. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  913. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  914. /package/.next/standalone/.next/static/{5S4TviTCiNiTjf6KjXjBo → u1pHON3drz1mBi7owkbBP}/_buildManifest.js +0 -0
  915. /package/.next/standalone/.next/static/{5S4TviTCiNiTjf6KjXjBo → u1pHON3drz1mBi7owkbBP}/_clientMiddlewareManifest.json +0 -0
  916. /package/.next/standalone/.next/static/{5S4TviTCiNiTjf6KjXjBo → u1pHON3drz1mBi7owkbBP}/_ssgManifest.js +0 -0
  917. /package/.next/standalone/node_modules/@img/{sharp-libvips-linux-x64 → sharp-win32-x64}/versions.json +0 -0
@@ -1,564 +1,564 @@
1
- # Spaces Installation Guide
2
-
3
- ## Tier Overview
4
-
5
- | Tier | Packages | Features |
6
- |------|----------|----------|
7
- | `community` | `@jlongo78/agent-spaces` | Single user, no auth, local terminals |
8
- | `team` | + `@spaces/teams` | Auth, multi-user, admin panel, collaboration (message bus, hooks, MCP tools, ActivityPanel) |
9
- | `federation` | + `@spaces/pro` | All team features + mDNS network discovery, remote nodes |
10
-
11
- Each tier builds on the previous. Federation requires both `@spaces/teams` and `@spaces/pro`.
12
-
13
- ---
14
-
15
- ## Prerequisites
16
-
17
- - Node.js 20+ and npm
18
- - Git (to clone private repos)
19
- - GitHub access to `jlongo78` repos (for teams and pro packages)
20
-
21
- ---
22
-
23
- ## Uninstall (clean slate)
24
-
25
- If Spaces is already installed and you want to start fresh:
26
-
27
- **1. Stop the server** — press `Ctrl+C` in the terminal where Spaces is running. If you can't find it:
28
-
29
- ```bash
30
- # Linux/macOS
31
- lsof -t -i:3457 | xargs kill
32
-
33
- # Windows
34
- netstat -ano | findstr :3457
35
- taskkill /F /PID <pid>
36
- ```
37
-
38
- **2. Uninstall packages:**
39
-
40
- ```bash
41
- npm uninstall -g @jlongo78/agent-spaces @spaces/teams @spaces/pro
42
- ```
43
-
44
- Windows: if you get `EBUSY`, make sure the server is fully stopped first. Kill all `node.exe` processes if needed.
45
-
46
- **3. Remove config and data:**
47
-
48
- ```bash
49
- # Linux/macOS
50
- rm -rf ~/.spaces/
51
-
52
- # Windows
53
- rmdir /S /Q "%USERPROFILE%\.spaces"
54
- ```
55
-
56
- **4. Verify clean:**
57
-
58
- ```bash
59
- which spaces # Should return nothing
60
- npm ls -g --depth=0 # Should not list any spaces packages
61
- ```
62
-
63
- ---
64
-
65
- ## 1. Community Edition
66
-
67
- ### Install
68
-
69
- ```bash
70
- npm install -g @jlongo78/agent-spaces
71
- spaces
72
- ```
73
-
74
- Opens `http://localhost:3457`. No login, no setup required.
75
-
76
- ### Verify
77
-
78
- - Terminal page loads, you can create panes and workspaces
79
- - No "Collab" button in workspace header
80
- - No login screen
81
- - Tier check:
82
- ```bash
83
- curl -s http://localhost:3457/api/tier/
84
- # {"tier":"community","hasAuth":false,"hasCollaboration":false,"hasNetwork":false,...}
85
- ```
86
- - Collaboration APIs are stubbed:
87
- ```bash
88
- curl -s http://localhost:3457/api/workspaces/1/messages/
89
- # {"error":"Requires @spaces/teams"}
90
- ```
91
-
92
- ---
93
-
94
- ## 2. Team Edition
95
-
96
- Stop the running server (`Ctrl+C`) before installing.
97
-
98
- ### Install @spaces/teams
99
-
100
- `@spaces/teams` is a private package — it's not on the public npm registry. Install from GitHub:
101
-
102
- ```bash
103
- npm install -g github:jlongo78/spaces-teams
104
- ```
105
-
106
- This is plain JavaScript — no build step needed.
107
-
108
- ### Verify package is discoverable
109
-
110
- ```bash
111
- node -e "console.log(require.resolve('@spaces/teams'))"
112
- # Should print the path to @spaces/teams/index.js
113
- ```
114
-
115
- ### Start
116
-
117
- ```bash
118
- spaces
119
- ```
120
-
121
- On first run, auto-setup creates:
122
- - `~/.spaces/session_secret` — session signing key
123
- - `~/.spaces/admin.db` — user database with admin credentials
124
- - Prints the generated username and password — **save these**
125
-
126
- ### Verify
127
-
128
- 1. **Tier:**
129
- ```bash
130
- curl -s http://localhost:3457/api/tier/
131
- # {"tier":"team","hasAuth":true,"hasCollaboration":true,"hasNetwork":false,...}
132
- ```
133
-
134
- 2. **Login screen appears** — use the credentials from setup
135
-
136
- 3. **Collab button visible** in workspace header
137
-
138
- 4. **Messages API works** (requires auth cookie — test in browser devtools or with session cookie):
139
- ```bash
140
- curl -s http://localhost:3457/api/workspaces/1/messages/
141
- # Returns array (not "Requires @spaces/teams" error)
142
- ```
143
-
144
- 5. **ActivityPanel** renders when collaboration is enabled on a workspace
145
-
146
- 6. **Database tables created:**
147
- ```bash
148
- sqlite3 ~/.spaces/spaces.db ".tables"
149
- # Should include workspace_messages and workspace_context
150
- ```
151
-
152
- ---
153
-
154
- ## 3. Federation Edition
155
-
156
- Stop the running server (`Ctrl+C`) before installing.
157
-
158
- ### Install @spaces/pro
159
-
160
- `@spaces/pro` is also private. Install from GitHub:
161
-
162
- ```bash
163
- npm install -g github:jlongo78/spaces-pro
164
- ```
165
-
166
- Note: `@spaces/pro` is TypeScript and ships pre-built. If installing from source instead, you must `npm run build` first.
167
-
168
- ### Verify both packages
169
-
170
- ```bash
171
- node -e "console.log(require.resolve('@spaces/teams'))"
172
- node -e "console.log(require.resolve('@spaces/pro'))"
173
- # Both should print paths
174
- ```
175
-
176
- ### Start
177
-
178
- ```bash
179
- spaces
180
- ```
181
-
182
- ### Verify
183
-
184
- 1. **Tier:**
185
- ```bash
186
- curl -s http://localhost:3457/api/tier/
187
- # {"tier":"federation","hasAuth":true,"hasCollaboration":true,"hasNetwork":true,...}
188
- ```
189
-
190
- 2. **All team features still work**
191
-
192
- 3. **mDNS discovery** — server log shows `[mDNS] Advertising as "..." on port 3458`
193
-
194
- 4. **Network features** — remote nodes appear in sidebar/settings when other federation instances are on the network
195
-
196
- ---
197
-
198
- ## Reverse Proxy Setup
199
-
200
- When serving behind a reverse proxy (e.g., Traefik, nginx) at a subpath like `/spaces/`:
201
-
202
- ### Configure base path
203
-
204
- ```bash
205
- spaces --base-path /spaces
206
- ```
207
-
208
- Or set in `~/.spaces/server.json`:
209
- ```json
210
- {"basePath": "/spaces", "port": 3457}
211
- ```
212
-
213
- ### Configure allowed origins
214
-
215
- For non-community tiers, WebSocket connections from external origins are blocked by default. You must whitelist your domain:
216
-
217
- ```bash
218
- SPACES_ALLOWED_ORIGINS=yourdomain.com spaces
219
- ```
220
-
221
- Multiple origins:
222
- ```bash
223
- SPACES_ALLOWED_ORIGINS=yourdomain.com,other.example.com spaces
224
- ```
225
-
226
- **Without this, terminals will not connect** when accessed through the reverse proxy. Localhost connections always work.
227
-
228
- ### Traefik example
229
-
230
- ```yaml
231
- http:
232
- routers:
233
- spaces:
234
- rule: "PathPrefix(`/spaces`)"
235
- service: spaces
236
- entryPoints: [websecure]
237
- tls: {}
238
-
239
- services:
240
- spaces:
241
- loadBalancer:
242
- servers:
243
- - url: "http://localhost:3457"
244
- ```
245
-
246
- No path stripping needed — Spaces handles the base path internally.
247
-
248
- ---
249
-
250
- ## Tier Detection Logic
251
-
252
- The launcher resolves the tier at startup:
253
-
254
- 1. `--tier` CLI flag (highest priority)
255
- 2. `SPACES_TIER` environment variable
256
- 3. `~/.spaces/server.json` → `tier` field
257
- 4. **Auto-detect** (lowest priority):
258
- - `@spaces/pro` found → `federation`
259
- - `@spaces/teams` found (no pro) → `team`
260
- - Neither found → `community`
261
-
262
- One build, any tier — features activate at runtime based on which packages are installed.
263
-
264
- ---
265
-
266
- ## Configuration
267
-
268
- All config lives under `~/.spaces/`:
269
-
270
- | File | Purpose | Created by |
271
- |------|---------|------------|
272
- | `server.json` | tier, port, basePath | `spaces --setup` or auto-setup |
273
- | `session_secret` | HMAC secret for session tokens | auto-setup (first non-community run) |
274
- | `admin.db` | User database (SQLite) | auto-setup |
275
- | `spaces.db` | Application data (per-user workspaces, panes) | first request |
276
- | `service_key` / `service_key.pub` | SSH keypair for system service multi-user terminals | system service first start |
277
- | `known_hosts` | SSH known hosts for localhost connections | first SSH terminal spawn |
278
- | `service-level` | Tracks whether service is user or system level | `spaces service install` |
279
- | `spaces-service.cmd` | Windows service wrapper script | `spaces service install` (Windows) |
280
- | `logs/spaces.out.log` | Service stdout/stderr log | service start (macOS/Windows) |
281
-
282
- ### Reset auth but keep data
283
-
284
- ```bash
285
- rm ~/.spaces/server.json ~/.spaces/session_secret ~/.spaces/admin.db
286
- spaces # Re-runs auto-setup, generates new credentials
287
- ```
288
-
289
- ---
290
-
291
- ## CLI Reference
292
-
293
- ```
294
- spaces Start the server (auto-detects tier)
295
- spaces --setup Interactive first-time setup wizard
296
- spaces --port 3457 Override port
297
- spaces --tier team Override tier (community|team|federation)
298
- spaces --base-path /spaces Set base path for reverse proxy
299
- spaces --help Show help
300
- spaces service <action> Manage OS service (install|uninstall|start|stop|status|logs)
301
- ```
302
-
303
- ## Environment Variables
304
-
305
- | Variable | Description | Default |
306
- |----------|-------------|---------|
307
- | `SPACES_TIER` | Override tier detection | auto-detect |
308
- | `SPACES_PORT` | Server port | `3457` |
309
- | `SPACES_BASE_PATH` | Base path for subpath deployments | (none) |
310
- | `SPACES_SESSION_SECRET` | Session signing secret | from `~/.spaces/session_secret` |
311
- | `SPACES_ALLOWED_ORIGINS` | Comma-separated hostnames for WebSocket origin check | localhost only |
312
-
313
- ---
314
-
315
- ## Running as a Service
316
-
317
- Install Spaces as a persistent OS service that starts automatically:
318
-
319
- ```bash
320
- spaces service install
321
- ```
322
-
323
- You'll be prompted to choose system-level (starts on boot) or user-level (starts on login).
324
-
325
- The installer captures your current config from `~/.spaces/server.json` and bakes it into the service definition. If you change config later, re-run `spaces service install` to update.
326
-
327
- ### Service commands
328
-
329
- | Command | Description |
330
- |---------|-------------|
331
- | `spaces service install` | Install and start the service |
332
- | `spaces service uninstall` | Stop and remove the service |
333
- | `spaces service start` | Start the service |
334
- | `spaces service stop` | Stop the service |
335
- | `spaces service status` | Show service status |
336
- | `spaces service logs` | Tail service logs |
337
-
338
- ### System vs. User service
339
-
340
- | Level | When it runs | Process identity | Best for |
341
- |-------|-------------|-----------------|----------|
342
- | **User** | On login | Your user account | Personal machines, single user |
343
- | **System** | On boot | SYSTEM (Windows) / root (Linux) | Shared machines, always-on servers |
344
-
345
- **User-level** is simpler — processes run as you, no permission issues.
346
-
347
- **System-level** runs as a different OS account. On Windows this means the SYSTEM account, which requires special handling for file access, home directories, and terminal spawning (see below).
348
-
349
- ### Platform details
350
-
351
- | Platform | User-level location | System-level location |
352
- |----------|--------------------|-----------------------|
353
- | Linux | `~/.config/systemd/user/spaces.service` | `/etc/systemd/system/spaces.service` (sudo) |
354
- | macOS | `~/Library/LaunchAgents/com.agentspaces.spaces.plist` | `/Library/LaunchDaemons/com.agentspaces.spaces.plist` (sudo) |
355
- | Windows | Scheduled Task (ONLOGON) | Scheduled Task (ONSTART, SYSTEM) |
356
-
357
- ### Logs
358
-
359
- - **Linux:** `spaces service logs` uses journalctl (integrated with systemd)
360
- - **macOS / Windows:** Log files at `~/.spaces/logs/spaces.out.log`, view with `spaces service logs`
361
-
362
- ---
363
-
364
- ## Windows System Service (Detailed)
365
-
366
- Running Spaces as a Windows system service has additional complexity because the service runs under the `NT AUTHORITY\SYSTEM` account, which has no user profile, no home directory, and can't directly interact with user sessions.
367
-
368
- ### Prerequisites
369
-
370
- - **Administrator access** — service install/uninstall/start/stop require an elevated terminal
371
- - **Node.js 20+** installed and on PATH
372
- - **OpenSSH Server** — installed automatically during system service setup, or manually:
373
- ```powershell
374
- # In an elevated PowerShell:
375
- Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
376
- Start-Service sshd
377
- Set-Service -Name sshd -StartupType Automatic
378
- ```
379
-
380
- ### Install
381
-
382
- From an **Administrator** terminal:
383
-
384
- ```bash
385
- spaces service install
386
- ```
387
-
388
- Choose **1** for system service. The installer will:
389
-
390
- 1. **Detect target user** — scans `C:\Users\*` for profiles with Claude Code data (`.claude/` directory). If multiple users are found, you'll be asked which one to target.
391
- 2. **Create wrapper script** — `~/.spaces/spaces-service.cmd` with environment overrides:
392
- - `USERPROFILE`, `HOMEDRIVE`, `HOMEPATH` — set to the target user's home so `os.homedir()` resolves correctly under SYSTEM
393
- - `SPACES_SERVICE=1` — prevents browser auto-open and enables service mode behaviors
394
- 3. **Create scheduled task** — `Spaces` task under Task Scheduler, runs as SYSTEM on boot
395
- 4. **Ensure OpenSSH Server** — installs and starts sshd if not present
396
- 5. **Start the service** — launches the task immediately
397
-
398
- On first start, the SYSTEM process will:
399
- - Run auto-setup if needed (creates admin DB with the target user's username as shell_user)
400
- - Generate an SSH service key owned by SYSTEM at `~/.spaces/service_key`
401
- - Authorize the key in `C:\ProgramData\ssh\administrators_authorized_keys` (for admin users) and in each user's `~/.ssh/authorized_keys` (for non-admin users)
402
-
403
- ### How terminals work under SYSTEM
404
-
405
- Since the service runs as SYSTEM but terminals need to run as the actual user:
406
-
407
- 1. **Auth resolution** — When a terminal request arrives, the service maps SYSTEM → the first admin DB user
408
- 2. **Shell user lookup** — The app username is mapped to an OS shell user via the admin database
409
- 3. **SSH to localhost** — The service spawns `ssh -4 -i ~/.spaces/service_key <user>@localhost` to get a shell as the correct user
410
- 4. **Directory change** — After SSH connects, the service sends `cd /d "C:\path\to\project"` to navigate to the workspace directory
411
-
412
- This requires OpenSSH Server running and the service key authorized for the target user.
413
-
414
- ### Upgrading tiers with a system service
415
-
416
- If you install `@spaces/pro` or `@spaces/teams` after the service is already running:
417
-
418
- ```bash
419
- spaces service stop
420
- spaces install pro # or: npm install -g @spaces/pro
421
- spaces service start
422
- ```
423
-
424
- The tier is auto-detected from installed packages at startup — no service reinstall needed.
425
-
426
- ### Task Scheduler notes
427
-
428
- - The scheduled task is named **Spaces** and runs under `NT AUTHORITY\SYSTEM`
429
- - **Battery mode** — Task Scheduler may stop the task on battery power. To prevent this:
430
- ```powershell
431
- # In elevated PowerShell:
432
- $task = Get-ScheduledTask -TaskName "Spaces"
433
- $task.Settings.DisallowStartIfOnBatteries = $false
434
- $task.Settings.StopIfGoingOnBatteries = $false
435
- Set-ScheduledTask $task
436
- ```
437
- - The wrapper script redirects all output to `~/.spaces/logs/spaces.out.log`
438
-
439
- ### Verifying the system service
440
-
441
- ```bash
442
- # Check service status
443
- spaces service status
444
-
445
- # Check logs
446
- spaces service logs
447
-
448
- # Verify SSH key setup
449
- dir "%USERPROFILE%\.spaces\service_key"
450
- dir "%USERPROFILE%\.spaces\service_key.pub"
451
-
452
- # Test SSH (from the target user's terminal)
453
- ssh -i "%USERPROFILE%\.spaces\service_key" -o BatchMode=yes localhost "echo works"
454
-
455
- # Check what's listening
456
- netstat -ano | findstr :3457
457
- ```
458
-
459
- ---
460
-
461
- ## Troubleshooting
462
-
463
- ### Terminals don't connect (WebSocket fails silently)
464
-
465
- Most common cause: **missing `SPACES_ALLOWED_ORIGINS`**. When running behind a reverse proxy on a non-community tier, the server rejects WebSocket upgrades from non-localhost origins. Set:
466
-
467
- ```bash
468
- SPACES_ALLOWED_ORIGINS=yourdomain.com spaces
469
- ```
470
-
471
- ### Tier shows "community" despite packages installed
472
-
473
- The launcher detects packages at startup. If you installed packages while the server was running, **restart the server**.
474
-
475
- Verify packages are globally resolvable:
476
- ```bash
477
- node -e "console.log(require.resolve('@spaces/teams'))"
478
- node -e "console.log(require.resolve('@spaces/pro'))"
479
- ```
480
-
481
- If these fail:
482
- - Check `npm prefix -g` points to the right place
483
- - nvm users: make sure you're using the same Node version you installed with
484
-
485
- ### Windows: EBUSY on uninstall
486
-
487
- Something is holding a lock on the files — usually a running Spaces server. Stop it first:
488
- ```cmd
489
- taskkill /F /IM node.exe
490
- npm uninstall -g @jlongo78/agent-spaces @spaces/teams @spaces/pro
491
- ```
492
-
493
- ### npm install from GitHub fails with native module errors
494
-
495
- `@jlongo78/agent-spaces` (the main package) has native dependencies (better-sqlite3, node-pty) that need to be compiled. Install from npm (not GitHub) for the pre-built version:
496
- ```bash
497
- npm install -g @jlongo78/agent-spaces # pre-built, works everywhere
498
- ```
499
-
500
- The add-on packages (`@spaces/teams`, `@spaces/pro`) are pure JS/pre-built and install from GitHub fine.
501
-
502
- ### Windows: Service freezes or can't connect
503
-
504
- The server process is blocked. Common causes:
505
- - **Browser auto-open in Session 0** — should not happen with `SPACES_SERVICE=1` but verify the wrapper script contains `set SPACES_SERVICE=1`
506
- - **Port conflict** — check if another process is on port 3457: `netstat -ano | findstr :3457`
507
- - **Battery mode** — Task Scheduler stops tasks on battery by default (see Task Scheduler notes above)
508
-
509
- ### Windows: Terminals show SYSTEM prompt or "claude not found"
510
-
511
- The SSH setup didn't complete. Check:
512
-
513
- 1. **OpenSSH Server running:** `Get-Service sshd` should show Running
514
- 2. **Service key exists:** `dir %USERPROFILE%\.spaces\service_key`
515
- 3. **Key is authorized:**
516
- ```powershell
517
- # For admin users:
518
- type C:\ProgramData\ssh\administrators_authorized_keys
519
- # Should contain the public key from service_key.pub
520
- ```
521
- 4. **Key permissions:** The private key must only be readable by SYSTEM and the file owner. If you see "UNPROTECTED PRIVATE KEY FILE" errors in the log, fix with:
522
- ```powershell
523
- # In elevated PowerShell:
524
- icacls "$env:USERPROFILE\.spaces\service_key" /inheritance:r /remove "BUILTIN\Administrators" /remove "BUILTIN\Users" /remove "Everyone" /grant:r "NT AUTHORITY\SYSTEM:(F)"
525
- ```
526
-
527
- ### Windows: SSH "Connection reset by ::1 port 22"
528
-
529
- The SSH client is connecting via IPv6 but sshd may not accept it. The service uses `-4` to force IPv4. If you see this error, ensure you're running the latest version of `terminal-server.js`.
530
-
531
- ### Windows: "spaces service stop" doesn't actually stop the server
532
-
533
- The stop command needs admin privileges to kill SYSTEM processes. Run from an elevated terminal:
534
- ```bash
535
- spaces service stop
536
- ```
537
-
538
- If that still doesn't work:
539
- ```powershell
540
- # In elevated PowerShell:
541
- schtasks /End /TN Spaces
542
- taskkill /F /IM node.exe # Caution: kills ALL node processes
543
- ```
544
-
545
- ### Windows: Dashboard shows blank data / 0 projects
546
-
547
- The SYSTEM account can't find the user's home directory. Verify the wrapper script at `~/.spaces/spaces-service.cmd` contains:
548
- ```
549
- set USERPROFILE=C:\Users\YourUsername
550
- set HOMEDRIVE=C:
551
- set HOMEPATH=\Users\YourUsername
552
- ```
553
-
554
- If not, reinstall the service: `spaces service uninstall && spaces service install`
555
-
556
- ### Agent panes don't get MCP server / hooks
557
-
558
- - Ensure collaboration is enabled on the workspace (click "Collab" button)
559
- - New agent panes auto-opt-in when workspace has collaboration on
560
- - Check the pane's working directory for `.mcp.json` and `.claude/settings.local.json`
561
-
562
- ### "Requires @spaces/teams" on API calls
563
-
564
- Expected on community tier. Install `@spaces/teams` and restart to enable collaboration APIs.
1
+ # Spaces Installation Guide
2
+
3
+ ## Tier Overview
4
+
5
+ | Tier | Packages | Features |
6
+ |------|----------|----------|
7
+ | `community` | `@jlongo78/agent-spaces` | Single user, no auth, local terminals |
8
+ | `team` | + `@spaces/teams` | Auth, multi-user, admin panel, collaboration (message bus, hooks, MCP tools, ActivityPanel) |
9
+ | `federation` | + `@spaces/pro` | All team features + mDNS network discovery, remote nodes |
10
+
11
+ Each tier builds on the previous. Federation requires both `@spaces/teams` and `@spaces/pro`.
12
+
13
+ ---
14
+
15
+ ## Prerequisites
16
+
17
+ - Node.js 20+ and npm
18
+ - Git (to clone private repos)
19
+ - GitHub access to `jlongo78` repos (for teams and pro packages)
20
+
21
+ ---
22
+
23
+ ## Uninstall (clean slate)
24
+
25
+ If Spaces is already installed and you want to start fresh:
26
+
27
+ **1. Stop the server** — press `Ctrl+C` in the terminal where Spaces is running. If you can't find it:
28
+
29
+ ```bash
30
+ # Linux/macOS
31
+ lsof -t -i:3457 | xargs kill
32
+
33
+ # Windows
34
+ netstat -ano | findstr :3457
35
+ taskkill /F /PID <pid>
36
+ ```
37
+
38
+ **2. Uninstall packages:**
39
+
40
+ ```bash
41
+ npm uninstall -g @jlongo78/agent-spaces @spaces/teams @spaces/pro
42
+ ```
43
+
44
+ Windows: if you get `EBUSY`, make sure the server is fully stopped first. Kill all `node.exe` processes if needed.
45
+
46
+ **3. Remove config and data:**
47
+
48
+ ```bash
49
+ # Linux/macOS
50
+ rm -rf ~/.spaces/
51
+
52
+ # Windows
53
+ rmdir /S /Q "%USERPROFILE%\.spaces"
54
+ ```
55
+
56
+ **4. Verify clean:**
57
+
58
+ ```bash
59
+ which spaces # Should return nothing
60
+ npm ls -g --depth=0 # Should not list any spaces packages
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 1. Community Edition
66
+
67
+ ### Install
68
+
69
+ ```bash
70
+ npm install -g @jlongo78/agent-spaces
71
+ spaces
72
+ ```
73
+
74
+ Opens `http://localhost:3457`. No login, no setup required.
75
+
76
+ ### Verify
77
+
78
+ - Terminal page loads, you can create panes and workspaces
79
+ - No "Collab" button in workspace header
80
+ - No login screen
81
+ - Tier check:
82
+ ```bash
83
+ curl -s http://localhost:3457/api/tier/
84
+ # {"tier":"community","hasAuth":false,"hasCollaboration":false,"hasNetwork":false,...}
85
+ ```
86
+ - Collaboration APIs are stubbed:
87
+ ```bash
88
+ curl -s http://localhost:3457/api/workspaces/1/messages/
89
+ # {"error":"Requires @spaces/teams"}
90
+ ```
91
+
92
+ ---
93
+
94
+ ## 2. Team Edition
95
+
96
+ Stop the running server (`Ctrl+C`) before installing.
97
+
98
+ ### Install @spaces/teams
99
+
100
+ `@spaces/teams` is a private package — it's not on the public npm registry. Install from GitHub:
101
+
102
+ ```bash
103
+ npm install -g github:jlongo78/spaces-teams
104
+ ```
105
+
106
+ This is plain JavaScript — no build step needed.
107
+
108
+ ### Verify package is discoverable
109
+
110
+ ```bash
111
+ node -e "console.log(require.resolve('@spaces/teams'))"
112
+ # Should print the path to @spaces/teams/index.js
113
+ ```
114
+
115
+ ### Start
116
+
117
+ ```bash
118
+ spaces
119
+ ```
120
+
121
+ On first run, auto-setup creates:
122
+ - `~/.spaces/session_secret` — session signing key
123
+ - `~/.spaces/admin.db` — user database with admin credentials
124
+ - Prints the generated username and password — **save these**
125
+
126
+ ### Verify
127
+
128
+ 1. **Tier:**
129
+ ```bash
130
+ curl -s http://localhost:3457/api/tier/
131
+ # {"tier":"team","hasAuth":true,"hasCollaboration":true,"hasNetwork":false,...}
132
+ ```
133
+
134
+ 2. **Login screen appears** — use the credentials from setup
135
+
136
+ 3. **Collab button visible** in workspace header
137
+
138
+ 4. **Messages API works** (requires auth cookie — test in browser devtools or with session cookie):
139
+ ```bash
140
+ curl -s http://localhost:3457/api/workspaces/1/messages/
141
+ # Returns array (not "Requires @spaces/teams" error)
142
+ ```
143
+
144
+ 5. **ActivityPanel** renders when collaboration is enabled on a workspace
145
+
146
+ 6. **Database tables created:**
147
+ ```bash
148
+ sqlite3 ~/.spaces/spaces.db ".tables"
149
+ # Should include workspace_messages and workspace_context
150
+ ```
151
+
152
+ ---
153
+
154
+ ## 3. Federation Edition
155
+
156
+ Stop the running server (`Ctrl+C`) before installing.
157
+
158
+ ### Install @spaces/pro
159
+
160
+ `@spaces/pro` is also private. Install from GitHub:
161
+
162
+ ```bash
163
+ npm install -g github:jlongo78/spaces-pro
164
+ ```
165
+
166
+ Note: `@spaces/pro` is TypeScript and ships pre-built. If installing from source instead, you must `npm run build` first.
167
+
168
+ ### Verify both packages
169
+
170
+ ```bash
171
+ node -e "console.log(require.resolve('@spaces/teams'))"
172
+ node -e "console.log(require.resolve('@spaces/pro'))"
173
+ # Both should print paths
174
+ ```
175
+
176
+ ### Start
177
+
178
+ ```bash
179
+ spaces
180
+ ```
181
+
182
+ ### Verify
183
+
184
+ 1. **Tier:**
185
+ ```bash
186
+ curl -s http://localhost:3457/api/tier/
187
+ # {"tier":"federation","hasAuth":true,"hasCollaboration":true,"hasNetwork":true,...}
188
+ ```
189
+
190
+ 2. **All team features still work**
191
+
192
+ 3. **mDNS discovery** — server log shows `[mDNS] Advertising as "..." on port 3458`
193
+
194
+ 4. **Network features** — remote nodes appear in sidebar/settings when other federation instances are on the network
195
+
196
+ ---
197
+
198
+ ## Reverse Proxy Setup
199
+
200
+ When serving behind a reverse proxy (e.g., Traefik, nginx) at a subpath like `/spaces/`:
201
+
202
+ ### Configure base path
203
+
204
+ ```bash
205
+ spaces --base-path /spaces
206
+ ```
207
+
208
+ Or set in `~/.spaces/server.json`:
209
+ ```json
210
+ {"basePath": "/spaces", "port": 3457}
211
+ ```
212
+
213
+ ### Configure allowed origins
214
+
215
+ For non-community tiers, WebSocket connections from external origins are blocked by default. You must whitelist your domain:
216
+
217
+ ```bash
218
+ SPACES_ALLOWED_ORIGINS=yourdomain.com spaces
219
+ ```
220
+
221
+ Multiple origins:
222
+ ```bash
223
+ SPACES_ALLOWED_ORIGINS=yourdomain.com,other.example.com spaces
224
+ ```
225
+
226
+ **Without this, terminals will not connect** when accessed through the reverse proxy. Localhost connections always work.
227
+
228
+ ### Traefik example
229
+
230
+ ```yaml
231
+ http:
232
+ routers:
233
+ spaces:
234
+ rule: "PathPrefix(`/spaces`)"
235
+ service: spaces
236
+ entryPoints: [websecure]
237
+ tls: {}
238
+
239
+ services:
240
+ spaces:
241
+ loadBalancer:
242
+ servers:
243
+ - url: "http://localhost:3457"
244
+ ```
245
+
246
+ No path stripping needed — Spaces handles the base path internally.
247
+
248
+ ---
249
+
250
+ ## Tier Detection Logic
251
+
252
+ The launcher resolves the tier at startup:
253
+
254
+ 1. `--tier` CLI flag (highest priority)
255
+ 2. `SPACES_TIER` environment variable
256
+ 3. `~/.spaces/server.json` → `tier` field
257
+ 4. **Auto-detect** (lowest priority):
258
+ - `@spaces/pro` found → `federation`
259
+ - `@spaces/teams` found (no pro) → `team`
260
+ - Neither found → `community`
261
+
262
+ One build, any tier — features activate at runtime based on which packages are installed.
263
+
264
+ ---
265
+
266
+ ## Configuration
267
+
268
+ All config lives under `~/.spaces/`:
269
+
270
+ | File | Purpose | Created by |
271
+ |------|---------|------------|
272
+ | `server.json` | tier, port, basePath | `spaces --setup` or auto-setup |
273
+ | `session_secret` | HMAC secret for session tokens | auto-setup (first non-community run) |
274
+ | `admin.db` | User database (SQLite) | auto-setup |
275
+ | `spaces.db` | Application data (per-user workspaces, panes) | first request |
276
+ | `service_key` / `service_key.pub` | SSH keypair for system service multi-user terminals | system service first start |
277
+ | `known_hosts` | SSH known hosts for localhost connections | first SSH terminal spawn |
278
+ | `service-level` | Tracks whether service is user or system level | `spaces service install` |
279
+ | `spaces-service.cmd` | Windows service wrapper script | `spaces service install` (Windows) |
280
+ | `logs/spaces.out.log` | Service stdout/stderr log | service start (macOS/Windows) |
281
+
282
+ ### Reset auth but keep data
283
+
284
+ ```bash
285
+ rm ~/.spaces/server.json ~/.spaces/session_secret ~/.spaces/admin.db
286
+ spaces # Re-runs auto-setup, generates new credentials
287
+ ```
288
+
289
+ ---
290
+
291
+ ## CLI Reference
292
+
293
+ ```
294
+ spaces Start the server (auto-detects tier)
295
+ spaces --setup Interactive first-time setup wizard
296
+ spaces --port 3457 Override port
297
+ spaces --tier team Override tier (community|team|federation)
298
+ spaces --base-path /spaces Set base path for reverse proxy
299
+ spaces --help Show help
300
+ spaces service <action> Manage OS service (install|uninstall|start|stop|status|logs)
301
+ ```
302
+
303
+ ## Environment Variables
304
+
305
+ | Variable | Description | Default |
306
+ |----------|-------------|---------|
307
+ | `SPACES_TIER` | Override tier detection | auto-detect |
308
+ | `SPACES_PORT` | Server port | `3457` |
309
+ | `SPACES_BASE_PATH` | Base path for subpath deployments | (none) |
310
+ | `SPACES_SESSION_SECRET` | Session signing secret | from `~/.spaces/session_secret` |
311
+ | `SPACES_ALLOWED_ORIGINS` | Comma-separated hostnames for WebSocket origin check | localhost only |
312
+
313
+ ---
314
+
315
+ ## Running as a Service
316
+
317
+ Install Spaces as a persistent OS service that starts automatically:
318
+
319
+ ```bash
320
+ spaces service install
321
+ ```
322
+
323
+ You'll be prompted to choose system-level (starts on boot) or user-level (starts on login).
324
+
325
+ The installer captures your current config from `~/.spaces/server.json` and bakes it into the service definition. If you change config later, re-run `spaces service install` to update.
326
+
327
+ ### Service commands
328
+
329
+ | Command | Description |
330
+ |---------|-------------|
331
+ | `spaces service install` | Install and start the service |
332
+ | `spaces service uninstall` | Stop and remove the service |
333
+ | `spaces service start` | Start the service |
334
+ | `spaces service stop` | Stop the service |
335
+ | `spaces service status` | Show service status |
336
+ | `spaces service logs` | Tail service logs |
337
+
338
+ ### System vs. User service
339
+
340
+ | Level | When it runs | Process identity | Best for |
341
+ |-------|-------------|-----------------|----------|
342
+ | **User** | On login | Your user account | Personal machines, single user |
343
+ | **System** | On boot | SYSTEM (Windows) / root (Linux) | Shared machines, always-on servers |
344
+
345
+ **User-level** is simpler — processes run as you, no permission issues.
346
+
347
+ **System-level** runs as a different OS account. On Windows this means the SYSTEM account, which requires special handling for file access, home directories, and terminal spawning (see below).
348
+
349
+ ### Platform details
350
+
351
+ | Platform | User-level location | System-level location |
352
+ |----------|--------------------|-----------------------|
353
+ | Linux | `~/.config/systemd/user/spaces.service` | `/etc/systemd/system/spaces.service` (sudo) |
354
+ | macOS | `~/Library/LaunchAgents/com.agentspaces.spaces.plist` | `/Library/LaunchDaemons/com.agentspaces.spaces.plist` (sudo) |
355
+ | Windows | Scheduled Task (ONLOGON) | Scheduled Task (ONSTART, SYSTEM) |
356
+
357
+ ### Logs
358
+
359
+ - **Linux:** `spaces service logs` uses journalctl (integrated with systemd)
360
+ - **macOS / Windows:** Log files at `~/.spaces/logs/spaces.out.log`, view with `spaces service logs`
361
+
362
+ ---
363
+
364
+ ## Windows System Service (Detailed)
365
+
366
+ Running Spaces as a Windows system service has additional complexity because the service runs under the `NT AUTHORITY\SYSTEM` account, which has no user profile, no home directory, and can't directly interact with user sessions.
367
+
368
+ ### Prerequisites
369
+
370
+ - **Administrator access** — service install/uninstall/start/stop require an elevated terminal
371
+ - **Node.js 20+** installed and on PATH
372
+ - **OpenSSH Server** — installed automatically during system service setup, or manually:
373
+ ```powershell
374
+ # In an elevated PowerShell:
375
+ Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
376
+ Start-Service sshd
377
+ Set-Service -Name sshd -StartupType Automatic
378
+ ```
379
+
380
+ ### Install
381
+
382
+ From an **Administrator** terminal:
383
+
384
+ ```bash
385
+ spaces service install
386
+ ```
387
+
388
+ Choose **1** for system service. The installer will:
389
+
390
+ 1. **Detect target user** — scans `C:\Users\*` for profiles with Claude Code data (`.claude/` directory). If multiple users are found, you'll be asked which one to target.
391
+ 2. **Create wrapper script** — `~/.spaces/spaces-service.cmd` with environment overrides:
392
+ - `USERPROFILE`, `HOMEDRIVE`, `HOMEPATH` — set to the target user's home so `os.homedir()` resolves correctly under SYSTEM
393
+ - `SPACES_SERVICE=1` — prevents browser auto-open and enables service mode behaviors
394
+ 3. **Create scheduled task** — `Spaces` task under Task Scheduler, runs as SYSTEM on boot
395
+ 4. **Ensure OpenSSH Server** — installs and starts sshd if not present
396
+ 5. **Start the service** — launches the task immediately
397
+
398
+ On first start, the SYSTEM process will:
399
+ - Run auto-setup if needed (creates admin DB with the target user's username as shell_user)
400
+ - Generate an SSH service key owned by SYSTEM at `~/.spaces/service_key`
401
+ - Authorize the key in `C:\ProgramData\ssh\administrators_authorized_keys` (for admin users) and in each user's `~/.ssh/authorized_keys` (for non-admin users)
402
+
403
+ ### How terminals work under SYSTEM
404
+
405
+ Since the service runs as SYSTEM but terminals need to run as the actual user:
406
+
407
+ 1. **Auth resolution** — When a terminal request arrives, the service maps SYSTEM → the first admin DB user
408
+ 2. **Shell user lookup** — The app username is mapped to an OS shell user via the admin database
409
+ 3. **SSH to localhost** — The service spawns `ssh -4 -i ~/.spaces/service_key <user>@localhost` to get a shell as the correct user
410
+ 4. **Directory change** — After SSH connects, the service sends `cd /d "C:\path\to\project"` to navigate to the workspace directory
411
+
412
+ This requires OpenSSH Server running and the service key authorized for the target user.
413
+
414
+ ### Upgrading tiers with a system service
415
+
416
+ If you install `@spaces/pro` or `@spaces/teams` after the service is already running:
417
+
418
+ ```bash
419
+ spaces service stop
420
+ spaces install pro # or: npm install -g @spaces/pro
421
+ spaces service start
422
+ ```
423
+
424
+ The tier is auto-detected from installed packages at startup — no service reinstall needed.
425
+
426
+ ### Task Scheduler notes
427
+
428
+ - The scheduled task is named **Spaces** and runs under `NT AUTHORITY\SYSTEM`
429
+ - **Battery mode** — Task Scheduler may stop the task on battery power. To prevent this:
430
+ ```powershell
431
+ # In elevated PowerShell:
432
+ $task = Get-ScheduledTask -TaskName "Spaces"
433
+ $task.Settings.DisallowStartIfOnBatteries = $false
434
+ $task.Settings.StopIfGoingOnBatteries = $false
435
+ Set-ScheduledTask $task
436
+ ```
437
+ - The wrapper script redirects all output to `~/.spaces/logs/spaces.out.log`
438
+
439
+ ### Verifying the system service
440
+
441
+ ```bash
442
+ # Check service status
443
+ spaces service status
444
+
445
+ # Check logs
446
+ spaces service logs
447
+
448
+ # Verify SSH key setup
449
+ dir "%USERPROFILE%\.spaces\service_key"
450
+ dir "%USERPROFILE%\.spaces\service_key.pub"
451
+
452
+ # Test SSH (from the target user's terminal)
453
+ ssh -i "%USERPROFILE%\.spaces\service_key" -o BatchMode=yes localhost "echo works"
454
+
455
+ # Check what's listening
456
+ netstat -ano | findstr :3457
457
+ ```
458
+
459
+ ---
460
+
461
+ ## Troubleshooting
462
+
463
+ ### Terminals don't connect (WebSocket fails silently)
464
+
465
+ Most common cause: **missing `SPACES_ALLOWED_ORIGINS`**. When running behind a reverse proxy on a non-community tier, the server rejects WebSocket upgrades from non-localhost origins. Set:
466
+
467
+ ```bash
468
+ SPACES_ALLOWED_ORIGINS=yourdomain.com spaces
469
+ ```
470
+
471
+ ### Tier shows "community" despite packages installed
472
+
473
+ The launcher detects packages at startup. If you installed packages while the server was running, **restart the server**.
474
+
475
+ Verify packages are globally resolvable:
476
+ ```bash
477
+ node -e "console.log(require.resolve('@spaces/teams'))"
478
+ node -e "console.log(require.resolve('@spaces/pro'))"
479
+ ```
480
+
481
+ If these fail:
482
+ - Check `npm prefix -g` points to the right place
483
+ - nvm users: make sure you're using the same Node version you installed with
484
+
485
+ ### Windows: EBUSY on uninstall
486
+
487
+ Something is holding a lock on the files — usually a running Spaces server. Stop it first:
488
+ ```cmd
489
+ taskkill /F /IM node.exe
490
+ npm uninstall -g @jlongo78/agent-spaces @spaces/teams @spaces/pro
491
+ ```
492
+
493
+ ### npm install from GitHub fails with native module errors
494
+
495
+ `@jlongo78/agent-spaces` (the main package) has native dependencies (better-sqlite3, node-pty) that need to be compiled. Install from npm (not GitHub) for the pre-built version:
496
+ ```bash
497
+ npm install -g @jlongo78/agent-spaces # pre-built, works everywhere
498
+ ```
499
+
500
+ The add-on packages (`@spaces/teams`, `@spaces/pro`) are pure JS/pre-built and install from GitHub fine.
501
+
502
+ ### Windows: Service freezes or can't connect
503
+
504
+ The server process is blocked. Common causes:
505
+ - **Browser auto-open in Session 0** — should not happen with `SPACES_SERVICE=1` but verify the wrapper script contains `set SPACES_SERVICE=1`
506
+ - **Port conflict** — check if another process is on port 3457: `netstat -ano | findstr :3457`
507
+ - **Battery mode** — Task Scheduler stops tasks on battery by default (see Task Scheduler notes above)
508
+
509
+ ### Windows: Terminals show SYSTEM prompt or "claude not found"
510
+
511
+ The SSH setup didn't complete. Check:
512
+
513
+ 1. **OpenSSH Server running:** `Get-Service sshd` should show Running
514
+ 2. **Service key exists:** `dir %USERPROFILE%\.spaces\service_key`
515
+ 3. **Key is authorized:**
516
+ ```powershell
517
+ # For admin users:
518
+ type C:\ProgramData\ssh\administrators_authorized_keys
519
+ # Should contain the public key from service_key.pub
520
+ ```
521
+ 4. **Key permissions:** The private key must only be readable by SYSTEM and the file owner. If you see "UNPROTECTED PRIVATE KEY FILE" errors in the log, fix with:
522
+ ```powershell
523
+ # In elevated PowerShell:
524
+ icacls "$env:USERPROFILE\.spaces\service_key" /inheritance:r /remove "BUILTIN\Administrators" /remove "BUILTIN\Users" /remove "Everyone" /grant:r "NT AUTHORITY\SYSTEM:(F)"
525
+ ```
526
+
527
+ ### Windows: SSH "Connection reset by ::1 port 22"
528
+
529
+ The SSH client is connecting via IPv6 but sshd may not accept it. The service uses `-4` to force IPv4. If you see this error, ensure you're running the latest version of `terminal-server.js`.
530
+
531
+ ### Windows: "spaces service stop" doesn't actually stop the server
532
+
533
+ The stop command needs admin privileges to kill SYSTEM processes. Run from an elevated terminal:
534
+ ```bash
535
+ spaces service stop
536
+ ```
537
+
538
+ If that still doesn't work:
539
+ ```powershell
540
+ # In elevated PowerShell:
541
+ schtasks /End /TN Spaces
542
+ taskkill /F /IM node.exe # Caution: kills ALL node processes
543
+ ```
544
+
545
+ ### Windows: Dashboard shows blank data / 0 projects
546
+
547
+ The SYSTEM account can't find the user's home directory. Verify the wrapper script at `~/.spaces/spaces-service.cmd` contains:
548
+ ```
549
+ set USERPROFILE=C:\Users\YourUsername
550
+ set HOMEDRIVE=C:
551
+ set HOMEPATH=\Users\YourUsername
552
+ ```
553
+
554
+ If not, reinstall the service: `spaces service uninstall && spaces service install`
555
+
556
+ ### Agent panes don't get MCP server / hooks
557
+
558
+ - Ensure collaboration is enabled on the workspace (click "Collab" button)
559
+ - New agent panes auto-opt-in when workspace has collaboration on
560
+ - Check the pane's working directory for `.mcp.json` and `.claude/settings.local.json`
561
+
562
+ ### "Requires @spaces/teams" on API calls
563
+
564
+ Expected on community tier. Install `@spaces/teams` and restart to enable collaboration APIs.