@jlongo78/agent-spaces 0.9.7 → 0.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/.next/standalone/.claude/settings.local.json +17 -4
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/routes-manifest.json +6 -0
  6. package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(desktop)/cortex/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(desktop)/terminal/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  23. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  31. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  32. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  33. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  35. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  38. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  39. package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
  40. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
  41. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
  42. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  43. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  44. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
  45. package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
  47. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
  48. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  49. package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
  50. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  53. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
  55. package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
  57. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
  58. package/.next/standalone/.next/server/app/analytics.html +1 -1
  59. package/.next/standalone/.next/server/app/analytics.rsc +2 -2
  60. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
  61. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
  62. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
  64. package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
  65. package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
  66. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  67. package/.next/standalone/.next/server/app/api/analytics/overview/route.js +1 -1
  68. package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js +1 -1
  70. package/.next/standalone/.next/server/app/api/benchmark/lobes/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/benchmark/run/route.js +1 -1
  72. package/.next/standalone/.next/server/app/api/benchmark/run/route.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js +1 -1
  74. package/.next/standalone/.next/server/app/api/benchmark/runs/[id]/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/benchmark/runs/route.js +1 -1
  76. package/.next/standalone/.next/server/app/api/benchmark/runs/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/benchmark/status/route.js +1 -1
  78. package/.next/standalone/.next/server/app/api/benchmark/status/route.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/api/bulk/route.js +1 -1
  80. package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/api/config/route.js +1 -1
  82. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/cortex/context/route.js +1 -1
  84. package/.next/standalone/.next/server/app/api/cortex/context/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js +1 -1
  86. package/.next/standalone/.next/server/app/api/cortex/curation/assess/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js +1 -1
  88. package/.next/standalone/.next/server/app/api/cortex/curation/publish/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js +1 -1
  90. package/.next/standalone/.next/server/app/api/cortex/curation/refine/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js +1 -1
  92. package/.next/standalone/.next/server/app/api/cortex/curation/review/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js +1 -1
  94. package/.next/standalone/.next/server/app/api/cortex/curation/seed/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/cortex/export/route.js +1 -1
  96. package/.next/standalone/.next/server/app/api/cortex/export/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js +1 -1
  98. package/.next/standalone/.next/server/app/api/cortex/federation/pending/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js +1 -1
  100. package/.next/standalone/.next/server/app/api/cortex/federation/resolve/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js +1 -1
  102. package/.next/standalone/.next/server/app/api/cortex/federation/search/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js +1 -1
  104. package/.next/standalone/.next/server/app/api/cortex/federation/teach/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js +1 -1
  106. package/.next/standalone/.next/server/app/api/cortex/graph/edges/route.js.nft.json +1 -1
  107. package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js +1 -1
  108. package/.next/standalone/.next/server/app/api/cortex/graph/entities/[id]/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js +1 -1
  110. package/.next/standalone/.next/server/app/api/cortex/graph/entities/route.js.nft.json +1 -1
  111. package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js +1 -1
  112. package/.next/standalone/.next/server/app/api/cortex/graph/populate/route.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/api/cortex/import/route.js +1 -1
  114. package/.next/standalone/.next/server/app/api/cortex/import/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/cortex/import/status/route.js +1 -1
  116. package/.next/standalone/.next/server/app/api/cortex/import/status/route.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js +1 -1
  118. package/.next/standalone/.next/server/app/api/cortex/ingest/bootstrap/route.js.nft.json +1 -1
  119. package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js +1 -1
  120. package/.next/standalone/.next/server/app/api/cortex/ingest/status/route.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js +1 -1
  122. package/.next/standalone/.next/server/app/api/cortex/knowledge/[id]/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js +1 -1
  124. package/.next/standalone/.next/server/app/api/cortex/knowledge/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js +1 -1
  126. package/.next/standalone/.next/server/app/api/cortex/lobes/[id]/route.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/api/cortex/lobes/route.js +1 -1
  128. package/.next/standalone/.next/server/app/api/cortex/lobes/route.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js +1 -1
  130. package/.next/standalone/.next/server/app/api/cortex/lobes/share/route.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/cortex/marketplace/browse/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js +1 -1
  134. package/.next/standalone/.next/server/app/api/cortex/marketplace/preview/route.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js +1 -1
  136. package/.next/standalone/.next/server/app/api/cortex/mcp/call/route.js.nft.json +1 -1
  137. package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js +1 -1
  138. package/.next/standalone/.next/server/app/api/cortex/mcp/tools/route.js.nft.json +1 -1
  139. package/.next/standalone/.next/server/app/api/cortex/search/route.js +1 -1
  140. package/.next/standalone/.next/server/app/api/cortex/search/route.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/api/cortex/settings/route.js +1 -1
  142. package/.next/standalone/.next/server/app/api/cortex/settings/route.js.nft.json +1 -1
  143. package/.next/standalone/.next/server/app/api/cortex/status/route.js +1 -1
  144. package/.next/standalone/.next/server/app/api/cortex/status/route.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/app/api/cortex/timeline/route.js +1 -1
  146. package/.next/standalone/.next/server/app/api/cortex/timeline/route.js.nft.json +1 -1
  147. package/.next/standalone/.next/server/app/api/cortex/usage/route.js +1 -1
  148. package/.next/standalone/.next/server/app/api/cortex/usage/route.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js +1 -1
  150. package/.next/standalone/.next/server/app/api/cortex/workspace/[id]/context/route.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/app/api/events/route.js +1 -1
  152. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/files/route.js +1 -1
  154. package/.next/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/folders/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/network/handshake/route.js +1 -1
  158. package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js +1 -1
  160. package/.next/standalone/.next/server/app/api/network/panes/[id]/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/api/network/panes/route.js +1 -1
  162. package/.next/standalone/.next/server/app/api/network/panes/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/network/projects/route.js +1 -1
  164. package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
  165. package/.next/standalone/.next/server/app/api/network/search/route.js +1 -1
  166. package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js +1 -1
  168. package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js +1 -1
  170. package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/app/api/network/sessions/route.js +1 -1
  172. package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +1 -1
  174. package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/network/workspaces/route.js +1 -1
  176. package/.next/standalone/.next/server/app/api/network/workspaces/route.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js +1 -1
  178. package/.next/standalone/.next/server/app/api/panes/[id]/diff/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/panes/[id]/route.js +1 -1
  180. package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/panes/route.js +1 -1
  182. package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  184. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js +1 -1
  186. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/[...path]/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js +1 -1
  188. package/.next/standalone/.next/server/app/api/proxy/models/[modelId]/status/route.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/app/api/search/route.js +2 -2
  190. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +1 -1
  192. package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +1 -1
  194. package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
  195. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +1 -1
  196. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/app/api/sessions/route.js +2 -2
  198. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/app/api/sync/route.js +1 -1
  200. package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/app/api/tags/route.js +1 -1
  202. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/tier/route.js +1 -1
  204. package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/whisper/config/route.js +1 -1
  206. package/.next/standalone/.next/server/app/api/whisper/config/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/whisper/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/wizard/chart/route/app-paths-manifest.json +3 -0
  209. package/.next/standalone/.next/server/app/api/wizard/chart/route/build-manifest.json +11 -0
  210. package/.next/standalone/.next/server/app/api/wizard/chart/route/server-reference-manifest.json +4 -0
  211. package/.next/standalone/.next/server/app/api/wizard/chart/route.js +7 -0
  212. package/.next/standalone/.next/server/app/api/wizard/chart/route.js.map +5 -0
  213. package/.next/standalone/.next/server/app/api/wizard/chart/route.js.nft.json +1 -0
  214. package/.next/standalone/.next/server/app/api/wizard/chart/route_client-reference-manifest.js +2 -0
  215. package/.next/standalone/.next/server/app/api/wizard/chat/route.js +1 -1
  216. package/.next/standalone/.next/server/app/api/wizard/chat/route.js.nft.json +1 -1
  217. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +1 -1
  218. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
  219. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +1 -1
  220. package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +1 -1
  222. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +1 -1
  224. package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +1 -1
  226. package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +1 -1
  228. package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
  229. package/.next/standalone/.next/server/app/api/workspaces/route.js +2 -2
  230. package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  231. package/.next/standalone/.next/server/app/cortex.html +1 -1
  232. package/.next/standalone/.next/server/app/cortex.rsc +3 -3
  233. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex/__PAGE__.segment.rsc +2 -2
  234. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap/cortex.segment.rsc +1 -1
  235. package/.next/standalone/.next/server/app/cortex.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  236. package/.next/standalone/.next/server/app/cortex.segments/_full.segment.rsc +3 -3
  237. package/.next/standalone/.next/server/app/cortex.segments/_head.segment.rsc +1 -1
  238. package/.next/standalone/.next/server/app/cortex.segments/_index.segment.rsc +2 -2
  239. package/.next/standalone/.next/server/app/cortex.segments/_tree.segment.rsc +2 -2
  240. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  241. package/.next/standalone/.next/server/app/login.html +1 -1
  242. package/.next/standalone/.next/server/app/login.rsc +2 -2
  243. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
  244. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  245. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
  246. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  247. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  248. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  249. package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
  250. package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
  251. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  252. package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
  253. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
  254. package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
  255. package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
  256. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
  257. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
  258. package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
  259. package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
  260. package/.next/standalone/.next/server/app/m/sessions/[id]/page.js.nft.json +1 -1
  261. package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
  262. package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
  263. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  264. package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
  265. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
  266. package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
  267. package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
  268. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
  269. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
  270. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
  271. package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
  272. package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  274. package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
  275. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
  276. package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
  277. package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
  278. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
  279. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
  280. package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
  281. package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
  282. package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
  283. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  284. package/.next/standalone/.next/server/app/m/terminal.rsc +3 -3
  285. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +3 -3
  286. package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
  287. package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
  288. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
  289. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +2 -2
  290. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
  291. package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
  292. package/.next/standalone/.next/server/app/m.html +1 -1
  293. package/.next/standalone/.next/server/app/m.rsc +2 -2
  294. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
  295. package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
  296. package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
  297. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
  298. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
  299. package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
  300. package/.next/standalone/.next/server/app/network.html +1 -1
  301. package/.next/standalone/.next/server/app/network.rsc +2 -2
  302. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
  303. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
  304. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  305. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
  306. package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
  307. package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
  308. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
  309. package/.next/standalone/.next/server/app/projects.html +1 -1
  310. package/.next/standalone/.next/server/app/projects.rsc +2 -2
  311. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
  312. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
  313. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  314. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  315. package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  316. package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  317. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  318. package/.next/standalone/.next/server/app/sessions.html +1 -1
  319. package/.next/standalone/.next/server/app/sessions.rsc +2 -2
  320. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
  321. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
  322. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  323. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
  324. package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  325. package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
  326. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
  327. package/.next/standalone/.next/server/app/settings.html +1 -1
  328. package/.next/standalone/.next/server/app/settings.rsc +2 -2
  329. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
  330. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
  331. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  332. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  333. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  334. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  335. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  336. package/.next/standalone/.next/server/app/terminal.html +1 -1
  337. package/.next/standalone/.next/server/app/terminal.rsc +3 -3
  338. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
  339. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
  340. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  341. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +3 -3
  342. package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  343. package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
  344. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
  345. package/.next/standalone/.next/server/app/vr/page/react-loadable-manifest.json +1 -1
  346. package/.next/standalone/.next/server/app/vr/page_client-reference-manifest.js +1 -1
  347. package/.next/standalone/.next/server/app/vr.html +1 -1
  348. package/.next/standalone/.next/server/app/vr.rsc +3 -3
  349. package/.next/standalone/.next/server/app/vr.segments/_full.segment.rsc +3 -3
  350. package/.next/standalone/.next/server/app/vr.segments/_head.segment.rsc +1 -1
  351. package/.next/standalone/.next/server/app/vr.segments/_index.segment.rsc +2 -2
  352. package/.next/standalone/.next/server/app/vr.segments/_tree.segment.rsc +2 -2
  353. package/.next/standalone/.next/server/app/vr.segments/vr/__PAGE__.segment.rsc +2 -2
  354. package/.next/standalone/.next/server/app/vr.segments/vr.segment.rsc +1 -1
  355. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  356. package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
  357. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
  358. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
  359. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  360. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
  361. package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
  362. package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
  363. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
  364. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  365. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00e90fc6._.js +98 -0
  366. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01ab8675._.js +98 -0
  367. package/.next/standalone/.next/server/chunks/[root-of-the-server]__03974f05._.js +98 -0
  368. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__bb331da9._.js → [root-of-the-server]__046c9b91._.js} +2 -2
  369. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04ae6bf0._.js +98 -0
  370. package/.next/standalone/.next/server/chunks/[root-of-the-server]__056fa416._.js +1 -1
  371. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__186cd0bb._.js → [root-of-the-server]__0ac4ea3f._.js} +2 -2
  372. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b8e64cb._.js +98 -0
  373. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d95165f0._.js → [root-of-the-server]__0facd39e._.js} +2 -2
  374. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__69d315e5._.js → [root-of-the-server]__10bc76a3._.js} +2 -2
  375. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__9d68157b._.js → [root-of-the-server]__115f3934._.js} +2 -2
  376. package/.next/standalone/.next/server/chunks/[root-of-the-server]__11f155f1._.js +3 -0
  377. package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +22 -33
  378. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__91e23c96._.js → [root-of-the-server]__17a3b966._.js} +2 -2
  379. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__277d9445._.js → [root-of-the-server]__17d3a2b2._.js} +2 -2
  380. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a86c055._.js +98 -0
  381. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d0125483._.js → [root-of-the-server]__20b5e9c4._.js} +2 -2
  382. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__35f8e77e._.js → [root-of-the-server]__28d6fbd8._.js} +3 -3
  383. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__04f04898._.js → [root-of-the-server]__2a3f866b._.js} +2 -2
  384. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__a95bb38b._.js → [root-of-the-server]__316617e7._.js} +2 -2
  385. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__b689ff5e._.js → [root-of-the-server]__32ad8f71._.js} +3 -11
  386. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__6fe5e6c8._.js → [root-of-the-server]__35457394._.js} +2 -2
  387. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1f054c65._.js → [root-of-the-server]__35de78e6._.js} +2 -2
  388. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2f452778._.js → [root-of-the-server]__3685ffcb._.js} +3 -3
  389. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__614458b7._.js → [root-of-the-server]__38954988._.js} +2 -2
  390. package/.next/standalone/.next/server/chunks/[root-of-the-server]__426ad936._.js +106 -0
  391. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4985c034._.js +98 -0
  392. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e6fd27f8._.js → [root-of-the-server]__5c6ce9ed._.js} +3 -3
  393. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cebe58a._.js +98 -0
  394. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d5e4789._.js +98 -0
  395. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__74084e07._.js → [root-of-the-server]__65676930._.js} +2 -2
  396. package/.next/standalone/.next/server/chunks/[root-of-the-server]__67cab326._.js +58 -0
  397. package/.next/standalone/.next/server/chunks/[root-of-the-server]__698c6f01._.js +98 -0
  398. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c64af29._.js +131 -0
  399. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d12644e7._.js → [root-of-the-server]__73aed9f5._.js} +3 -3
  400. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__ac84b704._.js → [root-of-the-server]__79b6a9bb._.js} +2 -2
  401. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e56abacf._.js → [root-of-the-server]__7db704c6._.js} +2 -2
  402. package/.next/standalone/.next/server/chunks/[root-of-the-server]__812ca02b._.js +98 -0
  403. package/.next/standalone/.next/server/chunks/[root-of-the-server]__821f50fa._.js +98 -0
  404. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8716b86e._.js +98 -0
  405. package/.next/standalone/.next/server/chunks/[root-of-the-server]__884ef754._.js +98 -0
  406. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88cdbd68._.js +98 -0
  407. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89d9aba9._.js +98 -0
  408. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0903a426._.js → [root-of-the-server]__8d536cb5._.js} +3 -3
  409. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8df8c5d1._.js +98 -0
  410. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2d7a454e._.js → [root-of-the-server]__8f2ccc41._.js} +2 -2
  411. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2a2c5fc5._.js → [root-of-the-server]__95c9d682._.js} +2 -2
  412. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e5d7774._.js +98 -0
  413. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__cc6e2885._.js → [root-of-the-server]__9edcff87._.js} +2 -2
  414. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__feceb3e4._.js → [root-of-the-server]__a049dfc2._.js} +3 -3
  415. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a5b4bb9a._.js +98 -0
  416. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__929ea03a._.js → [root-of-the-server]__a83262a1._.js} +2 -2
  417. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9cd1240._.js +98 -0
  418. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2f300a68._.js → [root-of-the-server]__a9d7f822._.js} +3 -3
  419. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad08c221._.js +98 -0
  420. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad585f2f._.js +98 -0
  421. package/.next/standalone/.next/server/chunks/[root-of-the-server]__afcb8f7d._.js +98 -0
  422. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bc250d43._.js +98 -0
  423. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bce2a6e7._.js +98 -0
  424. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__ad4346fa._.js → [root-of-the-server]__c011bf91._.js} +3 -3
  425. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c0ac2895._.js +3 -0
  426. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__563c0817._.js → [root-of-the-server]__c37d6380._.js} +2 -2
  427. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__4d5b78d2._.js → [root-of-the-server]__cae392eb._.js} +3 -3
  428. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cc2616bb._.js +3 -3
  429. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d501fa9b._.js +98 -0
  430. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d0109b9b._.js → [root-of-the-server]__d59c6c15._.js} +3 -3
  431. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__11c684b1._.js → [root-of-the-server]__d5c1db32._.js} +3 -3
  432. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__b43306ee._.js → [root-of-the-server]__dba60c86._.js} +3 -3
  433. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__2384f98e._.js → [root-of-the-server]__de14b9ae._.js} +2 -2
  434. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__c1deb5f3._.js → [root-of-the-server]__e10643d1._.js} +3 -3
  435. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__00fdfbda._.js → [root-of-the-server]__e2a996e5._.js} +2 -2
  436. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__4d903941._.js → [root-of-the-server]__e3477417._.js} +2 -2
  437. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__32dc5513._.js → [root-of-the-server]__e4db362e._.js} +2 -2
  438. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__49e42a3a._.js → [root-of-the-server]__e4e70b86._.js} +2 -2
  439. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__ac39ecc7._.js → [root-of-the-server]__e54925af._.js} +2 -2
  440. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__a90729a1._.js → [root-of-the-server]__e8edc5b0._.js} +3 -3
  441. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__eafd040b._.js → [root-of-the-server]__eab4d83b._.js} +2 -2
  442. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ead29015._.js +1 -1
  443. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__194955d4._.js → [root-of-the-server]__f056fd83._.js} +2 -2
  444. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f0e99572._.js +98 -0
  445. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fe1e16d0._.js +98 -0
  446. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__c8a62f42._.js → [root-of-the-server]__ff9cd277._.js} +3 -3
  447. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ffaea2ce._.js +98 -0
  448. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wizard_chart_route_actions_888e2ec1.js +3 -0
  449. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2cffc362._.js +3 -0
  450. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__f1050870._.js → [root-of-the-server]__47c97637._.js} +2 -2
  451. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
  452. package/.next/standalone/.next/server/chunks/ssr/_17b946fd._.js +3 -0
  453. package/.next/standalone/.next/server/chunks/ssr/_2a1d79e7._.js +1 -1
  454. package/.next/standalone/.next/server/chunks/ssr/_5c3c4cfa._.js +7 -5
  455. package/.next/standalone/.next/server/chunks/ssr/_ba432382._.js +7 -5
  456. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_cortex_page_tsx_0f33d8b3._.js +1 -1
  457. package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_terminal_page_tsx_de5e8d85._.js +4 -4
  458. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__90eeddae._.js +1 -1
  459. package/.next/standalone/.next/server/middleware-manifest.json +1 -1
  460. package/.next/standalone/.next/server/pages/404.html +1 -1
  461. package/.next/standalone/.next/server/pages/500.html +2 -2
  462. package/.next/standalone/.next/static/chunks/0852575eb90c1e8d.js +85 -0
  463. package/.next/standalone/.next/static/chunks/{74d0ac0b1d0a1b79.js → 10b00b4f66102dcf.js} +1 -1
  464. package/.next/standalone/.next/static/chunks/{16eb77953dee9ea3.js → 19c71a8376c23c58.js} +1 -1
  465. package/.next/standalone/.next/static/chunks/2b769d1597e4fc1c.css +3 -0
  466. package/.next/standalone/.next/static/chunks/{3e91fc608659c524.js → 350271fe79509caf.js} +1 -1
  467. package/.next/standalone/.next/static/chunks/{70423c7afd8abf5f.js → 597847c22200c212.js} +1 -1
  468. package/.next/standalone/.next/static/chunks/{fb0abd1933b2b2e1.js → 7f6a14f1849fa94d.js} +1 -1
  469. package/.next/standalone/.next/static/chunks/{7ecd9bbb0ce4d68a.js → b7c8fe9b7275a84f.js} +1 -1
  470. package/.next/standalone/.next/static/chunks/{6245135a7afb8c7b.js → c9b10fc55516d142.js} +8 -6
  471. package/.next/standalone/.next/static/chunks/d0065f48eab94944.js +1 -0
  472. package/.next/standalone/.next/static/chunks/{180c1b9ff31b979f.js → f7b34c807badf95d.js} +8 -6
  473. package/.next/standalone/.spaces/cortex-context.md +35 -129
  474. package/.next/standalone/bin/spaces.js +7 -4
  475. package/.next/standalone/bin/terminal-server.js +48 -10
  476. package/.next/standalone/cortex-hook-debug.log +57 -23
  477. package/.next/standalone/package-lock.json +2 -2
  478. package/.next/standalone/package.json +1 -1
  479. package/.next/standalone/src/app/(desktop)/terminal/page.tsx +44 -5
  480. package/.next/standalone/src/app/api/benchmark/run/route.ts +24 -3
  481. package/.next/standalone/src/app/api/cortex/context/route.ts +1 -1
  482. package/.next/standalone/src/app/api/cortex/knowledge/route.ts +1 -1
  483. package/.next/standalone/src/app/api/cortex/search/route.ts +14 -2
  484. package/.next/standalone/src/app/api/folders/route.ts +16 -6
  485. package/.next/standalone/src/app/api/network/panes/[id]/route.ts +27 -11
  486. package/.next/standalone/src/app/api/network/panes/route.ts +25 -14
  487. package/.next/standalone/src/app/api/network/projects/route.ts +11 -4
  488. package/.next/standalone/src/app/api/network/search/route.ts +21 -14
  489. package/.next/standalone/src/app/api/network/sessions/[id]/messages/route.ts +18 -11
  490. package/.next/standalone/src/app/api/network/sessions/[id]/route.ts +16 -9
  491. package/.next/standalone/src/app/api/network/sessions/route.ts +25 -18
  492. package/.next/standalone/src/app/api/network/workspaces/[id]/route.ts +21 -12
  493. package/.next/standalone/src/app/api/network/workspaces/route.ts +16 -14
  494. package/.next/standalone/src/app/api/whisper/config/route.ts +16 -8
  495. package/.next/standalone/src/app/api/wizard/chart/route.ts +129 -0
  496. package/.next/standalone/src/components/cortex/benchmark-tab.tsx +14 -0
  497. package/.next/standalone/src/components/terminal/terminal-pane.tsx +78 -12
  498. package/.next/standalone/src/components/wizard/chart-wizard.tsx +405 -0
  499. package/.next/standalone/src/hooks/use-benchmark.ts +1 -0
  500. package/.next/standalone/src/hooks/use-speech-recognition.ts +2 -1
  501. package/.next/standalone/src/lib/cortex/benchmark.ts +17 -1
  502. package/.next/standalone/src/lib/cortex/index.ts +54 -1
  503. package/.next/standalone/src/lib/db/queries.ts +2 -89
  504. package/.next/standalone/src/lib/shell-user.ts +101 -0
  505. package/bin/spaces.js +7 -4
  506. package/bin/terminal-server.js +48 -10
  507. package/package.json +1 -1
  508. package/.next/standalone/.next/server/chunks/[root-of-the-server]__09e8ccc9._.js +0 -98
  509. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1572d4ef._.js +0 -98
  510. package/.next/standalone/.next/server/chunks/[root-of-the-server]__212760e6._.js +0 -98
  511. package/.next/standalone/.next/server/chunks/[root-of-the-server]__228595ec._.js +0 -98
  512. package/.next/standalone/.next/server/chunks/[root-of-the-server]__283c890f._.js +0 -3
  513. package/.next/standalone/.next/server/chunks/[root-of-the-server]__379fc2e9._.js +0 -98
  514. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3b40d79f._.js +0 -98
  515. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3d3dca2b._.js +0 -98
  516. package/.next/standalone/.next/server/chunks/[root-of-the-server]__54163e52._.js +0 -98
  517. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5812f90a._.js +0 -98
  518. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c5e87f5._.js +0 -98
  519. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60d15b16._.js +0 -98
  520. package/.next/standalone/.next/server/chunks/[root-of-the-server]__71f29038._.js +0 -98
  521. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7921aa80._.js +0 -98
  522. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7e077dd8._.js +0 -98
  523. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7ebc4280._.js +0 -131
  524. package/.next/standalone/.next/server/chunks/[root-of-the-server]__857c60bb._.js +0 -98
  525. package/.next/standalone/.next/server/chunks/[root-of-the-server]__874fe565._.js +0 -98
  526. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8e2171f7._.js +0 -98
  527. package/.next/standalone/.next/server/chunks/[root-of-the-server]__95659b2d._.js +0 -98
  528. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9679b91e._.js +0 -98
  529. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b0862d69._.js +0 -98
  530. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba87daaa._.js +0 -98
  531. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c0461005._.js +0 -98
  532. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cabaac2b._.js +0 -98
  533. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cb027619._.js +0 -98
  534. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf608218._.js +0 -98
  535. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cfc1290d._.js +0 -98
  536. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d048ee6b._.js +0 -98
  537. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e3cc946c._.js +0 -98
  538. package/.next/standalone/.next/server/chunks/[root-of-the-server]__efb8251e._.js +0 -98
  539. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f44c6882._.js +0 -98
  540. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f85283de._.js +0 -98
  541. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__843070a6._.js +0 -3
  542. package/.next/standalone/.next/server/chunks/ssr/_e84a0c06._.js +0 -3
  543. package/.next/standalone/.next/static/chunks/9d4164833c2c1fd6.js +0 -85
  544. package/.next/standalone/.next/static/chunks/bffaf378f7745d59.css +0 -3
  545. package/.next/standalone/.next/static/chunks/f091f4bf8d80fd07.js +0 -1
  546. /package/.next/standalone/.next/static/{0KefPNmR9NsrZHWWt9Xr7 → u1pHON3drz1mBi7owkbBP}/_buildManifest.js +0 -0
  547. /package/.next/standalone/.next/static/{0KefPNmR9NsrZHWWt9Xr7 → u1pHON3drz1mBi7owkbBP}/_clientMiddlewareManifest.json +0 -0
  548. /package/.next/standalone/.next/static/{0KefPNmR9NsrZHWWt9Xr7 → u1pHON3drz1mBi7owkbBP}/_ssgManifest.js +0 -0
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@jlongo78/agent-spaces",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@jlongo78/agent-spaces",
9
- "version": "0.9.7",
9
+ "version": "0.9.8",
10
10
  "license": "AGPL-3.0-only",
