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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (721) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +2 -2
  3. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
  4. package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
  5. package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/(desktop)/cortex/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  18. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  26. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  27. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  28. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  30. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  31. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  32. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  33. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  34. package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
  35. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  38. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
  40. package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
  41. package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
  42. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
  43. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  44. package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
  45. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
  47. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  48. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  49. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
  50. package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
  52. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
  53. package/.next/standalone/.next/server/app/analytics.html +1 -1
  54. package/.next/standalone/.next/server/app/analytics.rsc +2 -2
  55. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
  59. package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
  60. package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
  61. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  62. package/.next/standalone/.next/server/app/api/admin/analytics/route.js +4 -2
  63. package/.next/standalone/.next/server/app/api/admin/analytics/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js +4 -2
  65. package/.next/standalone/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/users/route.js +4 -2
  67. package/.next/standalone/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/analytics/overview/route.js +5 -4
  69. package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/auth/login/route.js +3 -2
  71. package/.next/standalone/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/auth/logout/route.js +2 -2
  73. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/me/route.js +3 -2
  75. package/.next/standalone/.next/server/app/api/auth/me/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js +2 -2
  77. package/.next/standalone/.next/server/app/api/auth/totp/setup/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/totp/status/route.js +2 -2
  79. package/.next/standalone/.next/server/app/api/auth/totp/status/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js +3 -2
  81. package/.next/standalone/.next/server/app/api/auth/totp/verify/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js +4 -3
  83. package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/benchmark/run/route.js +4 -3
  85. package/.next/standalone/.next/server/app/api/benchmark/run/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js +4 -3
  87. package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/api/benchmark/runs/route.js +4 -3
  89. package/.next/standalone/.next/server/app/api/benchmark/runs/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/benchmark/status/route.js +4 -3
  91. package/.next/standalone/.next/server/app/api/benchmark/status/route.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/api/bulk/route.js +5 -4
  93. package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/api/chat/route.js +4 -2
  95. package/.next/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/claude/usage/route.js +5 -4
  97. package/.next/standalone/.next/server/app/api/claude/usage/route.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/api/config/route.js +3 -3
  99. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/cortex/context/route.js +4 -3
  101. package/.next/standalone/.next/server/app/api/cortex/context/route.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js +4 -3
  103. package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js +4 -3
  105. package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js.nft.json +1 -1
  106. package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js +4 -3
  107. package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js +4 -3
  109. package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js +4 -3
  111. package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/cortex/export/route.js +4 -3
  113. package/.next/standalone/.next/server/app/api/cortex/export/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js +4 -3
  115. package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js +4 -3
  117. package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js +4 -3
  119. package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js +4 -3
  121. package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js +4 -3
  123. package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js +4 -3
  125. package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js +4 -3
  127. package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js +4 -3
  129. package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/cortex/import/route.js +4 -3
  131. package/.next/standalone/.next/server/app/api/cortex/import/route.js.nft.json +1 -1
  132. package/.next/standalone/.next/server/app/api/cortex/import/status/route.js +4 -3
  133. package/.next/standalone/.next/server/app/api/cortex/import/status/route.js.nft.json +1 -1
  134. package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js +4 -3
  135. package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js +4 -3
  137. package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js +4 -3
  139. package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js +4 -3
  141. package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js +4 -3
  143. package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/cortex/lobes/route.js +4 -3
  145. package/.next/standalone/.next/server/app/api/cortex/lobes/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js +4 -3
  147. package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js +3 -3
  149. package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js +3 -3
  151. package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js +4 -3
  153. package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js +4 -3
  155. package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/cortex/search/route.js +4 -3
  157. package/.next/standalone/.next/server/app/api/cortex/search/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/cortex/settings/route.js +4 -3
  159. package/.next/standalone/.next/server/app/api/cortex/settings/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/cortex/status/route.js +4 -3
  161. package/.next/standalone/.next/server/app/api/cortex/status/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/cortex/timeline/route.js +4 -3
  163. package/.next/standalone/.next/server/app/api/cortex/timeline/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/cortex/usage/route.js +4 -3
  165. package/.next/standalone/.next/server/app/api/cortex/usage/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js +4 -3
  167. package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/events/route.js +5 -3
  169. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/files/route.js +3 -2
  171. package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/folders/route.js +3 -3
  173. package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/network/connect-callback/route.js +2 -2
  175. package/.next/standalone/.next/server/app/api/network/connect-callback/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/network/connect-request/[id]/route.js +2 -2
  177. package/.next/standalone/.next/server/app/api/network/connect-request/[id]/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/network/connect-request/route.js +2 -2
  179. package/.next/standalone/.next/server/app/api/network/connect-request/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/network/discovered/route.js +2 -2
  181. package/.next/standalone/.next/server/app/api/network/discovered/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/network/handshake/route.js +4 -3
  183. package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/network/health/route.js +2 -2
  185. package/.next/standalone/.next/server/app/api/network/health/route.js.nft.json +1 -1
  186. package/.next/standalone/.next/server/app/api/network/identity/route.js +2 -2
  187. package/.next/standalone/.next/server/app/api/network/identity/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js +2 -2
  189. package/.next/standalone/.next/server/app/api/network/keys/[id]/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/network/keys/route.js +2 -2
  191. package/.next/standalone/.next/server/app/api/network/keys/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js +2 -2
  193. package/.next/standalone/.next/server/app/api/network/nodes/[id]/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/network/nodes/check/route.js +2 -2
  195. package/.next/standalone/.next/server/app/api/network/nodes/check/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/network/nodes/route.js +2 -2
  197. package/.next/standalone/.next/server/app/api/network/nodes/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js +6 -5
  199. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/network/panes/route.js +6 -5
  201. package/.next/standalone/.next/server/app/api/network/panes/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/network/projects/route.js +6 -5
  203. package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js +2 -2
  205. package/.next/standalone/.next/server/app/api/network/proxy/[nodeId]/[...path]/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/network/search/route.js +6 -5
  207. package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js +6 -5
  209. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
  210. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js +6 -5
  211. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
  212. package/.next/standalone/.next/server/app/api/network/sessions/route.js +6 -5
  213. package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/network/terminal/token/route.js +2 -2
  215. package/.next/standalone/.next/server/app/api/network/terminal/token/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +6 -5
  217. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/network/workspaces/route.js +6 -5
  219. package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
  220. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js +5 -4
  221. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js.nft.json +1 -1
  222. package/.next/standalone/.next/server/app/api/panes/[id]/route.js +5 -4
  223. package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
  224. package/.next/standalone/.next/server/app/api/panes/route.js +5 -4
  225. package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
  226. package/.next/standalone/.next/server/app/api/projects/route.js +5 -4
  227. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  228. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js +3 -3
  229. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js +3 -3
  231. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/api/search/route.js +6 -5
  233. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  234. package/.next/standalone/.next/server/app/api/server-config/route.js +2 -2
  235. package/.next/standalone/.next/server/app/api/server-config/route.js.nft.json +1 -1
  236. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +5 -3
  237. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
  238. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +5 -4
  239. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +5 -4
  241. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/sessions/route.js +6 -5
  243. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  244. package/.next/standalone/.next/server/app/api/sync/route.js +4 -3
  245. package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/tags/route.js +5 -4
  247. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
  248. package/.next/standalone/.next/server/app/api/tier/route.js +4 -3
  249. package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
  250. package/.next/standalone/.next/server/app/api/updates/route.js +2 -2
  251. package/.next/standalone/.next/server/app/api/updates/route.js.nft.json +1 -1
  252. package/.next/standalone/.next/server/app/api/whisper/config/route.js +2 -2
  253. package/.next/standalone/.next/server/app/api/whisper/config/route.js.nft.json +1 -1
  254. package/.next/standalone/.next/server/app/api/whisper/route.js +2 -2
  255. package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
  256. package/.next/standalone/.next/server/app/api/wizard/chat/route.js +3 -3
  257. package/.next/standalone/.next/server/app/api/wizard/chat/route.js.nft.json +1 -1
  258. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +5 -3
  259. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
  260. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +5 -3
  261. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
  262. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +5 -3
  263. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
  264. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +5 -3
  265. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
  266. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +5 -4
  267. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +5 -4
  269. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
  270. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js +5 -4
  271. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/[todoId]/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js +5 -4
  273. package/.next/standalone/.next/server/app/api/workspaces/[id]/todos/route.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/app/api/workspaces/route.js +6 -5
  275. package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  276. package/.next/standalone/.next/server/app/cortex.html +1 -1
  277. package/.next/standalone/.next/server/app/cortex.rsc +2 -2
  278. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex/__PAGE__.segment.rsc +1 -1
  279. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex.segment.rsc +1 -1
  280. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  281. package/.next/standalone/.next/server/app/cortex.segments/_full.segment.rsc +2 -2
  282. package/.next/standalone/.next/server/app/cortex.segments/_head.segment.rsc +1 -1
  283. package/.next/standalone/.next/server/app/cortex.segments/_index.segment.rsc +2 -2
  284. package/.next/standalone/.next/server/app/cortex.segments/_tree.segment.rsc +2 -2
  285. package/.next/standalone/.next/server/app/icon.png/route.js +2 -2
  286. package/.next/standalone/.next/server/app/icon.png/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/login.html +1 -1
  289. package/.next/standalone/.next/server/app/login.rsc +2 -2
  290. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
  291. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  292. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
  293. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  294. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  295. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  296. package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
  298. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  299. package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
  300. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
  301. package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
  302. package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
  303. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
  304. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
  305. package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
  306. package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
  307. package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
  308. package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  310. package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
  311. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
  312. package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
  313. package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
  314. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
  315. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
  316. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
  317. package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
  318. package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
  319. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  320. package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
  321. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
  322. package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
  323. package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
  324. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
  325. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
  326. package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
  327. package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
  328. package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
  329. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  330. package/.next/standalone/.next/server/app/m/terminal.rsc +2 -2
  331. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +2 -2
  332. package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
  333. package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
  334. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
  335. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
  336. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
  337. package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
  338. package/.next/standalone/.next/server/app/m.html +1 -1
  339. package/.next/standalone/.next/server/app/m.rsc +2 -2
  340. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
  341. package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
  342. package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
  343. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
  344. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
  345. package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
  346. package/.next/standalone/.next/server/app/network.html +1 -1
  347. package/.next/standalone/.next/server/app/network.rsc +2 -2
  348. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
  349. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
  350. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  351. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
  352. package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
  353. package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
  354. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
  355. package/.next/standalone/.next/server/app/projects.html +1 -1
  356. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  357. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
  358. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
  359. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  360. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  361. package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  362. package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  363. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  364. package/.next/standalone/.next/server/app/sessions.html +1 -1
  365. package/.next/standalone/.next/server/app/sessions.rsc +2 -2
  366. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
  367. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
  368. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  369. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
  370. package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  371. package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
  372. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  373. package/.next/standalone/.next/server/app/settings.html +1 -1
  374. package/.next/standalone/.next/server/app/settings.rsc +2 -2
  375. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
  376. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
  377. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  378. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  379. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  380. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  381. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  382. package/.next/standalone/.next/server/app/terminal.html +1 -1
  383. package/.next/standalone/.next/server/app/terminal.rsc +3 -3
  384. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
  385. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
  386. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  387. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +3 -3
  388. package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  389. package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
  390. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
  391. package/.next/standalone/.next/server/app/vr/page_client-reference-manifest.js +1 -1
  392. package/.next/standalone/.next/server/app/vr.html +1 -1
  393. package/.next/standalone/.next/server/app/vr.rsc +2 -2
  394. package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +2 -2
  395. package/.next/standalone/.next/server/app/vr.segments/_head.segment.rsc +1 -1
  396. package/.next/standalone/.next/server/app/vr.segments/_index.segment.rsc +2 -2
  397. package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +2 -2
  398. package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +1 -1
  399. package/.next/standalone/.next/server/app/vr.segments/vr.segment.rsc +1 -1
  400. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  401. package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
  402. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
  403. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
  404. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  405. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
  406. package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
  407. package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
  408. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  409. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cf5ebdb._.js +3 -0
  410. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0f15af1e._.js +78 -0
  411. package/.next/standalone/.next/server/chunks/[root-of-the-server]__107eab8a._.js +3 -0
  412. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1094360c._.js +1 -1
  413. package/.next/standalone/.next/server/chunks/[root-of-the-server]__118ea5e0._.js +42 -0
  414. package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +5 -5
  415. package/.next/standalone/.next/server/chunks/[root-of-the-server]__16d4da21._.js +3 -0
  416. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c542684._.js +3 -0
  417. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f23bae4._.js +3 -0
  418. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1faefa3e._.js +19 -0
  419. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2145098e._.js +42 -0
  420. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2748c76c._.js +42 -0
  421. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2c08d908._.js +3 -0
  422. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2e29b4bd._.js +3 -0
  423. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e3ecfd17._.js → [root-of-the-server]__34fd47d2._.js} +3 -3
  424. package/.next/standalone/.next/server/chunks/[root-of-the-server]__366b6cec._.js +78 -0
  425. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4d51508f._.js +3 -0
  426. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5663673e._.js +3 -0
  427. package/.next/standalone/.next/server/chunks/[root-of-the-server]__57e0cc31._.js +133 -0
  428. package/.next/standalone/.next/server/chunks/[root-of-the-server]__57ebbe63._.js +42 -0
  429. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d3345e4._.js +3 -0
  430. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5ee7aa9d._.js +11 -0
  431. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60caf825._.js +3 -0
  432. package/.next/standalone/.next/server/chunks/[root-of-the-server]__65c9857f._.js +3 -0
  433. package/.next/standalone/.next/server/chunks/[root-of-the-server]__678f6823._.js +3 -0
  434. package/.next/standalone/.next/server/chunks/[root-of-the-server]__685c95d8._.js +3 -0
  435. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__41d4d426._.js → [root-of-the-server]__69568dc2._.js} +1 -1
  436. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6a0bc4ae._.js +3 -0
  437. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b876561._.js +3 -0
  438. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e89713c._.js +42 -0
  439. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f713737._.js +3 -0
  440. package/.next/standalone/.next/server/chunks/[root-of-the-server]__725f10f4._.js +78 -0
  441. package/.next/standalone/.next/server/chunks/[root-of-the-server]__785b0597._.js +38 -0
  442. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7c728bed._.js +3 -0
  443. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7da958b5._.js +42 -0
  444. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7daed406._.js +3 -0
  445. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7f140e4b._.js +78 -0
  446. package/.next/standalone/.next/server/chunks/[root-of-the-server]__80d826f7._.js +3 -0
  447. package/.next/standalone/.next/server/chunks/[root-of-the-server]__83a3c97b._.js +3 -0
  448. package/.next/standalone/.next/server/chunks/[root-of-the-server]__84c15a0e._.js +3 -0
  449. package/.next/standalone/.next/server/chunks/[root-of-the-server]__85c33341._.js +42 -0
  450. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88f3d920._.js +78 -0
  451. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c916e85._.js +3 -0
  452. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8deb2ae3._.js +3 -0
  453. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8df5a740._.js +3 -0
  454. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8f238bd9._.js +3 -0
  455. package/.next/standalone/.next/server/chunks/[root-of-the-server]__955ab668._.js +3 -0
  456. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9a061e91._.js +42 -0
  457. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a04a87d5._.js +42 -0
  458. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a803051f._.js +42 -0
  459. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac0a9b09._.js +3 -0
  460. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac3e37b6._.js +13 -0
  461. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__96685488._.js → [root-of-the-server]__add9e50d._.js} +1 -1
  462. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b57f4274._.js +3 -0
  463. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b84b3426._.js +3 -0
  464. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba8224a1._.js +42 -0
  465. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd1c1d0d._.js +42 -0
  466. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1442c38._.js +42 -0
  467. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c18bdab2._.js +42 -0
  468. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1efc6a8._.js +3 -0
  469. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c697b87e._.js +3 -0
  470. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c6dc43c6._.js +3 -0
  471. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccce7f4f._.js +78 -0
  472. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d92f347c._.js +3 -0
  473. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dac9e21e._.js +3 -0
  474. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3f9ddbc._.js +78 -0
  475. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e66fc05f._.js +3 -0
  476. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e7add82c._.js +3 -0
  477. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fa9a5ec0._.js +42 -0
  478. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ff9f6af0._.js +42 -0
  479. package/.next/standalone/.next/server/chunks/_0142f96b._.js +3 -0
  480. package/.next/standalone/.next/server/chunks/_0ebd30d3._.js +3 -0
  481. package/.next/standalone/.next/server/chunks/_19a59078._.js +3 -0
  482. package/.next/standalone/.next/server/chunks/_1bc02021._.js +11 -0
  483. package/.next/standalone/.next/server/chunks/_1e381a28._.js +3 -0
  484. package/.next/standalone/.next/server/chunks/_2699eda7._.js +3 -0
  485. package/.next/standalone/.next/server/chunks/_2fd02f70._.js +3 -0
  486. package/.next/standalone/.next/server/chunks/_373d522f._.js +3 -0
  487. package/.next/standalone/.next/server/chunks/_43fc1196._.js +3 -0
  488. package/.next/standalone/.next/server/chunks/_48ec4374._.js +3 -0
  489. package/.next/standalone/.next/server/chunks/_563d9ecc._.js +3 -0
  490. package/.next/standalone/.next/server/chunks/_583f9ae2._.js +3 -0
  491. package/.next/standalone/.next/server/chunks/_5a167705._.js +3 -0
  492. package/.next/standalone/.next/server/chunks/_5a8cc3a5._.js +3 -0
  493. package/.next/standalone/.next/server/chunks/_5d894fb4._.js +3 -0
  494. package/.next/standalone/.next/server/chunks/_6bbf8264._.js +3 -0
  495. package/.next/standalone/.next/server/chunks/_6c4bcec1._.js +3 -0
  496. package/.next/standalone/.next/server/chunks/_7a29d111._.js +3 -0
  497. package/.next/standalone/.next/server/chunks/_7d3bab25._.js +3 -0
  498. package/.next/standalone/.next/server/chunks/_7ed4d1a4._.js +3 -0
  499. package/.next/standalone/.next/server/chunks/_8072d20c._.js +3 -0
  500. package/.next/standalone/.next/server/chunks/_81b87c01._.js +3 -0
  501. package/.next/standalone/.next/server/chunks/_881b7b28._.js +3 -0
  502. package/.next/standalone/.next/server/chunks/_902a1d56._.js +3 -0
  503. package/.next/standalone/.next/server/chunks/_96258f1c._.js +3 -0
  504. package/.next/standalone/.next/server/chunks/_96f79f8f._.js +3 -0
  505. package/.next/standalone/.next/server/chunks/_a0379bc2._.js +3 -0
  506. package/.next/standalone/.next/server/chunks/_a0f604e8._.js +3 -0
  507. package/.next/standalone/.next/server/chunks/_a959b121._.js +3 -0
  508. package/.next/standalone/.next/server/chunks/_a975011f._.js +3 -0
  509. package/.next/standalone/.next/server/chunks/_aa956b66._.js +3 -0
  510. package/.next/standalone/.next/server/chunks/_ad7e7d57._.js +3 -0
  511. package/.next/standalone/.next/server/chunks/_aebf2285._.js +3 -0
  512. package/.next/standalone/.next/server/chunks/_b259dda0._.js +36 -0
  513. package/.next/standalone/.next/server/chunks/_b7c60fdc._.js +3 -0
  514. package/.next/standalone/.next/server/chunks/_bd23ddeb._.js +3 -0
  515. package/.next/standalone/.next/server/chunks/_cd02dfbe._.js +3 -0
  516. package/.next/standalone/.next/server/chunks/_d3ecca80._.js +3 -0
  517. package/.next/standalone/.next/server/chunks/_d48dfa43._.js +11 -0
  518. package/.next/standalone/.next/server/chunks/_dba648d6._.js +3 -0
  519. package/.next/standalone/.next/server/chunks/_df42ac6e._.js +3 -0
  520. package/.next/standalone/.next/server/chunks/_dfe0e460._.js +42 -0
  521. package/.next/standalone/.next/server/chunks/_ead2734e._.js +3 -0
  522. package/.next/standalone/.next/server/chunks/_eb4efd0a._.js +3 -0
  523. package/.next/standalone/.next/server/chunks/_eb66a871._.js +3 -0
  524. package/.next/standalone/.next/server/chunks/_ef715efd._.js +3 -0
  525. package/.next/standalone/.next/server/chunks/_f361a656._.js +3 -0
  526. package/.next/standalone/.next/server/chunks/_f54ddbf4._.js +3 -0
  527. package/.next/standalone/.next/server/chunks/_fe2866f2._.js +3 -0
  528. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_4c408326.js +3 -0
  529. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_5603adbc.js +3 -0
  530. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7180f8ad.js +3 -0
  531. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b6be66d9.js +3 -0
  532. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f7054fd7.js +3 -0
  533. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
  534. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +1 -1
  535. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__90eeddae._.js +1 -1
  536. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__ca3f649e._.js +1 -1
  537. package/.next/standalone/.next/server/middleware-manifest.json +1 -1
  538. package/.next/standalone/.next/server/pages/404.html +1 -1
  539. package/.next/standalone/.next/server/pages/500.html +2 -2
  540. package/.next/standalone/.next/static/chunks/{732b7502f82e7c37.css → 044decb96250e420.css} +1 -1
  541. package/.next/standalone/.next/static/chunks/{23a9627a951672ed.js → 8b53c673e79b82f1.js} +3 -3
  542. package/.next/standalone/bin/scrub-standalone.js +5 -0
  543. package/.next/standalone/bin/spaces-dev.js +13 -3
  544. package/.next/standalone/bin/spaces.js +25 -4
  545. package/.next/standalone/package-lock.json +2 -2
  546. package/.next/standalone/package.json +3 -2
  547. package/.next/standalone/src/app/(desktop)/terminal/page.tsx +22 -1
  548. package/.next/standalone/src/app/api/network/discovered/route.ts +2 -2
  549. package/.next/standalone/src/app/api/network/nodes/check/route.ts +2 -2
  550. package/.next/standalone/src/app/api/network/nodes/route.ts +2 -2
  551. package/.next/standalone/src/app/api/server-config/route.ts +9 -18
  552. package/.next/standalone/src/lib/admin/api/analytics.ts +1 -8
  553. package/.next/standalone/src/lib/admin/api/users.ts +1 -8
  554. package/.next/standalone/src/lib/admin/api/usersById.ts +1 -8
  555. package/.next/standalone/src/lib/auth/guard.ts +46 -0
  556. package/.next/standalone/src/lib/auth/index.ts +1 -0
  557. package/.next/standalone/src/lib/db/queries.ts +11 -1
  558. package/.next/standalone/src/lib/network/api/discovered.ts +4 -1
  559. package/.next/standalone/src/lib/network/api/identity.ts +6 -0
  560. package/.next/standalone/src/lib/network/api/keys.ts +6 -0
  561. package/.next/standalone/src/lib/network/api/keysById.ts +3 -0
  562. package/.next/standalone/src/lib/network/api/nodes.ts +49 -3
  563. package/.next/standalone/src/lib/network/api/nodesById.ts +5 -0
  564. package/.next/standalone/src/lib/network/api/nodesCheck.ts +4 -1
  565. package/.next/standalone/src/lib/network/api/proxy.ts +5 -0
  566. package/.next/standalone/src/middleware.ts +24 -10
  567. package/.next/standalone/tsconfig.tsbuildinfo +1 -1
  568. package/bin/scrub-standalone.js +5 -0
  569. package/bin/spaces-dev.js +13 -3
  570. package/bin/spaces.js +25 -4
  571. package/package.json +3 -2
  572. package/.next/standalone/.next/server/chunks/[externals]_next_dist_b89b5a39._.js +0 -3
  573. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0153ac12._.js +0 -133
  574. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01a4559c._.js +0 -3
  575. package/.next/standalone/.next/server/chunks/[root-of-the-server]__029ab763._.js +0 -133
  576. package/.next/standalone/.next/server/chunks/[root-of-the-server]__037992dc._.js +0 -141
  577. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06bb204a._.js +0 -133
  578. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fd17dcf._.js +0 -3
  579. package/.next/standalone/.next/server/chunks/[root-of-the-server]__107439ea._.js +0 -133
  580. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12dff461._.js +0 -78
  581. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13eb511a._.js +0 -133
  582. package/.next/standalone/.next/server/chunks/[root-of-the-server]__141c8d34._.js +0 -172
  583. package/.next/standalone/.next/server/chunks/[root-of-the-server]__151efd48._.js +0 -3
  584. package/.next/standalone/.next/server/chunks/[root-of-the-server]__16c141c2._.js +0 -133
  585. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17fee60c._.js +0 -133
  586. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a525be8._.js +0 -3
  587. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1aea45f5._.js +0 -3
  588. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1cb4ee6b._.js +0 -133
  589. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1e25d3db._.js +0 -133
  590. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1f7566a3._.js +0 -3
  591. package/.next/standalone/.next/server/chunks/[root-of-the-server]__20382bee._.js +0 -133
  592. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2082a624._.js +0 -133
  593. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2091a7ed._.js +0 -42
  594. package/.next/standalone/.next/server/chunks/[root-of-the-server]__24525ae7._.js +0 -133
  595. package/.next/standalone/.next/server/chunks/[root-of-the-server]__284b02fc._.js +0 -42
  596. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2a1a1d0f._.js +0 -42
  597. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2cf17888._.js +0 -42
  598. package/.next/standalone/.next/server/chunks/[root-of-the-server]__323ae5c9._.js +0 -133
  599. package/.next/standalone/.next/server/chunks/[root-of-the-server]__34db98f7._.js +0 -133
  600. package/.next/standalone/.next/server/chunks/[root-of-the-server]__39efba69._.js +0 -3
  601. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3aeedc57._.js +0 -133
  602. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3bbe9d04._.js +0 -78
  603. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3c2324ba._.js +0 -42
  604. package/.next/standalone/.next/server/chunks/[root-of-the-server]__40df3f5d._.js +0 -172
  605. package/.next/standalone/.next/server/chunks/[root-of-the-server]__42a3fe3c._.js +0 -141
  606. package/.next/standalone/.next/server/chunks/[root-of-the-server]__42d5d5be._.js +0 -3
  607. package/.next/standalone/.next/server/chunks/[root-of-the-server]__49821b61._.js +0 -133
  608. package/.next/standalone/.next/server/chunks/[root-of-the-server]__49f58cee._.js +0 -133
  609. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4b9c38dc._.js +0 -141
  610. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4c0ee9c7._.js +0 -133
  611. package/.next/standalone/.next/server/chunks/[root-of-the-server]__530862c6._.js +0 -3
  612. package/.next/standalone/.next/server/chunks/[root-of-the-server]__55504160._.js +0 -133
  613. package/.next/standalone/.next/server/chunks/[root-of-the-server]__599f26fe._.js +0 -42
  614. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5efa69f5._.js +0 -3
  615. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60483ece._.js +0 -3
  616. package/.next/standalone/.next/server/chunks/[root-of-the-server]__61135659._.js +0 -133
  617. package/.next/standalone/.next/server/chunks/[root-of-the-server]__66331034._.js +0 -133
  618. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6887294d._.js +0 -3
  619. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b9396b4._.js +0 -133
  620. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6cfd7062._.js +0 -166
  621. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6e8d89e2._.js +0 -149
  622. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f5b3cfe._.js +0 -133
  623. package/.next/standalone/.next/server/chunks/[root-of-the-server]__71d5b087._.js +0 -133
  624. package/.next/standalone/.next/server/chunks/[root-of-the-server]__76434a8e._.js +0 -78
  625. package/.next/standalone/.next/server/chunks/[root-of-the-server]__798bafa7._.js +0 -133
  626. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7b873fdb._.js +0 -78
  627. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7d73f791._.js +0 -133
  628. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7dc76d0e._.js +0 -133
  629. package/.next/standalone/.next/server/chunks/[root-of-the-server]__80a85d1f._.js +0 -133
  630. package/.next/standalone/.next/server/chunks/[root-of-the-server]__81f2a9b7._.js +0 -133
  631. package/.next/standalone/.next/server/chunks/[root-of-the-server]__82f11618._.js +0 -3
  632. package/.next/standalone/.next/server/chunks/[root-of-the-server]__834efefe._.js +0 -42
  633. package/.next/standalone/.next/server/chunks/[root-of-the-server]__853663ea._.js +0 -42
  634. package/.next/standalone/.next/server/chunks/[root-of-the-server]__861f2472._.js +0 -172
  635. package/.next/standalone/.next/server/chunks/[root-of-the-server]__882d0924._.js +0 -133
  636. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88959e7f._.js +0 -133
  637. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b6c05dc._.js +0 -133
  638. package/.next/standalone/.next/server/chunks/[root-of-the-server]__912a22a4._.js +0 -133
  639. package/.next/standalone/.next/server/chunks/[root-of-the-server]__93d21ad1._.js +0 -42
  640. package/.next/standalone/.next/server/chunks/[root-of-the-server]__94532b09._.js +0 -42
  641. package/.next/standalone/.next/server/chunks/[root-of-the-server]__97e87518._.js +0 -78
  642. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9c13c8d0._.js +0 -78
  643. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9cb13212._.js +0 -133
  644. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d315363._.js +0 -133
  645. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9ec369db._.js +0 -13
  646. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f09ade5._.js +0 -133
  647. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f986ad2._.js +0 -133
  648. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a35913cf._.js +0 -172
  649. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a3641117._.js +0 -78
  650. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a76c75a0._.js +0 -133
  651. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a934c48d._.js +0 -133
  652. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9431ac6._.js +0 -133
  653. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa3381a4._.js +0 -133
  654. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab1cc16c._.js +0 -133
  655. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab22ca4f._.js +0 -133
  656. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac20d518._.js +0 -78
  657. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aee3bf91._.js +0 -172
  658. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b1114936._.js +0 -133
  659. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b15ade1f._.js +0 -133
  660. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b2bc7a81._.js +0 -133
  661. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b51446e5._.js +0 -133
  662. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba344563._.js +0 -133
  663. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c3b2e20c._.js +0 -133
  664. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ca93ae79._.js +0 -42
  665. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf4a76c0._.js +0 -133
  666. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d20bed9e._.js +0 -78
  667. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d2d59054._.js +0 -133
  668. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d4f1c0c0._.js +0 -38
  669. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d6de7a45._.js +0 -133
  670. package/.next/standalone/.next/server/chunks/[root-of-the-server]__da33b519._.js +0 -133
  671. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dc820e44._.js +0 -133
  672. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1058e69._.js +0 -133
  673. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e1dfb4d4._.js +0 -3
  674. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3606cd1._.js +0 -3
  675. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e55b6fc5._.js +0 -133
  676. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e6555dc3._.js +0 -133
  677. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e65c3971._.js +0 -3
  678. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ea9e2d75._.js +0 -133
  679. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ec37cbee._.js +0 -133
  680. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f3c19e4b._.js +0 -42
  681. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f445bd01._.js +0 -3
  682. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f7b0b4da._.js +0 -133
  683. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fb4c016b._.js +0 -133
  684. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd86530e._.js +0 -78
  685. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fef9b1ec._.js +0 -133
  686. package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-design.md +0 -133
  687. package/.next/standalone/docs/plans/2026-02-24-multi-agent-sessions-plan.md +0 -959
  688. package/.next/standalone/docs/plans/2026-03-07-service-command-design.md +0 -146
  689. package/.next/standalone/docs/plans/2026-03-07-service-command-plan.md +0 -254
  690. package/.next/standalone/docs/plans/2026-04-23-consolidate-addons-design.md +0 -212
  691. package/.next/standalone/docs/plans/2026-04-23-consolidate-addons-plan.md +0 -1509
  692. package/.next/standalone/docs/superpowers/plans/2026-03-12-spaces-cortex.md +0 -5270
  693. package/.next/standalone/docs/superpowers/plans/2026-03-13-cortex-wiring.md +0 -1387
  694. package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-entity-graph.md +0 -1923
  695. package/.next/standalone/docs/superpowers/plans/2026-03-14-cortex-v2-knowledge-evolution.md +0 -1113
  696. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-boundary-engine.md +0 -853
  697. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-context-engine.md +0 -1274
  698. package/.next/standalone/docs/superpowers/plans/2026-03-15-cortex-v2-signal-ingestion.md +0 -933
  699. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-lobes.md +0 -1080
  700. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-gravity-system.md +0 -768
  701. package/.next/standalone/docs/superpowers/plans/2026-03-16-cortex-v2-ui.md +0 -1108
  702. package/.next/standalone/docs/superpowers/plans/2026-03-18-cortex-ui-integration.md +0 -1846
  703. package/.next/standalone/docs/superpowers/plans/2026-03-19-vr-phase1-shell.md +0 -1639
  704. package/.next/standalone/docs/superpowers/plans/2026-03-27-dockview-pane-layout.md +0 -98
  705. package/.next/standalone/docs/superpowers/plans/2026-04-21-workspace-todos.md +0 -1097
  706. package/.next/standalone/docs/superpowers/plans/2026-04-22-claude-usage-display.md +0 -749
  707. package/.next/standalone/docs/superpowers/specs/2026-03-11-universe-view-design.md +0 -320
  708. package/.next/standalone/docs/superpowers/specs/2026-03-12-spaces-brain-design.md +0 -720
  709. package/.next/standalone/docs/superpowers/specs/2026-03-13-cortex-wiring-design.md +0 -268
  710. package/.next/standalone/docs/superpowers/specs/2026-03-14-cortex-v2-design.md +0 -623
  711. package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-lobes-design.md +0 -263
  712. package/.next/standalone/docs/superpowers/specs/2026-03-16-cortex-v2-ui-design.md +0 -240
  713. package/.next/standalone/docs/superpowers/specs/2026-03-16-pane-ux-design.md +0 -77
  714. package/.next/standalone/docs/superpowers/specs/2026-03-18-cortex-ui-integration-design.md +0 -341
  715. package/.next/standalone/docs/superpowers/specs/2026-03-19-vr-phase1-shell-design.md +0 -288
  716. package/.next/standalone/docs/superpowers/specs/2026-03-27-pane-diff-review-and-project-wizard-design.md +0 -322
  717. package/.next/standalone/docs/superpowers/specs/2026-04-21-workspace-todos-design.md +0 -180
  718. package/.next/standalone/docs/superpowers/specs/2026-04-22-claude-usage-display-design.md +0 -183
  719. /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_buildManifest.js +0 -0
  720. /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_clientMiddlewareManifest.json +0 -0
  721. /package/.next/standalone/.next/static/{Y9EeSGuSi-8qpkLvIBy0a → mimGB6C_ZmJMiVnOe9tqZ}/_ssgManifest.js +0 -0