11
11
  "dependencies": {
12
12
  "@dnd-kit/core": "^6.3.1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jlongo78/agent-spaces",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "description": "Agent workspace manager for Claude, Codex, Gemini, and more",
5
5
  "bin": {
6
6
  "spaces": "./bin/spaces.js"
@@ -4,7 +4,7 @@ import React, { useState, useEffect, useCallback, useRef } from 'react';
4
4
  import {
5
5
  Plus, Loader2, Terminal, Search, MessageSquare, FolderOpen,
6
6
  Clock, ChevronDown, ChevronRight, Save, FolderInput, Trash2, Pencil, Check, X,
7
- Layers, Copy, Home, XCircle, ArrowLeftToLine, Globe, AlertCircle, Users, Brain, Maximize2,
7
+ Layers, Copy, Home, XCircle, ArrowLeftToLine, Globe, AlertCircle, Users, Brain, Maximize2, Wand2,
8
8
  } from 'lucide-react';
9
9
  import { useRouter } from 'next/navigation';
10
10
  import { TerminalPane } from '@/components/terminal/terminal-pane';
@@ -27,6 +27,7 @@ import { track } from '@/lib/telemetry';
27
27
  import { LobeSettings } from '@/components/cortex/lobe-settings';
28
28
  import { FileExplorer } from '@/components/files/file-explorer';
29
29
  import { useTier } from '@/hooks/use-tier';
30
+ import { ProjectWizard } from '@/components/wizard/project-wizard';
30
31
 
31
32
  function ResizablePaneGrid({ panes, renderPane }: {
32
33
  panes: PaneData[];
@@ -139,6 +140,7 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
139
140
  const [activeWorkspace, setActiveWorkspace] = useState<Workspace | null>(null);
140
141
  const [showWsPicker, setShowWsPicker] = useState(false);
141
142
  const [showSaveAs, setShowSaveAs] = useState(false);
143
+ const [showWizard, setShowWizard] = useState(false);
142
144
  const [saveAsName, setSaveAsName] = useState('');
143
145
  const [saveAsColor, setSaveAsColor] = useState('#6366f1');
144
146
  const [editingWs, setEditingWs] = useState<number | null>(null);
@@ -620,7 +622,7 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
620
622
  ))}
621
623
  </div>
622
624
 
623
- <div className="flex justify-center">
625
+ <div className="flex justify-center gap-3">
624
626
  <button
625
627
  onClick={createNewWorkspace}
626
628
  className="flex items-center gap-2 px-4 py-2.5 text-sm border border-zinc-700 text-zinc-400 rounded-lg hover:text-white hover:border-zinc-500 transition-colors"
@@ -628,6 +630,13 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
628
630
  <Plus className="w-4 h-4" />
629
631
  New Workspace
630
632
  </button>
633
+ <button
634
+ onClick={() => setShowWizard(true)}
635
+ className="flex items-center gap-2 px-4 py-2.5 text-sm border border-dashed border-indigo-500/50 text-indigo-400 rounded-lg hover:text-indigo-300 hover:border-indigo-400 hover:bg-indigo-500/10 transition-colors"
636
+ >
637
+ <Wand2 className="w-4 h-4" />
638
+ Plan a Project
639
+ </button>
631
640
  </div>
632
641
 
633
642
  {/* Remote workspaces from network nodes */}
@@ -708,6 +717,15 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
708
717
  )}
709
718
  </div>
710
719
  </div>
720
+
721
+ <ProjectWizard
722
+ isOpen={showWizard}
723
+ onClose={() => setShowWizard(false)}
724
+ onLaunch={(wsId) => {
725
+ setShowWizard(false);
726
+ switchWorkspace(wsId);
727
+ }}
728
+ />
711
729
  </div>
712
730
  );
713
731
  }
@@ -819,11 +837,17 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
819
837
  >
820
838
  <Plus className="w-3 h-3" /> New Empty
821
839
  </button>
840
+ <button
841
+ onClick={() => { setShowWizard(true); setShowWsPicker(false); }}
842
+ className="flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-indigo-400 hover:text-indigo-300 hover:bg-indigo-500/10 rounded transition-colors flex-1"
843
+ >
844
+ <Wand2 className="w-3 h-3" /> Plan Project
845
+ </button>
822
846
  <button
823
847
  onClick={() => { setShowSaveAs(true); setShowWsPicker(false); }}
824
848
  className="flex items-center gap-1.5 px-2.5 py-1.5 text-[11px] text-zinc-400 hover:text-white hover:bg-zinc-700 rounded transition-colors flex-1"
825
849
  >
826
- <Copy className="w-3 h-3" /> Duplicate Current
850
+ <Copy className="w-3 h-3" /> Duplicate
827
851
  </button>