@@ -1,146 +0,0 @@
1
- # Design: `spaces service` subcommand
2
-
3
- **Date:** 2026-03-07
4
-
5
- ## Purpose
6
-
7
- Allow customers to install Spaces as a persistent system service so it starts automatically on boot/login without manual intervention.
8
-
9
- ## CLI Interface
10
-
11
- ```
12
- spaces service install # prompts: system or user level
13
- spaces service uninstall # stops, disables, removes service config
14
- spaces service start # starts via service manager
15
- spaces service stop # stops via service manager
16
- spaces service status # shows running state
17
- spaces service logs # tails service logs
18
- ```
19
-
20
- ## Config Capture
21
-
22
- `install` reads the current resolved config (port, tier, base-path, allowed-origins) from `~/.spaces/server.json` and bakes them into the service definition as environment variables. Also captures:
23
-
24
- - `process.execPath` — exact node binary (handles nvm/fnm)
25
- - Resolved path to `bin/spaces.js`
26
-
27
- Running `install` again overwrites the existing definition and restarts — idempotent, safe to re-run after config changes.
28
-
29
- ## Install Prompt
30
-
31
- ```
32
- Install as:
33
- 1. System service (starts on boot, runs as root)
34
- 2. User service (starts on login, runs as your user)
35
- Choice [2]:
36
- ```
37
-
38
- Default is user-level (most customers won't have root/admin).
39
-
40
- ## Platform: Linux (systemd)
41
-
42
- **User service:** `~/.config/systemd/user/spaces.service`, managed with `systemctl --user`.
43
-
44
- **System service:** `/etc/systemd/system/spaces.service`, managed with `systemctl`. Runs as the installing user (`User=`/`Group=` directives). Re-execs with `sudo` if needed.
45
-
46
- Unit file template (user-level):
47
-
48
- ```ini
49
- [Unit]
50
- Description=Spaces - Agent Workspace Manager
51
- After=network.target
52
-
53
- [Service]
54
- Type=simple
55
- ExecStart=/path/to/node /path/to/spaces.js
56
- WorkingDirectory=/path/to/spaces/project
57
- Environment=SPACES_PORT=3457
58
- Environment=SPACES_TIER=community
59
- Environment=SPACES_BASE_PATH=
60
- Environment=SPACES_ALLOWED_ORIGINS=
61
- Restart=on-failure
62
- RestartSec=5
63
-
64
- [Install]
65
- WantedBy=default.target
66
- ```
67
-
68
- System-level uses `multi-user.target` and adds `User=`/`Group=`.
69
-
70
- After writing, `install` runs `daemon-reload`, `enable`, and `start`.
71
-
72
- **Logs:** `journalctl --user -u spaces -f` (user) or `journalctl -u spaces -f` (system).
73
-
74
- ## Platform: macOS (launchd)
75
-
76
- **User service:** `~/Library/LaunchAgents/com.agentspaces.spaces.plist`
77
-
78
- **System service:** `/Library/LaunchDaemons/com.agentspaces.spaces.plist` (requires sudo, uses `UserName` key).
79
-
80
- Plist template:
81
-
82
- ```xml
83
- <?xml version="1.0" encoding="UTF-8"?>
84
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
85
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
86
- <plist version="1.0">
87
- <dict>
88
- <key>Label</key>
89
- <string>com.agentspaces.spaces</string>
90
- <key>ProgramArguments</key>
91
- <array>
92
- <string>/path/to/node</string>
93
- <string>/path/to/spaces.js</string>
94
- </array>
95
- <key>WorkingDirectory</key>
96
- <string>/path/to/spaces/project</string>
97
- <key>EnvironmentVariables</key>
98
- <dict>
99
- <key>SPACES_PORT</key><string>3457</string>
100
- <key>SPACES_TIER</key><string>community</string>
101
- </dict>
102
- <key>RunAtLoad</key><true/>
103
- <key>KeepAlive</key><true/>
104
- <key>StandardOutPath</key>
105
- <string>/path/to/.spaces/logs/spaces.out.log</string>
106
- <key>StandardErrorPath</key>
107
- <string>/path/to/.spaces/logs/spaces.err.log</string>
108
- </dict>
109
- </plist>
110
- ```
111
-
112
- **Logs:** `tail -f ~/.spaces/logs/spaces.out.log`
113
-
114
- `install` runs `launchctl load -w` / `launchctl bootstrap`. `uninstall` runs `launchctl unload` then deletes the plist.
115
-
116
- ## Platform: Windows (Task Scheduler)
117
-
118
- Both user and system level use Task Scheduler (avoids needing `node-windows` or similar deps).
119
-
120
- **User service:** `schtasks /Create /TN "Spaces" /TR "..." /SC ONLOGON /RL HIGHEST`
121
-
122
- **System service:** `schtasks /Create /TN "Spaces" /TR "..." /SC ONSTART /RU SYSTEM`
123
-
124
- **Logs:** Output redirected to `%USERPROFILE%\.spaces\logs\spaces.out.log`.
125
-
126
- ## Implementation
127
-
128
- Single file: `bin/spaces-service.js`. Detects platform via `process.platform` and dispatches to platform-specific functions. Each platform's install/uninstall is ~40-60 lines — small enough for one file.
129
-
130
- Routing in `bin/spaces.js` follows the same pattern as `spaces install`:
131
-
132
- ```js
133
- if (subcommand === 'service') {
134
- const serviceScript = path.join(__dirname, 'spaces-service.js');
135
- const { status } = spawnSync(process.execPath, [serviceScript, ...args.slice(1)], {
136
- stdio: 'inherit', env: process.env
137
- });
138
- process.exit(status || 0);
139
- }
140
- ```
141
-
142
- ## What's NOT in scope
143
-
144
- - No dependency on `node-windows`, `node-mac`, or `node-linux`
145
- - `uninstall` does not touch `~/.spaces/` data — only removes the service config
146
- - No Docker/container support (services don't make sense inside containers)
@@ -1,254 +0,0 @@
1
- # `spaces service` Implementation Plan
2
-
3
- > **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
4
-
5
- **Goal:** Add a `spaces service` subcommand that installs/manages Spaces as a persistent OS service on Linux (systemd), macOS (launchd), and Windows (Task Scheduler).
6
-
7
- **Architecture:** Single file `bin/spaces-service.js` dispatched from `bin/spaces.js`. Platform detection via `process.platform` routes to platform-specific install/uninstall/start/stop/status/logs functions. Config is read from `~/.spaces/server.json` and baked into service definitions.
8
-
9
- **Tech Stack:** Node.js (no new dependencies). Uses `child_process.execFileSync`/`spawnSync` for service manager commands. `readline` for interactive prompt.
10
-
11
- **Design doc:** `docs/plans/2026-03-07-service-command-design.md`
12
-
13
- ---
14
-
15
- ### Task 1: Route `service` subcommand in `bin/spaces.js`
16
-
17
- **Files:**
18
- - Modify: `bin/spaces.js:29-46` (help text)
19
- - Modify: `bin/spaces.js:56-65` (subcommand routing)
20
-
21
- **Step 1: Add service to help text**
22
-
23
- In `bin/spaces.js`, find the help text block and add the service commands. Change:
24
-
25
- ```js
26
- spaces --help Show this help
27
- ```
28
-
29
- to:
30
-
31
- ```js
32
- spaces service install Install as OS service (systemd/launchd/Task Scheduler)
33
- spaces service uninstall Remove OS service
34
- spaces service start Start the service
35
- spaces service stop Stop the service
36
- spaces service status Show service status
37
- spaces service logs Tail service logs
38
- spaces --help Show this help
39
- ```
40
-
41
- **Step 2: Add routing for `service` subcommand**
42
-
43
- In `bin/spaces.js`, after the install/uninstall/verify/upgrade routing block (line 57-65), add a new block before the setup wizard section:
44
-
45
- ```js
46
- // ─── Route service commands to spaces-service.js ─────
47
- if (subcommand === 'service') {
48
- const serviceScript = path.join(__dirname, 'spaces-service.js');
49
- const { status } = require('child_process').spawnSync(
50
- process.execPath, [serviceScript, ...args.slice(1)],
51
- { stdio: 'inherit', env: process.env }
52
- );
53
- process.exit(status || 0);
54
- }
55
- ```
56
-
57
- **Step 3: Verify routing works**
58
-
59
- Run: `node bin/spaces.js --help`
60
- Expected: Service commands appear in help output.
61
-
62
- Run: `node bin/spaces.js service`
63
- Expected: Error about missing `spaces-service.js` (we haven't created it yet) or "Unknown command" -- confirms routing is wired.
64
-
65
- **Step 4: Commit**
66
-
67
- ```bash
68
- git add bin/spaces.js
69
- git commit -m "Add service subcommand routing and help text"
70
- ```
71
-
72
- ---
73
-
74
- ### Task 2: Create `bin/spaces-service.js` -- scaffolding, config capture, and prompt
75
-
76
- **Files:**
77
- - Create: `bin/spaces-service.js`
78
-
79
- **Step 1: Create the file with shared helpers and CLI dispatch**
80
-
81
- Create `bin/spaces-service.js` with:
82
- - Shared constants: `SPACES_DIR`, `CONFIG_PATH`, `LOGS_DIR`, `SERVICE_NAME` (`spaces`), `LABEL` (`com.agentspaces.spaces`), `TASK_NAME` (`Spaces`)
83
- - Helper functions: `log()`, `logOk()`, `logErr()` (same pattern as spaces-install.js)
84
- - `resolveConfig()` -- reads `~/.spaces/server.json`, returns `{ port, tier, basePath, allowedOrigins }` with defaults
85
- - `resolveSpacesPath()` -- returns `path.join(__dirname, 'spaces.js')`
86
- - `resolveProjectDir()` -- returns `path.join(__dirname, '..')`
87
- - `resolveNodePath()` -- returns `process.execPath`
88
- - `promptLevel()` -- uses readline to ask system vs user, defaults to user (choice 2)
89
- - `ensureLogsDir()` -- creates `~/.spaces/logs/` via `fs.mkdirSync` with recursive
90
- - `LEVEL_PATH` (`~/.spaces/service-level`) -- tracks installed level so start/stop/status/logs know which to target
91
- - `saveLevel(level)` and `loadLevel()` -- write/read the level file
92
- - `getPlatform()` -- returns `linux`/`darwin`/`win32` or exits with error
93
- - Dispatch table mapping platform to `{ install, uninstall, start, stop, status, logs }` functions
94
- - `main()` async function that reads `process.argv[2]` as action, dispatches to platform function
95
- - Stub function declarations for all 18 platform functions (will be filled in Tasks 3-5)
96
-
97
- **Step 2: Verify scaffolding runs**
98
-
99
- Run: `node bin/spaces-service.js`
100
- Expected: Prints usage message and exits cleanly.
101
-
102
- **Step 3: Commit**
103
-
104
- ```bash
105
- git add bin/spaces-service.js
106
- git commit -m "Add spaces-service.js scaffolding with config capture and prompt"
107
- ```
108
-
109
- ---
110
-
111
- ### Task 3: Implement Linux (systemd) functions
112
-
113
- **Files:**
114
- - Modify: `bin/spaces-service.js` (fill in Linux stubs)
115
-
116
- **Step 1: Implement all Linux functions**
117
-
118
- - `linuxServicePath(level)` -- returns `/etc/systemd/system/spaces.service` for system, `~/.config/systemd/user/spaces.service` for user (creates dir with `mkdirSync` recursive)
119
- - `linuxUnitFile(level)` -- generates systemd unit file string:
120
- - `[Unit]` with `Description` and `After=network.target`
121
- - `[Service]` with `Type=simple`, `ExecStart` (node + spaces.js), `WorkingDirectory`, `Environment` lines for port/tier/basePath/allowedOrigins, `Restart=on-failure`, `RestartSec=5`
122
- - System level adds `User=` and `Group=` from `os.userInfo().username`
123
- - `[Install]` with `WantedBy=multi-user.target` (system) or `default.target` (user)
124
- - `linuxSystemctl(level, ...args)` -- runs `sudo systemctl ...args` for system, `systemctl --user ...args` for user, via `execFileSync` with `stdio: 'inherit'`
125
- - `linuxInstall()` -- prompts level, writes unit file (via `sudo tee` for system, `fs.writeFileSync` for user), saves level, runs daemon-reload + enable + start. For user level, also runs `loginctl enable-linger` so service survives logout.
126
- - `linuxUninstall()` -- loads saved level, stops + disables + removes unit file + daemon-reload + removes level file
127
- - `linuxStart()` / `linuxStop()` -- loads level, runs systemctl start/stop
128
- - `linuxStatus()` -- loads level, runs systemctl status (catches non-zero exit from stopped services)
129
- - `linuxLogs()` -- loads level, runs `journalctl -u spaces -f --no-pager` (with `--user` for user level, `sudo` for system level) via `spawnSync` with `stdio: 'inherit'`
130
-
131
- All service manager calls use `execFileSync` (not `exec`) to prevent shell injection.
132
-
133
- **Step 2: Test on this Linux machine**
134
-
135
- Run: `node bin/spaces-service.js install` (choose user)
136
- Then: `node bin/spaces-service.js status`
137
- Then: `node bin/spaces-service.js uninstall`
138
-
139
- **Step 3: Commit**
140
-
141
- ```bash
142
- git add bin/spaces-service.js
143
- git commit -m "Implement Linux systemd service management"
144
- ```
145
-
146
- ---
147
-
148
- ### Task 4: Implement macOS (launchd) functions
149
-
150
- **Files:**
151
- - Modify: `bin/spaces-service.js` (fill in macOS stubs)
152
-
153
- **Step 1: Implement all macOS functions**
154
-
155
- - `darwinPlistPath(level)` -- returns `/Library/LaunchDaemons/com.agentspaces.spaces.plist` for system, `~/Library/LaunchAgents/com.agentspaces.spaces.plist` for user
156
- - `darwinPlistContent(level)` -- generates XML plist string with:
157
- - `Label`: `com.agentspaces.spaces`
158
- - `ProgramArguments`: array with node path and spaces.js path
159
- - `WorkingDirectory`: project dir
160
- - `EnvironmentVariables`: dict with port, tier, basePath (if set), allowedOrigins (if set)
161
- - `RunAtLoad`: true, `KeepAlive`: true
162
- - `StandardOutPath` / `StandardErrorPath`: `~/.spaces/logs/spaces.out.log` and `.err.log`
163
- - System level adds `UserName` key
164
- - `darwinInstall()` -- prompts level, unloads existing if present, writes plist (via `sudo tee` + `chown root:wheel` + `chmod 644` for system, `fs.writeFileSync` for user), saves level, loads with `launchctl load -w`
165
- - `darwinUninstall()` -- loads level, runs `launchctl unload -w`, deletes plist file, removes level file
166
- - `darwinStart()` / `darwinStop()` -- loads level, runs `launchctl load -w` / `launchctl unload -w`
167
- - `darwinStatus()` -- runs `launchctl list`, filters output for the label
168
- - `darwinLogs()` -- runs `tail -f ~/.spaces/logs/spaces.out.log` via `spawnSync`
169
-
170
- **Step 2: Commit**
171
-
172
- ```bash
173
- git add bin/spaces-service.js
174
- git commit -m "Implement macOS launchd service management"
175
- ```
176
-
177
- ---
178
-
179
- ### Task 5: Implement Windows (Task Scheduler) functions
180
-
181
- **Files:**
182
- - Modify: `bin/spaces-service.js` (fill in Windows stubs)
183
-
184
- **Step 1: Implement all Windows functions**
185
-
186
- - `win32WrapperScript()` -- writes a `.cmd` file to `~/.spaces/spaces-service.cmd` that sets environment variables and runs `node spaces.js` with stdout/stderr redirected to log files. Returns the wrapper path. This is needed because `schtasks /TR` doesn't handle multi-arg commands or env vars well.
187
- - `win32Install()` -- prompts level, generates wrapper script, deletes existing task (`schtasks /Delete /TN Spaces /F`), creates task with `/SC ONLOGON /RL HIGHEST` (user) or `/SC ONSTART /RU SYSTEM` (system), saves level, starts immediately with `/Run`
188
- - `win32Uninstall()` -- ends task (`/End`), deletes task (`/Delete /F`), removes wrapper script and level file
189
- - `win32Start()` / `win32Stop()` -- runs `schtasks /Run` / `schtasks /End`
190
- - `win32Status()` -- runs `schtasks /Query /TN Spaces /V /FO LIST`
191
- - `win32Logs()` -- runs `powershell -Command "Get-Content path -Wait -Tail 50"` via `spawnSync`
192
-
193
- All `schtasks` calls use `execFileSync` with array args (no shell).
194
-
195
- **Step 2: Commit**
196
-
197
- ```bash
198
- git add bin/spaces-service.js
199
- git commit -m "Implement Windows Task Scheduler service management"
200
- ```
201
-
202
- ---
203
-
204
- ### Task 6: Update documentation
205
-
206
- **Files:**
207
- - Modify: `docs/server-install.md`
208
-
209
- **Step 1: Add "Running as a Service" section**
210
-
211
- After the "CLI Reference" section (~line 295), add a new section covering:
212
- - `spaces service install` with explanation of the system/user prompt
213
- - Table of all service subcommands (status, stop, start, logs, uninstall)
214
- - Note about re-running install after config changes
215
- - Platform details table (Linux/macOS/Windows with paths for user and system level)
216
- - Logs info (journalctl for Linux, file-based for macOS/Windows)
217
-
218
- **Step 2: Update CLI Reference**
219
-
220
- Add `spaces service <action>` line to the existing CLI Reference block.
221
-
222
- **Step 3: Commit**
223
-
224
- ```bash
225
- git add docs/server-install.md
226
- git commit -m "Add service management docs to server-install.md"
227
- ```
228
-
229
- ---
230
-
231
- ### Task 7: End-to-end test on Linux
232
-
233
- **Step 1: Test full lifecycle**
234
-
235
- ```bash
236
- node bin/spaces.js service install # choose user
237
- node bin/spaces.js service status # should show active
238
- node bin/spaces.js service logs # Ctrl+C after seeing output
239
- node bin/spaces.js service stop # should stop
240
- node bin/spaces.js service status # should show inactive
241
- node bin/spaces.js service start # should restart
242
- node bin/spaces.js service uninstall # should clean up
243
- ```
244
-
245
- **Step 2: Verify cleanup**
246
-
247
- Confirm no leftover files at `~/.config/systemd/user/spaces.service` or `~/.spaces/service-level`.
248
-
249
- **Step 3: Commit any fixes**
250
-
251
- ```bash
252
- git add -A
253
- git commit -m "Fix issues found during service e2e testing"
254
- ```
@@ -1,212 +0,0 @@
1
- # Consolidating Spaces Addons — Design
2
-
3
- **Status:** proposed
4
- **Author:** jlongo78 (with Claude)
5
- **Date:** 2026-04-23
6
- **Paired plan:** `docs/plans/2026-04-23-consolidate-addons-plan.md`
7
-
8
- ## Problem
9
-
10
- Spaces currently ships as an open-source core (`@jlongo78/agent-spaces`, AGPL-3.0) with three optional addons loaded at runtime via `createRequire`:
11
-
12
- - `@spaces/pro` — federation/network (private)
13
- - `@spaces/teams` — auth, admin, collaboration bus, MCP server (private)
14
- - `@spaces/cortex` — RAG knowledge engine (separate repo, heavier product)
15
-
16
- The addon architecture exists to gate features behind tiers (`community | team | federation`). In practice:
17
-
18
- - The tier/install machinery is a persistent source of setup friction (`bin/spaces-install.js`, NODE_PATH resolution in `bin/spaces.js:309-349`, `@spaces/teams` peer-dep dance, `createRequire` anchor files).
19
- - We are not monetizing Spaces and have no near-term plans to. The tier abstraction pays no dividend.
20
- - ~30 Next.js route handlers are thin proxies (`pro?.network.api.X.Y(req) ?? notAvailable()`) whose only purpose is to handle the absent-addon case.
21
- - The two stub shims (`src/lib/pro.ts`, `src/lib/teams.ts`) add cognitive load for anyone reading the auth/federation code.
22
-
23
- ## Goals
24
-
25
- 1. Fold `@spaces/pro` source into `spaces/src/lib/network/`.
26
- 2. Fold `@spaces/teams` source into `spaces/src/lib/{auth,admin,collab}/` and `spaces/bin/`.
27
- 3. Delete the `createRequire` stub layer, the tier install workflow, and the `@spaces/*` NODE_PATH resolution in the launcher.
28
- 4. Preserve current behavior for existing installs (desktop users stay logged out by default; server operators still gate with auth + admin DB).
29
- 5. Keep `@spaces/cortex` as an external optional addon — unchanged.
30
-
31
- ## Non-goals
32
-
33
- - No conversion of `.js` files to TypeScript during the move. Defer TS conversion of `bus/broker.js`, `db/queries.js`, `db/migrations.js`, and collab route handlers to a follow-up.
34
- - No changes to cortex, to the `src/lib/cortex/*` stub layer, or to the `@spaces/cortex` package.
35
- - No rewrite of auth UX, session format, or TOTP flow. Same wire format, same DB schema.
36
- - No changes to the federation protocol or `/api/network/*` contract. Same wire format.
37
-
38
- ## Current architecture
39
-
40
- ```
41
- spaces/
42
- ├── src/
43
- │ ├── middleware.ts ← auth gate keyed off HAS_AUTH (from tier.ts)
44
- │ ├── lib/
45
- │ │ ├── auth.ts ← getAuthUser/withUser (AsyncLocalStorage)
46
- │ │ ├── tier.ts ← TIER/HAS_AUTH/HAS_NETWORK/IS_DESKTOP flags
47
- │ │ ├── pro.ts ← createRequire shim → @spaces/pro
48
- │ │ ├── teams.ts ← createRequire shim → @spaces/teams
49
- │ │ └── config.ts ← calls getTeams() for shell-user resolution
50
- │ └── app/api/
51
- │ ├── admin/*/route.ts ← thin proxy → teams.admin.api.X.Y(req)
52
- │ ├── auth/*/route.ts ← thin proxy → teams.auth.api.X.Y(req)
53
- │ ├── network/*/route.ts ← thin proxy → pro.network.api.X.Y(req)
54
- │ └── workspaces/[id]/
55
- │ ├── messages/*/route.ts ← thin proxy → teams.api.messages.X(req)
56
- │ └── context/*/route.ts ← thin proxy → teams.api.context.X(req)
57
- └── bin/
58
- ├── spaces.js ← lines 242-360: tier detect, NODE_PATH, addon probe
59
- ├── spaces-install.js ← install/remove @spaces/{pro,teams,cortex}
60
- └── lib/auto-setup.js ← session secret + admin.db bootstrap
61
-
62
- spaces-pro/ ← private, 27 src files, network-only
63
- └── src/network/ ← identity, auth, db, client, aggregator + 18 API handlers
64
-
65
- spaces-teams/ ← private, 18 TS + 9 JS files under src/
66
- └── src/
67
- ├── auth/{session,totp}.ts + api/{login,logout,me,totpSetup,totpStatus,totpVerify}.ts
68
- ├── admin/{db.ts,index.ts} + api/{analytics,users,usersById}.ts
69
- ├── bus/broker.js
70
- ├── db/{migrations,queries}.js
71
- ├── api/{messages,messageById,context,contextByKey}.js ← collab route handlers
72
- ├── terminal/collaboration.js
73
- ├── init.js
74
- └── middleware.ts ← stale; spaces/src/middleware.ts is canonical
75
- bin/
76
- ├── spaces-msg.js ← CLI: post messages from a pane
77
- ├── mcp-server.js ← MCP server for agent→workspace messaging
78
- └── spaces-hook.js ← Claude Code hook
79
- ```
80
-
81
- ## Target architecture
82
-
83
- ```
84
- spaces/
85
- ├── src/
86
- │ ├── middleware.ts ← keyed off IS_MULTIUSER (renamed from HAS_AUTH)
87
- │ ├── lib/
88
- │ │ ├── auth/ ← folder, preserves @/lib/auth imports
89
- │ │ │ ├── index.ts ← re-exports: getAuthUser, withUser, session, totp
90
- │ │ │ ├── context.ts ← getAuthUser, withUser (from current auth.ts)
91
- │ │ │ ├── session.ts ← from spaces-teams/src/auth/session.ts
92
- │ │ │ └── totp.ts ← from spaces-teams/src/auth/totp.ts
93
- │ │ ├── admin/
94
- │ │ │ ├── index.ts ← from spaces-teams/src/admin/index.ts
95
- │ │ │ └── db.ts ← from spaces-teams/src/admin/db.ts
96
- │ │ ├── collab/
97
- │ │ │ ├── broker.js ← from spaces-teams/src/bus/broker.js (unchanged)
98
- │ │ │ ├── queries.js ← from spaces-teams/src/db/queries.js
99
- │ │ │ └── migrations.js ← from spaces-teams/src/db/migrations.js
100
- │ │ ├── network/ ← from spaces-pro/src/network/ (whole dir)
101
- │ │ │ ├── index.ts, identity.ts, auth.ts, db.ts, client.ts, aggregator.ts
102
- │ │ │ └── api/ … ← the 18 API handler modules
103
- │ │ ├── terminal/
104
- │ │ │ └── collaboration.js ← from spaces-teams/src/terminal/collaboration.js
105
- │ │ ├── flags.ts ← replaces tier.ts: single IS_MULTIUSER flag
106
- │ │ ├── config.ts ← imports resolveShellUser from @/lib/admin
107
- │ │ └── pro.ts, teams.ts ← DELETED
108
- │ └── app/api/
109
- │ ├── admin/*/route.ts ← calls @/lib/admin directly (no proxy)
110
- │ ├── auth/*/route.ts ← calls @/lib/auth directly
111
- │ ├── network/*/route.ts ← calls @/lib/network directly
112
- │ └── workspaces/[id]/
113
- │ ├── messages/*/route.ts ← calls @/lib/collab directly
114
- │ └── context/*/route.ts ← calls @/lib/collab directly
115
- └── bin/
116
- ├── spaces.js ← tier block deleted; always sets up secret + admin.db
117
- ├── spaces-install.js ← install/remove of @spaces/cortex only
118
- ├── spaces-msg.js ← from spaces-teams/bin/spaces-msg.js
119
- ├── spaces-mcp.js ← from spaces-teams/bin/mcp-server.js
120
- ├── spaces-hook.js ← from spaces-teams/bin/spaces-hook.js
121
- └── lib/auto-setup.js ← runs unconditionally now
122
-
123
- ~/archive/
124
- ├── spaces-pro/ ← moved out of active dev tree
125
- └── spaces-teams/
126
- ```
127
-
128
- ## Design decisions
129
-
130
- ### D1 — Desktop-vs-server flag
131
-
132
- **Problem:** Today `HAS_AUTH` is derived from `TIER`. Folding teams in removes the tier concept but we still need the middleware to skip login for solo desktop users.
133
-
134
- **Decision:** Replace `tier.ts` with `flags.ts` exposing a single `IS_MULTIUSER` flag (default `false`). The launcher (`bin/spaces.js`) leaves it unset for the desktop npm install; a server operator sets `SPACES_MULTIUSER=1` (or equivalent CLI flag) to enable login + admin UI.
135
-
136
- **Federation is always on.** The network/federation routes (`/api/network/*`) are live regardless of mode — with no peer nodes configured, list endpoints just return empty arrays. There is no flag gate and no `IS_FEDERATION` constant. Rationale: the routes are harmless without configured nodes, and adding a gate adds friction for solo users who want to pair a second node later.
137
-
138
- **Future (not in this plan):** eventually drop `SPACES_MULTIUSER` entirely and auto-detect multiuser mode from the presence of users in `admin.db`. Requires a different startup flow that bootstraps `admin.db` on first launch; deferred.
139
-
140
- **Rationale:** Inverts current `HAS_AUTH` without changing the wire format of sessions, cookies, or APIs. One knob, one behavior.
141
-
142
- **Impact on `middleware.ts`:**
143
- ```ts
144
- // before
145
- import { HAS_AUTH } from '@/lib/tier';
146
- if (!HAS_AUTH) return NextResponse.next();
147
-
148
- // after
149
- import { IS_MULTIUSER } from '@/lib/flags';
150
- if (!IS_MULTIUSER) return NextResponse.next();
151
- ```
152
-
153
- ### D2 — Auth folder layout
154
-
155
- **Problem:** `src/lib/auth.ts` already exists in spaces and is imported by ~25 files as `@/lib/auth`. It exports `getAuthUser`/`withUser`. Teams' auth code exports `issueSessionToken`/`verifySessionToken`/`setSessionCookie`/TOTP helpers.
156
-
157
- **Decision:** Convert `src/lib/auth.ts` → `src/lib/auth/context.ts`, create `src/lib/auth/index.ts` that re-exports from `context.ts` + `session.ts` + `totp.ts`. Existing `from '@/lib/auth'` imports continue to resolve to the folder's index.ts — zero churn for consumers.
158
-
159
- ### D3 — Admin DB stays separate
160
-
161
- **Problem:** Teams writes to `~/.spaces/admin.db`; spaces writes per-workspace to `~/.spaces/spaces.db` (or per-user). Should we merge?
162
-
163
- **Decision:** Keep them separate. Admin DB is operator/account data (users, login events, session telemetry). Spaces DB is app data (workspaces, messages, context). Different lifecycle, different backup semantics. Merging would force a schema migration for existing installs with zero upside.
164
-
165
- ### D4 — `.js` files move as-is
166
-
167
- **Problem:** Teams ships 9 JavaScript files (`bus/broker.js`, `db/{queries,migrations}.js`, `api/*.js`, `terminal/collaboration.js`) that could be converted to TS during the move.
168
-
169
- **Decision:** Move as-is. Next.js build accepts `.js` and `.ts` side-by-side. Converting to TS during a move multiplies risk (move + type-fix in the same commit) and triggers a pile of type errors to triage. A follow-up plan can do the TS conversion module-by-module on a quiet week.
170
-
171
- ### D5 — Binary names
172
-
173
- **Problem:** Teams exposes `spaces-msg` as a bin; `mcp-server.js` and `spaces-hook.js` are invoked via absolute path by agent configs. What do we publish from the combined package?
174
-
175
- **Decision:**
176
- - Expose `spaces-msg` as a bin in `package.json` (CLI users rely on it).
177
- - Move `mcp-server.js` → `bin/spaces-mcp.js` (no bin entry; invoked via absolute path from MCP server configs that point at the file).
178
- - Move `spaces-hook.js` → `bin/spaces-hook.js` (no bin entry; invoked via absolute path by Claude Code hook config).
179
-
180
- ### D6 — Cortex unchanged
181
-
182
- The `src/lib/cortex/*` stub layer, the `@spaces/cortex` runtime loader, and the separate `spaces-cortex` / `spaces-cortex-gravity` repos all stay as-is. Cortex is excluded because:
183
- - Install size: `@huggingface/transformers` + `@lancedb/lancedb` + `pdf-parse` push install footprint beyond what a baseline workspace manager should demand.
184
- - Active divergence: `spaces-cortex-gravity` is a parallel line of development, suggesting cortex will keep evolving independently.
185
-
186
- ### D7 — `src/lib/config.ts#getUserPaths` shell-user resolution
187
-
188
- **Problem:** `getUserPaths` calls `getTeams()?.admin.resolveShellUser(username)` under `HAS_MULTIUSER`. After fold-in, `resolveShellUser` lives at `@/lib/admin`.
189
-
190
- **Decision:** Replace the `getTeams()?.admin.resolveShellUser(...)` call with a direct `import { resolveShellUser } from '@/lib/admin'` gated on `IS_MULTIUSER`.
191
-
192
- ## Phases
193
-
194
- 1. **A — Pro fold-in.** Lowest blast radius (federation is opt-in; breaking `/api/network/*` doesn't affect local workflow).
195
- 2. **B — Teams fold-in.** Higher risk; touches auth, middleware, config, bus.
196
- 3. **C — Flag + launcher simplification.** Renames `tier.ts` → `flags.ts`, cuts ~100 lines from `bin/spaces.js`.
197
- 4. **D — Deps, docs, archive.** Add npm deps, update README, move `spaces-pro`/`spaces-teams` to `~/archive/`.
198
- 5. **E — Smoke verification.** Run the app locally in both desktop and multiuser modes; exercise representative routes.
199
-
200
- ## Risks
201
-
202
- | Risk | Mitigation |
203
- |---|---|
204
- | Existing server installs break when they `npm i -g @jlongo78/agent-spaces@0.10` because their `admin.db` schema or session format diverges | Keep admin DB path (`~/.spaces/admin.db`) and schema identical to teams package. Session token format is already identical (verified in design). |
205
- | Hooks configured to absolute path `node_modules/@spaces/teams/bin/spaces-hook.js` stop working | Keep the teams package published for one more release cycle as a compatibility shim that just requires the new bin path. (Out of scope for this plan — only affects third-party consumers, of which there are none.) |
206
- | `@spaces/teams` is imported from somewhere we missed | `grep -rE "@spaces/(pro\|teams)"` after each phase; CI build surfaces unresolved imports. |
207
- | Folder rename `src/lib/auth.ts` → `src/lib/auth/` breaks partial-path imports | TS path `@/lib/auth` resolves to `src/lib/auth/index.ts` — same import specifier. Verified no deep imports (`@/lib/auth/...`) exist. |
208
-
209
- ## Open questions
210
-
211
- - Should we publish `0.10.0` as a breaking release, or continue the `0.9.x` line with a note in the changelog? **Leaning breaking.**
212
- - After fold-in, do we delete `spaces-pro`/`spaces-teams` from GitHub or archive the repos? **Archive, don't delete — git history matters.**