828
852
  </div>
829
853
  </div>
@@ -1203,7 +1227,7 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
1203
1227
  />
1204
1228
  </div>
1205
1229
  )}
1206
- {visiblePanes.length === 0 && poppedOut.size === 0 ? (
1230
+ {visiblePanes.length === 0 && poppedOut.size === 0 && minimized.size === 0 ? (
1207
1231
  <div className="flex-1 flex items-center justify-center">
1208
1232
  <div className="text-center space-y-3">
1209
1233
  {/* eslint-disable-next-line @next/next/no-img-element */}
@@ -1222,7 +1246,13 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
1222
1246
  ) : visiblePanes.length === 0 ? (
1223
1247
  <div className="flex-1 flex items-center justify-center">
1224
1248
  <div className="text-center space-y-2">
1225
- <p className="text-zinc-500 text-sm">All panes are popped out to separate windows.</p>
1249
+ <p className="text-zinc-500 text-sm">
1250
+ {minimized.size > 0 && poppedOut.size > 0
1251
+ ? 'All panes are minimized or popped out.'
1252
+ : minimized.size > 0
1253
+ ? `All panes are minimized. Use the toolbar to restore them.`
1254
+ : 'All panes are popped out to separate windows.'}
1255
+ </p>
1226
1256
  <button
1227
1257
  onClick={() => setShowAdd(true)}
1228
1258
  className="px-3 py-1.5 text-xs text-zinc-400 hover:text-white border border-zinc-700 rounded-md hover:border-zinc-600 inline-flex items-center gap-1.5"
@@ -1286,6 +1316,15 @@ function TerminalPageInner({ terminalToken }: { terminalToken: string }) {
1286
1316
  />
1287
1317
  )}
1288
1318
  </div>
1319
+
1320
+ <ProjectWizard
1321
+ isOpen={showWizard}
1322
+ onClose={() => setShowWizard(false)}
1323
+ onLaunch={(wsId) => {
1324
+ setShowWizard(false);
1325
+ switchWorkspace(wsId);
1326
+ }}
1327
+ />
1289
1328
  </div>
1290
1329
  );
1291
1330
  }
@@ -22,6 +22,7 @@ export async function POST(request: NextRequest) {
22
22
  categories,
23
23
  noJudge = false,
24
24
  model = 'claude-haiku-4-5',
25
+ concurrency,
25
26
  } = body;
26
27
 
27
28
  // Build args for the benchmark CLI
@@ -30,6 +31,10 @@ export async function POST(request: NextRequest) {
30
31
  if (categories) args.push('--category', categories);
31
32
  if (noJudge) args.push('--no-judge');
32
33
  args.push('--models', model);
34
+ if (concurrency != null) {
35
+ const clamped = Math.min(5, Math.max(1, Math.floor(Number(concurrency)) || 1));
36
+ args.push('--concurrency', String(clamped));
37
+ }
33
38
 
34
39
  // Find the cortex repo
35
40
  const cortexDir = findCortexDir();
@@ -77,14 +82,30 @@ export async function POST(request: NextRequest) {
77
82
  }
78
83
 
79
84
  function findCortexDir(): string | null {
80
- const candidates = [
85
+ const candidates: string[] = [];
86
+
87
+ // Primary: resolve the addon's package location via NODE_PATH — this tracks
88
+ // however the host actually loaded @spaces/cortex at runtime (managed
89
+ // install under ~/.spaces/packages, symlink, global, etc.).
90
+ try {
91
+ const { createRequire } = require('module') as typeof import('module');
92
+ const req = createRequire(path.join(process.cwd(), 'package.json'));
93
+ candidates.push(path.dirname(req.resolve('@spaces/cortex/package.json')));
94
+ } catch { /* addon not resolvable from this process */ }
95
+
96
+ // Fallbacks: managed install location and local sibling checkouts.
97
+ if (process.env.HOME) {
98
+ candidates.push(path.join(process.env.HOME, '.spaces', 'packages', 'cortex'));
99
+ }
100
+ candidates.push(
81
101
  path.resolve(process.cwd(), '../spaces-cortex'),
82
102
  path.resolve(process.cwd(), '../../spaces-cortex'),
83
103
  'C:\\projects\\spaces-cortex',
84
104
  '/c/projects/spaces-cortex',
85
- ];
105
+ );
106
+
86
107
  for (const dir of candidates) {
87
- if (fs.existsSync(path.join(dir, 'tests', 'benchmark', 'index.ts'))) {
108
+ if (dir && fs.existsSync(path.join(dir, 'tests', 'benchmark', 'index.ts'))) {
88
109
  return dir;
89
110
  }
90
111
  }
@@ -1,7 +1,7 @@
1
1
  import { NextResponse } from 'next/server';
2
2
  import type { NextRequest } from 'next/server';
3
3
  import { getAuthUser, withUser } from '@/lib/auth';
4
- import { getCortex, isCortexAvailable } from '@/lib/cortex';
4
+ import { getCortex, isCortexAvailable, getCortexClient } from '@/lib/cortex';
5
5
  import { ContextEngine } from '@/lib/cortex/retrieval/context-engine';
6
6
  import { EntityResolver } from '@/lib/cortex/graph/resolver';
7
7
  import { slugify } from '@/lib/cortex/graph/types';
@@ -2,7 +2,7 @@ import { NextResponse } from 'next/server';
2
2
  import type { NextRequest } from 'next/server';
3
3
  import crypto from 'crypto';
4
4
  import { getAuthUser, withUser } from '@/lib/auth';
5
- import { isCortexAvailable, getCortex } from '@/lib/cortex';
5
+ import { isCortexAvailable, getCortex, getCortexClient } from '@/lib/cortex';
6
6
  import { isValidKnowledgeType, isValidLayer, getConfidenceBase } from '@/lib/cortex/knowledge/types';
7
7
  import { layerToScope, scopeToLayer, scopeToLayerKey } from '@/lib/cortex/knowledge/compat';
8
8
 
@@ -1,7 +1,7 @@
1
1
  import { NextResponse } from 'next/server';
2
2
  import type { NextRequest } from 'next/server';
3
3
  import { getAuthUser, withUser } from '@/lib/auth';
4
- import { isCortexAvailable, getCortex } from '@/lib/cortex';
4
+ import { isCortexAvailable, getCortex, getCortexClient } from '@/lib/cortex';
5
5
 
6
6
  export async function GET(request: NextRequest) {
7
7
  const user = getAuthUser(request);
@@ -19,7 +19,7 @@ export async function GET(request: NextRequest) {
19
19
  const layer = url.searchParams.get('layer') as 'personal' | 'workspace' | 'team' | null;
20
20
  const limit = parseInt(url.searchParams.get('limit') || '5', 10);
21
21
 
22
- // Browse mode: return recent knowledge without a search query
22
+ // Browse mode: return recent knowledge without a search query (local engine only)
23
23
  if (!query) {
24
24
  const layers = layer ? [layer] : (['personal', 'workspace', 'team'] as const);
25
25
  const results: any[] = [];
@@ -30,6 +30,18 @@ export async function GET(request: NextRequest) {
30
30
  return NextResponse.json({ results: results.slice(0, limit) });
31
31
  }
32
32
 
33
+ // Use client for search (fans out to all connected servers)
34
+ const client = await getCortexClient();
35
+ if (client) {
36
+ const results = await client.search(query, {
37
+ limit,
38
+ layers: layer ? [layer] : undefined,
39
+ });
40
+ console.log(`[Cortex Search] q="${query.slice(0, 60)}" → ${results.length} results (multi-server)`);
41
+ return NextResponse.json({ results });
42
+ }
43
+
44
+ // Fallback to direct engine search
33
45
  const [queryVector] = await cortex.embedding.embed([query]);
34
46
 
35
47
  const results = await cortex.search.search(queryVector, {
@@ -1,12 +1,14 @@
1
1
  import { NextRequest, NextResponse } from 'next/server';
2
2
  import { getAuthUser } from '@/lib/auth';
3
3
  import { readConfig } from '@/lib/config';
4
+ import { lookupShellUser, resolveHome, execAsUser } from '@/lib/shell-user';
4
5
  import fs from 'fs';
5
6
  import path from 'path';
6
7
 
7
8
  export async function GET(request: NextRequest) {
8
9
  const user = getAuthUser(request);
9
- const userHome = require('os').homedir();
10
+ const shellUser = lookupShellUser(user);
11
+ const userHome = resolveHome(shellUser);
10
12
  const config = readConfig(user);
11
13
  const devDirs = (config.devDirectories.length > 0 ? config.devDirectories : [userHome])
12
14
  .map(d => path.resolve(d));
@@ -52,8 +54,9 @@ export async function GET(request: NextRequest) {
52
54
 
53
55
  export async function POST(request: NextRequest) {
54
56
  const user = getAuthUser(request);
57
+ const shellUser = lookupShellUser(user);
58
+ const userHome = resolveHome(shellUser);
55
59
  const config = readConfig(user);
56
- const userHome = require('os').homedir();
57
60
  const devDirs = (config.devDirectories.length > 0 ? config.devDirectories : [userHome])
58
61
  .map((d: string) => path.resolve(d));
59
62
 
@@ -83,15 +86,22 @@ export async function POST(request: NextRequest) {
83
86
 
84
87
  const newPath = path.join(resolvedParent, name);
85
88
 
86
- // Check if already exists
87
89
  if (fs.existsSync(newPath)) {
88
90
  return NextResponse.json({ error: 'Folder already exists' }, { status: 409 });
89
91
  }
90
92
 
91
- fs.mkdirSync(newPath, { recursive: true });
93
+ // Create the directory as the authenticated shell user, not as the server process user.
94
+ // Otherwise a mkdir inside another user's home fails with EACCES.
95
+ const result = execAsUser(shellUser, ['mkdir', '--', newPath]);
96
+ if (result.status !== 0) {
97
+ const msg = (result.stderr || '').trim() || 'Failed to create folder';
98
+ const status = /exists/i.test(msg) ? 409 : /permission|denied/i.test(msg) ? 403 : 500;
99
+ return NextResponse.json({ error: msg }, { status });
100
+ }
92
101
 
93
102
  return NextResponse.json({ path: newPath }, { status: 201 });
94
- } catch {
95
- return NextResponse.json({ error: 'Failed to create folder' }, { status: 500 });
103
+ } catch (e) {
104
+ const msg = e instanceof Error ? e.message : 'Failed to create folder';
105
+ return NextResponse.json({ error: msg }, { status: 500 });
96
106
  }
97
107
  }
@@ -2,6 +2,7 @@ import { NextRequest } from 'next/server';
2
2
  import { getPro } from '@/lib/pro';
3
3
  import { ensureInitialized } from '@/lib/db/init';
4
4
  import { getPaneById, updatePane, deletePane } from '@/lib/db/queries';
5
+ import { withUser } from '@/lib/auth';
5
6
 
6
7
  const notAvailable = () =>
7
8
  Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
@@ -17,11 +18,16 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
17
18
  throw e;
18
19
  }
19
20
 
21
+ const keyUser = keyRecord?.username;
22
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
23
+
20
24
  const { id } = await params;
21
- await ensureInitialized();
22
- const pane = getPaneById(id);
23
- if (!pane) return Response.json({ error: 'Pane not found' }, { status: 404 });
24
- return Response.json(pane);
25
+ return withUser(keyUser, async () => {
26
+ await ensureInitialized();
27
+ const pane = getPaneById(id);
28
+ if (!pane) return Response.json({ error: 'Pane not found' }, { status: 404 });
29
+ return Response.json(pane);
30
+ });
25
31
  }
26
32
 
27
33
  export async function PUT(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
@@ -36,11 +42,16 @@ export async function PUT(req: NextRequest, { params }: { params: Promise<{ id:
36
42
  }
37
43
  if (keyRecord?.permissions !== 'admin') return Response.json({ error: 'Admin permission required' }, { status: 403 });
38
44
 
45
+ const keyUser = keyRecord?.username;
46
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
47
+
39
48
  const { id } = await params;
40
- await ensureInitialized();
41
- const body = await req.json();
42
- updatePane(id, body);
43
- return Response.json({ success: true });
49
+ return withUser(keyUser, async () => {
50
+ await ensureInitialized();
51
+ const body = await req.json();
52
+ updatePane(id, body);
53
+ return Response.json({ success: true });
54
+ });
44
55
  }
45
56
 
46
57
  export async function DELETE(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
@@ -55,8 +66,13 @@ export async function DELETE(req: NextRequest, { params }: { params: Promise<{ i
55
66
  }
56
67
  if (keyRecord?.permissions !== 'admin') return Response.json({ error: 'Admin permission required' }, { status: 403 });
57
68
 
69
+ const keyUser = keyRecord?.username;
70
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
71
+
58
72
  const { id } = await params;
59
- await ensureInitialized();
60
- deletePane(id);
61
- return Response.json({ success: true });
73
+ return withUser(keyUser, async () => {
74
+ await ensureInitialized();
75
+ deletePane(id);
76
+ return Response.json({ success: true });
77
+ });
62
78
  }
@@ -3,6 +3,7 @@ import { randomUUID } from 'crypto';
3
3
  import { getPro } from '@/lib/pro';
4
4
  import { ensureInitialized } from '@/lib/db/init';
5
5
  import { getPanesByWorkspace, getActivePanes, createPane } from '@/lib/db/queries';
6
+ import { withUser } from '@/lib/auth';
6
7
 
7
8
  const notAvailable = () =>
8
9
  Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
@@ -18,10 +19,15 @@ export async function GET(req: NextRequest) {
18
19
  throw e;
19
20
  }
20
21
 
21
- await ensureInitialized();
22
- const wsId = req.nextUrl.searchParams.get('workspace_id');
23
- const panes = wsId ? getPanesByWorkspace(parseInt(wsId, 10)) : getActivePanes();
24
- return Response.json({ panes });
22
+ const keyUser = keyRecord?.username;
23
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
24
+
25
+ return withUser(keyUser, async () => {
26
+ await ensureInitialized();
27
+ const wsId = req.nextUrl.searchParams.get('workspace_id');
28
+ const panes = wsId ? getPanesByWorkspace(parseInt(wsId, 10)) : getActivePanes();
29
+ return Response.json({ panes });
30
+ });
25
31
  }
26
32
 
27
33
  export async function POST(req: NextRequest) {
@@ -36,15 +42,20 @@ export async function POST(req: NextRequest) {
36
42
  }
37
43
  if (keyRecord?.permissions !== 'admin') return Response.json({ error: 'Admin permission required' }, { status: 403 });
38
44
 
39
- await ensureInitialized();
40
- const body = await req.json();
41
- const pane = createPane({
42
- id: body.id || randomUUID(),
43
- title: body.title || 'Terminal',
44
- color: body.color || '#6366f1',
45
- cwd: body.cwd || '~',
46
- agentType: body.agentType || 'shell',
47
- workspaceId: body.workspaceId,
45
+ const keyUser = keyRecord?.username;
46
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
47
+
48
+ return withUser(keyUser, async () => {
49
+ await ensureInitialized();
50
+ const body = await req.json();
51
+ const pane = createPane({
52
+ id: body.id || randomUUID(),
53
+ title: body.title || 'Terminal',
54
+ color: body.color || '#6366f1',
55
+ cwd: body.cwd || '~',
56
+ agentType: body.agentType || 'shell',
57
+ workspaceId: body.workspaceId,
58
+ });
59
+ return Response.json(pane);
48
60
  });
49
- return Response.json(pane);
50
61
  }
@@ -2,6 +2,7 @@ import { NextRequest } from 'next/server';
2
2
  import { getPro } from '@/lib/pro';
3
3
  import { ensureInitialized } from '@/lib/db/init';
4
4
  import { getAllProjects } from '@/lib/db/queries';
5
+ import { withUser } from '@/lib/auth';
5
6
 
6
7
  const notAvailable = () =>
7
8
  Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
@@ -10,8 +11,9 @@ export async function GET(req: NextRequest) {
10
11
  const pro = getPro();
11
12
  if (!pro) return notAvailable();
12
13
 
14
+ let keyRecord;
13
15
  try {
14
- pro.network.requireNetworkAuth(req);
16
+ keyRecord = pro.network.requireNetworkAuth(req);
15
17
  } catch (e: any) {
16
18
  if (e.name === 'NetworkAuthError') {
17
19
  return Response.json({ error: e.message }, { status: 401 });
@@ -19,7 +21,12 @@ export async function GET(req: NextRequest) {
19
21
  throw e;
20
22
  }
21
23
 
22
- await ensureInitialized();
23
- const projects = getAllProjects();
24
- return Response.json(projects);
24
+ const keyUser = keyRecord?.username;
25
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
26
+
27
+ return withUser(keyUser, async () => {
28
+ await ensureInitialized();
29
+ const projects = getAllProjects();
30
+ return Response.json(projects);
31
+ });
25
32
  }
@@ -2,6 +2,7 @@ import { NextRequest } from 'next/server';
2
2
  import { getPro } from '@/lib/pro';
3
3
  import { ensureInitialized } from '@/lib/db/init';
4
4
  import { searchSessions } from '@/lib/db/queries';
5
+ import { withUser } from '@/lib/auth';
5
6
 
6
7
  const notAvailable = () =>
7
8
  Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
@@ -10,8 +11,9 @@ export async function GET(req: NextRequest) {
10
11
  const pro = getPro();
11
12
  if (!pro) return notAvailable();
12
13
 
14
+ let keyRecord;
13
15
  try {
14
- pro.network.requireNetworkAuth(req);
16
+ keyRecord = pro.network.requireNetworkAuth(req);
15
17
  } catch (e: any) {
16
18
  if (e.name === 'NetworkAuthError') {
17
19
  return Response.json({ error: e.message }, { status: 401 });
@@ -19,20 +21,25 @@ export async function GET(req: NextRequest) {
19
21
  throw e;
20
22
  }
21
23
 
22
- await ensureInitialized();
24
+ const keyUser = keyRecord?.username;
25
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
23
26
 
24
- const { searchParams } = req.nextUrl;
25
- const query = searchParams.get('q') || '';
26
- if (!query) {
27
- return Response.json({ results: [], query: '' });
28
- }
27
+ return withUser(keyUser, async () => {
28
+ await ensureInitialized();
29
+
30
+ const { searchParams } = req.nextUrl;
31
+ const query = searchParams.get('q') || '';
32
+ if (!query) {
33
+ return Response.json({ results: [], query: '' });
34
+ }
29
35
 
30
- const params = {
31
- projectId: searchParams.get('projectId') || undefined,
32
- limit: parseInt(searchParams.get('limit') || '20', 10),
33
- offset: parseInt(searchParams.get('offset') || '0', 10),
34
- };
36
+ const params = {
37
+ projectId: searchParams.get('projectId') || undefined,
38
+ limit: parseInt(searchParams.get('limit') || '20', 10),
39
+ offset: parseInt(searchParams.get('offset') || '0', 10),
40
+ };
35
41
 
36
- const results = searchSessions(query, params);
37
- return Response.json({ results, query });
42
+ const results = searchSessions(query, params);
43
+ return Response.json({ results, query });
44
+ });
38
45
  }
@@ -3,6 +3,7 @@ import { getPro } from '@/lib/pro';
3
3
  import { ensureInitialized } from '@/lib/db/init';
4
4
  import { getSessionById } from '@/lib/db/queries';
5
5
  import { readMessages } from '@/lib/claude/parser';
6
+ import { withUser } from '@/lib/auth';
6
7
 
7
8
  const notAvailable = () =>
8
9
  Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
@@ -11,8 +12,9 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
11
12
  const pro = getPro();
12
13
  if (!pro) return notAvailable();
13
14
 
15
+ let keyRecord;
14
16
  try {
15
- pro.network.requireNetworkAuth(req);
17
+ keyRecord = pro.network.requireNetworkAuth(req);
16
18
  } catch (e: any) {
17
19
  if (e.name === 'NetworkAuthError') {
18
20
  return Response.json({ error: e.message }, { status: 401 });
@@ -20,17 +22,22 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
20
22
  throw e;
21
23
  }
22
24
 
23
- await ensureInitialized();
25
+ const keyUser = keyRecord?.username;
26
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
27
+
24
28
  const { id } = await params;
25
- const { searchParams } = req.nextUrl;
26
- const offset = parseInt(searchParams.get('offset') || '0', 10);
27
- const limit = parseInt(searchParams.get('limit') || '50', 10);
29
+ return withUser(keyUser, async () => {
30
+ await ensureInitialized();
31
+ const { searchParams } = req.nextUrl;
32
+ const offset = parseInt(searchParams.get('offset') || '0', 10);
33
+ const limit = parseInt(searchParams.get('limit') || '50', 10);
28
34
 
29
- const session = getSessionById(id);
30
- if (!session) {
31
- return Response.json({ error: 'Session not found' }, { status: 404 });
32
- }
35
+ const session = getSessionById(id);
36
+ if (!session) {
37
+ return Response.json({ error: 'Session not found' }, { status: 404 });
38
+ }
33
39
 
34
- const result = await readMessages(session.fullPath, offset, limit);
35
- return Response.json(result);
40
+ const result = await readMessages(session.fullPath, offset, limit);
41
+ return Response.json(result);
42
+ });
36
43
  }
@@ -2,6 +2,7 @@ import { NextRequest } from 'next/server';
2
2
  import { getPro } from '@/lib/pro';
3
3
  import { ensureInitialized } from '@/lib/db/init';
4
4
  import { getSessionById, getSessionTags, getSessionWorkspaces } from '@/lib/db/queries';
5
+ import { withUser } from '@/lib/auth';
5
6
 
6
7
  const notAvailable = () =>
7
8
  Response.json({ error: 'Requires @spaces/pro' }, { status: 404 });
@@ -10,8 +11,9 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
10
11
  const pro = getPro();
11
12
  if (!pro) return notAvailable();
12
13
 
14
+ let keyRecord;
13
15
  try {
14
- pro.network.requireNetworkAuth(req);
16
+ keyRecord = pro.network.requireNetworkAuth(req);
15
17
  } catch (e: any) {
16
18
  if (e.name === 'NetworkAuthError') {
17
19
  return Response.json({ error: e.message }, { status: 401 });
@@ -19,16 +21,21 @@ export async function GET(req: NextRequest, { params }: { params: Promise<{ id:
19
21
  throw e;
20
22
  }
21
23
 
22
- await ensureInitialized();
24
+ const keyUser = keyRecord?.username;
25
+ if (!keyUser) return Response.json({ error: 'API key missing user binding' }, { status: 401 });
26
+
23
27
  const { id } = await params;
24
- const session = getSessionById(id);
28
+ return withUser(keyUser, async () => {
29
+ await ensureInitialized();
30
+ const session = getSessionById(id);
25
31
 
26
- if (!session) {
27
- return Response.json({ error: 'Session not found' }, { status: 404 });
28
- }
32
+ if (!session) {
33
+ return Response.json({ error: 'Session not found' }, { status: 404 });
34
+ }
29
35
 
30
- const tags = getSessionTags(session.id);
31
- const workspaces = getSessionWorkspaces(session.id);
36
+ const tags = getSessionTags(session.id);
37
+ const workspaces = getSessionWorkspaces(session.id);
32
38
 
33
- return Response.json({ ...session, tagObjects: tags, workspaces });
39
+ return Response.json({ ...session, tagObjects: tags, workspaces });
40
+ });
34
41
  }