@jlongo78/agent-spaces 0.5.0 → 0.5.2

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 (190) hide show
  1. package/.next/standalone/.claude/settings.local.json +4 -1
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  5. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  12. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
  20. package/.next/standalone/.next/server/app/admin/analytics.rsc +1 -1
  21. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/admin/users.html +1 -1
  30. package/.next/standalone/.next/server/app/admin/users.rsc +1 -1
  31. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
  32. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
  33. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  35. package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +1 -1
  38. package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/analytics.html +1 -1
  40. package/.next/standalone/.next/server/app/analytics.rsc +1 -1
  41. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
  42. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
  43. package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  44. package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +1 -1
  45. package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +1 -1
  47. package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +1 -1
  48. package/.next/standalone/.next/server/app/login.html +1 -1
  49. package/.next/standalone/.next/server/app/login.rsc +1 -1
  50. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +1 -1
  53. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  55. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/m/projects.html +1 -1
  57. package/.next/standalone/.next/server/app/m/projects.rsc +1 -1
  58. package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +1 -1
  59. package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
  60. package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +1 -1
  61. package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +1 -1
  62. package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
  64. package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
  65. package/.next/standalone/.next/server/app/m/sessions.html +1 -1
  66. package/.next/standalone/.next/server/app/m/sessions.rsc +1 -1
  67. package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
  69. package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +1 -1
  70. package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +1 -1
  71. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
  72. package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
  73. package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
  74. package/.next/standalone/.next/server/app/m/settings.html +1 -1
  75. package/.next/standalone/.next/server/app/m/settings.rsc +1 -1
  76. package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +1 -1
  77. package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
  78. package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +1 -1
  79. package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/m/terminal.html +1 -1
  84. package/.next/standalone/.next/server/app/m/terminal.rsc +1 -1
  85. package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +1 -1
  86. package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
  87. package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +1 -1
  88. package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +1 -1
  89. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
  90. package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
  91. package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/m.html +1 -1
  93. package/.next/standalone/.next/server/app/m.rsc +1 -1
  94. package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +1 -1
  95. package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +1 -1
  97. package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
  99. package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
  100. package/.next/standalone/.next/server/app/network.html +1 -1
  101. package/.next/standalone/.next/server/app/network.rsc +1 -1
  102. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
  103. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
  104. package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  105. package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +1 -1
  106. package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/projects.html +1 -1
  110. package/.next/standalone/.next/server/app/projects.rsc +1 -1
  111. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
  112. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
  113. package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  114. package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +1 -1
  115. package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  116. package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/sessions.html +1 -1
  119. package/.next/standalone/.next/server/app/sessions.rsc +1 -1
  120. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
  122. package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  123. package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +1 -1
  124. package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  125. package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +1 -1
  126. package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/settings.html +1 -1
  128. package/.next/standalone/.next/server/app/settings.rsc +1 -1
  129. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
  130. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  132. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  133. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  134. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  135. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  136. package/.next/standalone/.next/server/app/terminal.html +1 -1
  137. package/.next/standalone/.next/server/app/terminal.rsc +1 -1
  138. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +1 -1
  139. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
  140. package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  141. package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +1 -1
  142. package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
  143. package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +1 -1
  144. package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +1 -1
  145. package/.next/standalone/.next/server/app/workspaces.html +1 -1
  146. package/.next/standalone/.next/server/app/workspaces.rsc +1 -1
  147. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
  148. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
  150. package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +1 -1
  151. package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
  152. package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +1 -1
  153. package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +1 -1
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__086be15a._.js +1 -1
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__20353b76._.js +1 -1
  156. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2861e096._.js +1 -1
  157. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b6758fc._.js +1 -1
  158. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2e9d1d5a._.js +1 -1
  159. package/.next/standalone/.next/server/chunks/[root-of-the-server]__34c34116._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3ce30e4e._.js +1 -1
  161. package/.next/standalone/.next/server/chunks/[root-of-the-server]__43112c34._.js +1 -1
  162. package/.next/standalone/.next/server/chunks/[root-of-the-server]__47a63195._.js +1 -1
  163. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60689e2b._.js +1 -1
  164. package/.next/standalone/.next/server/chunks/[root-of-the-server]__83b9bcf3._.js +1 -1
  165. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c2eee30._.js +1 -1
  166. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8ffcf827._.js +1 -1
  167. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e343d64._.js +1 -1
  168. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a2ee9884._.js +1 -1
  169. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a651ede9._.js +1 -1
  170. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4b692df._.js +1 -1
  171. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4edb4d6._.js +1 -1
  172. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c525457e._.js +1 -1
  173. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c546cf71._.js +1 -1
  174. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccc27199._.js +1 -1
  175. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ce5edd98._.js +1 -1
  176. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d877df12._.js +1 -1
  177. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dd2e81be._.js +1 -1
  178. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e742ef33._.js +1 -1
  179. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
  180. package/.next/standalone/.next/server/edge/chunks/_d73df637._.js +1 -1
  181. package/.next/standalone/.next/server/middleware-manifest.json +1 -1
  182. package/.next/standalone/.next/server/pages/404.html +1 -1
  183. package/.next/standalone/.next/server/pages/500.html +2 -2
  184. package/.next/standalone/package.json +1 -1
  185. package/bin/spaces-install.js +27 -1
  186. package/bin/spaces.js +1 -1
  187. package/package.json +1 -1
  188. /package/.next/standalone/.next/static/{MjMvcPAGPqPwAzs1S2njU → O6DdjswRa9GKIUCn6RwBy}/_buildManifest.js +0 -0
  189. /package/.next/standalone/.next/static/{MjMvcPAGPqPwAzs1S2njU → O6DdjswRa9GKIUCn6RwBy}/_clientMiddlewareManifest.json +0 -0
  190. /package/.next/standalone/.next/static/{MjMvcPAGPqPwAzs1S2njU → O6DdjswRa9GKIUCn6RwBy}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...d(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.0",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},15984,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),w=e.i(65836),R=e.i(50837);async function j(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>(await (0,w.ensureInitialized)(),y.NextResponse.json((0,R.getAllTags)())))}async function S(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>{await (0,w.ensureInitialized)();let t=await e.json();if("create"===t.action){let e=(0,R.createTag)(t.name,t.color);return y.NextResponse.json(e)}return"delete"===t.action?((0,R.deleteTag)(t.tagId),y.NextResponse.json({success:!0})):"updateColor"===t.action?((0,R.updateTagColor)(t.tagId,t.color),y.NextResponse.json({success:!0})):y.NextResponse.json({error:"Unknown action"},{status:400})})}e.s(["GET",()=>j,"POST",()=>S],70322);var b=e.i(70322);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tags/route",pathname:"/api/tags",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/tags/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:A,workUnitAsyncStorage:T,serverHooks:C}=E;function k(){return(0,s.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:T})}async function U(e,t,s){E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/tags/route";y=y.replace(/\/index$/,"")||"/";let v=await E.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:j,parsedUrl:S,isDraftMode:b,prerenderManifest:A,routerServerContext:T,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,resolvedPathname:U,clientReferenceManifest:_,serverActionsManifest:I}=v,N=(0,o.normalizeAppPath)(y),P=!!(A.dynamicRoutes[N]||A.routes[U]),O=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,S,!1):t.end("This page could not be found"),null);if(P&&!b){let e=!!A.routes[U],t=A.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await O();throw new x.NoFallbackError}}let D=null;!P||E.isDev||b||(D="/index"===(D=U)?"/":D);let q=!0===E.isDev||!P,H=P&&!q;I&&_&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:_,serverActionsManifest:I});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>E.onRequestError(e,t,s,n,T)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>E.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&C&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,T),t}},c=await E.handleResponse({req:e,nextConfig:j,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!P)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&P||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,T),P)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>U,"patchFetch",()=>k,"routeModule",()=>E,"serverHooks",()=>C,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>T],15984)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
1
+ module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...d(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},15984,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),w=e.i(65836),R=e.i(50837);async function j(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>(await (0,w.ensureInitialized)(),y.NextResponse.json((0,R.getAllTags)())))}async function S(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>{await (0,w.ensureInitialized)();let t=await e.json();if("create"===t.action){let e=(0,R.createTag)(t.name,t.color);return y.NextResponse.json(e)}return"delete"===t.action?((0,R.deleteTag)(t.tagId),y.NextResponse.json({success:!0})):"updateColor"===t.action?((0,R.updateTagColor)(t.tagId,t.color),y.NextResponse.json({success:!0})):y.NextResponse.json({error:"Unknown action"},{status:400})})}e.s(["GET",()=>j,"POST",()=>S],70322);var b=e.i(70322);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tags/route",pathname:"/api/tags",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/tags/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:A,workUnitAsyncStorage:T,serverHooks:C}=E;function k(){return(0,s.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:T})}async function U(e,t,s){E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/tags/route";y=y.replace(/\/index$/,"")||"/";let v=await E.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:j,parsedUrl:S,isDraftMode:b,prerenderManifest:A,routerServerContext:T,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,resolvedPathname:U,clientReferenceManifest:_,serverActionsManifest:I}=v,N=(0,o.normalizeAppPath)(y),P=!!(A.dynamicRoutes[N]||A.routes[U]),O=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,S,!1):t.end("This page could not be found"),null);if(P&&!b){let e=!!A.routes[U],t=A.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await O();throw new x.NoFallbackError}}let D=null;!P||E.isDev||b||(D="/index"===(D=U)?"/":D);let q=!0===E.isDev||!P,H=P&&!q;I&&_&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:_,serverActionsManifest:I});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>E.onRequestError(e,t,s,n,T)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>E.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&C&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,T),t}},c=await E.handleResponse({req:e,nextConfig:j,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!P)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&P||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,T),P)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>U,"patchFetch",()=>k,"routeModule",()=>E,"serverHooks",()=>C,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>T],15984)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__43112c34._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function c(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function u(e,t){let s={...c(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>c,"writeConfig",()=>u])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.0",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},76207,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),v=e.i(89171),y=e.i(79832),w=e.i(65836),R=e.i(50837),S=e.i(21150);let b={"claude-opus-4-5-20251101":{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},"claude-opus-4-6":{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},"claude-sonnet-4-5-20250929":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-haiku-4-5-20251001":{input:.8,output:4,cacheRead:.08,cacheWrite:1}};var j=e.i(15286);async function E(e){let t=(0,y.getAuthUser)(e);return(0,y.withUser)(t,async()=>{await (0,w.ensureInitialized)();let e=(0,R.getAnalyticsOverview)(),{sessions:r}=(0,R.getSessions)({limit:5,sortBy:"modified",sortDir:"DESC"}),s=(0,R.getDailyActivity)(30),{statsPath:n}=(0,j.getUserPaths)(t),a=(0,S.readStatsCache)(n),i=a?.modelUsage?function(e){let t=0;for(let[r,s]of Object.entries(e)){let e=function(e){if(b[e])return b[e];for(let[t,r]of Object.entries(b))if(e.startsWith(t.split("-").slice(0,2).join("-")))return r;return b["claude-sonnet-4-5-20250929"]}(r);e&&(t+=s.inputTokens/1e6*e.input+s.outputTokens/1e6*e.output+s.cacheReadInputTokens/1e6*e.cacheRead+s.cacheCreationInputTokens/1e6*e.cacheWrite)}return Math.round(100*t)/100}(a.modelUsage):0;return v.NextResponse.json({...e,estimatedCost:i,recentSessions:r,dailyActivity:s,dailyModelTokens:a?.dailyModelTokens||[],modelUsage:a?.modelUsage||{}})})}e.s(["GET",()=>E],94365);var A=e.i(94365);let T=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/analytics/overview/route",pathname:"/api/analytics/overview",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/analytics/overview/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:C,workUnitAsyncStorage:k,serverHooks:U}=T;function _(){return(0,s.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:k})}async function O(e,t,s){T.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/analytics/overview/route";v=v.replace(/\/index$/,"")||"/";let y=await T.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:S,parsedUrl:b,isDraftMode:j,prerenderManifest:E,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,resolvedPathname:U,clientReferenceManifest:_,serverActionsManifest:O}=y,P=(0,o.normalizeAppPath)(v),D=!!(E.dynamicRoutes[P]||E.routes[U]),I=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(D&&!j){let e=!!E.routes[U],t=E.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await I();throw new x.NoFallbackError}}let N=null;!D||T.isDev||j||(N="/index"===(N=U)?"/":N);let q=!0===T.isDev||!D,H=D&&!q;O&&_&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:_,serverActionsManifest:O});let $=e.method||"GET",M=(0,a.getTracer)(),F=M.getActiveScopeSpan(),L={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>T.onRequestError(e,t,s,n,A)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),W=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let i=async e=>T.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${v}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&C&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[g.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,A),t}},u=await T.handleResponse({req:e,nextConfig:S,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,responseGenerator:c,waitUntil:s.waitUntil,isMinimalMode:o});if(!D)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&D||x.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(B,K,new Response(u.value.body,{headers:x,status:u.value.status||200})),null};F?await l(F):await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,A),D)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>_,"routeModule",()=>T,"serverHooks",()=>U,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>k],76207)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
1
+ module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function c(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function u(e,t){let s={...c(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>c,"writeConfig",()=>u])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},76207,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),v=e.i(89171),y=e.i(79832),w=e.i(65836),R=e.i(50837),S=e.i(21150);let b={"claude-opus-4-5-20251101":{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},"claude-opus-4-6":{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},"claude-sonnet-4-5-20250929":{input:3,output:15,cacheRead:.3,cacheWrite:3.75},"claude-haiku-4-5-20251001":{input:.8,output:4,cacheRead:.08,cacheWrite:1}};var j=e.i(15286);async function E(e){let t=(0,y.getAuthUser)(e);return(0,y.withUser)(t,async()=>{await (0,w.ensureInitialized)();let e=(0,R.getAnalyticsOverview)(),{sessions:r}=(0,R.getSessions)({limit:5,sortBy:"modified",sortDir:"DESC"}),s=(0,R.getDailyActivity)(30),{statsPath:n}=(0,j.getUserPaths)(t),a=(0,S.readStatsCache)(n),i=a?.modelUsage?function(e){let t=0;for(let[r,s]of Object.entries(e)){let e=function(e){if(b[e])return b[e];for(let[t,r]of Object.entries(b))if(e.startsWith(t.split("-").slice(0,2).join("-")))return r;return b["claude-sonnet-4-5-20250929"]}(r);e&&(t+=s.inputTokens/1e6*e.input+s.outputTokens/1e6*e.output+s.cacheReadInputTokens/1e6*e.cacheRead+s.cacheCreationInputTokens/1e6*e.cacheWrite)}return Math.round(100*t)/100}(a.modelUsage):0;return v.NextResponse.json({...e,estimatedCost:i,recentSessions:r,dailyActivity:s,dailyModelTokens:a?.dailyModelTokens||[],modelUsage:a?.modelUsage||{}})})}e.s(["GET",()=>E],94365);var A=e.i(94365);let T=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/analytics/overview/route",pathname:"/api/analytics/overview",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/analytics/overview/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:C,workUnitAsyncStorage:k,serverHooks:U}=T;function _(){return(0,s.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:k})}async function O(e,t,s){T.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/analytics/overview/route";v=v.replace(/\/index$/,"")||"/";let y=await T.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:S,parsedUrl:b,isDraftMode:j,prerenderManifest:E,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,resolvedPathname:U,clientReferenceManifest:_,serverActionsManifest:O}=y,P=(0,o.normalizeAppPath)(v),D=!!(E.dynamicRoutes[P]||E.routes[U]),I=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(D&&!j){let e=!!E.routes[U],t=E.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await I();throw new x.NoFallbackError}}let N=null;!D||T.isDev||j||(N="/index"===(N=U)?"/":N);let q=!0===T.isDev||!D,H=D&&!q;O&&_&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:_,serverActionsManifest:O});let $=e.method||"GET",M=(0,a.getTracer)(),F=M.getActiveScopeSpan(),L={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>T.onRequestError(e,t,s,n,A)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),W=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let i=async e=>T.handle(W,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${v}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&C&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[g.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await T.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,A),t}},u=await T.handleResponse({req:e,nextConfig:S,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,responseGenerator:c,waitUntil:s.waitUntil,isMinimalMode:o});if(!D)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&D||x.delete(g.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(B,K,new Response(u.value.body,{headers:x,status:u.value.status||200})),null};F?await l(F):await M.withPropagatedContext(e.headers,()=>M.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await T.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,A),D)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>_,"routeModule",()=>T,"serverHooks",()=>U,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>k],76207)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__47a63195._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),n=e.i(46786),s=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let s=r===n.default.userInfo().username?n.default.homedir():`/home/${r}`,o=r===n.default.userInfo().username?t.default.join(n.default.homedir(),".spaces"):t.default.join(n.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(s,".claude"),claudeProjectsDir:t.default.join(s,".claude","projects"),statsPath:t.default.join(s,".claude","stats-cache.json"),codexDir:t.default.join(s,".codex"),codexSessionsDir:t.default.join(s,".codex","sessions"),geminiDir:t.default.join(s,".gemini"),geminiChatsBaseDir:t.default.join(s,".gemini","tmp"),geminiProjectsRegistry:t.default.join(s,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function u(e){let{configPath:t,spacesDir:n}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||s.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(n)||r.default.mkdirSync(n,{recursive:!0});let a={installId:s.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function d(e,t){let n={...u(e),...t},{configPath:s}=o(e);return r.default.writeFileSync(s,JSON.stringify(n,null,2)),n}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>u,"writeConfig",()=>d])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),n=e.i(17516);let s=new t.AsyncLocalStorage;function a(e){return n.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return s.run(e,t)}function o(){let e=s.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let n=null,s=!1;function a(){if(!s){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{n=(0,t.createRequire)(e)("@spaces/teams");break}catch{}s=!0}return n}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.0",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,s=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:s,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},48455,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),x=e.i(10372),g=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),R=e.i(60569);async function w(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>{try{let e=await (0,R.fullSync)(),t=await (0,R.enrichMissingSessions)();return(0,R.buildFtsIndex)().catch(console.error),y.NextResponse.json({success:!0,...e,enriched:t})}catch(e){return y.NextResponse.json({error:String(e)},{status:500})}})}e.s(["POST",()=>w],55655);var b=e.i(55655);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sync/route",pathname:"/api/sync",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sync/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:E,workUnitAsyncStorage:S,serverHooks:A}=j;function C(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:S})}async function T(e,t,n){j.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/sync/route";y=y.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:w,nextConfig:b,parsedUrl:E,isDraftMode:S,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:P,clientReferenceManifest:O,serverActionsManifest:U}=v,N=(0,o.normalizeAppPath)(y),q=!!(A.dynamicRoutes[N]||A.routes[P]),I=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,E,!1):t.end("This page could not be found"),null);if(q&&!S){let e=!!A.routes[P],t=A.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await I();throw new g.NoFallbackError}}let _=null;!q||j.isDev||S||(_="/index"===(_=P)?"/":_);let D=!0===j.isDev||!q,H=q&&!D;U&&O&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:O,serverActionsManifest:U});let M=e.method||"GET",F=(0,a.getTracer)(),L=F.getActiveScopeSpan(),$={params:w,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>j.onRequestError(e,t,n,s,C)},sharedContext:{buildId:R}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>j.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${y}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=$.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(B,K,a,$.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[x.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),t}},d=await j.handleResponse({req:e,nextConfig:b,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!q)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&q||g.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,K,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};L?await l(L):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),q)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>A,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>S],48455)}];
1
+ module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),n=e.i(46786),s=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let s=r===n.default.userInfo().username?n.default.homedir():`/home/${r}`,o=r===n.default.userInfo().username?t.default.join(n.default.homedir(),".spaces"):t.default.join(n.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(s,".claude"),claudeProjectsDir:t.default.join(s,".claude","projects"),statsPath:t.default.join(s,".claude","stats-cache.json"),codexDir:t.default.join(s,".codex"),codexSessionsDir:t.default.join(s,".codex","sessions"),geminiDir:t.default.join(s,".gemini"),geminiChatsBaseDir:t.default.join(s,".gemini","tmp"),geminiProjectsRegistry:t.default.join(s,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function u(e){let{configPath:t,spacesDir:n}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||s.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(n)||r.default.mkdirSync(n,{recursive:!0});let a={installId:s.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function d(e,t){let n={...u(e),...t},{configPath:s}=o(e);return r.default.writeFileSync(s,JSON.stringify(n,null,2)),n}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>u,"writeConfig",()=>d])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),n=e.i(17516);let s=new t.AsyncLocalStorage;function a(e){return n.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return s.run(e,t)}function o(){let e=s.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let n=null,s=!1;function a(){if(!s){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{n=(0,t.createRequire)(e)("@spaces/teams");break}catch{}s=!0}return n}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,s=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:s,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},48455,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),x=e.i(10372),g=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),R=e.i(60569);async function w(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>{try{let e=await (0,R.fullSync)(),t=await (0,R.enrichMissingSessions)();return(0,R.buildFtsIndex)().catch(console.error),y.NextResponse.json({success:!0,...e,enriched:t})}catch(e){return y.NextResponse.json({error:String(e)},{status:500})}})}e.s(["POST",()=>w],55655);var b=e.i(55655);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sync/route",pathname:"/api/sync",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sync/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:E,workUnitAsyncStorage:S,serverHooks:A}=j;function C(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:S})}async function T(e,t,n){j.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/sync/route";y=y.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:R,params:w,nextConfig:b,parsedUrl:E,isDraftMode:S,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:P,clientReferenceManifest:O,serverActionsManifest:U}=v,N=(0,o.normalizeAppPath)(y),q=!!(A.dynamicRoutes[N]||A.routes[P]),I=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,E,!1):t.end("This page could not be found"),null);if(q&&!S){let e=!!A.routes[P],t=A.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await I();throw new g.NoFallbackError}}let _=null;!q||j.isDev||S||(_="/index"===(_=P)?"/":_);let D=!0===j.isDev||!q,H=q&&!D;U&&O&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:O,serverActionsManifest:U});let M=e.method||"GET",F=(0,a.getTracer)(),L=F.getActiveScopeSpan(),$={params:w,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>j.onRequestError(e,t,n,s,C)},sharedContext:{buildId:R}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>j.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${y}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(s);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=$.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(B,K,a,$.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[x.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),t}},d=await j.handleResponse({req:e,nextConfig:b,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:o});if(!q)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&q||g.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,K,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};L?await l(L):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),q)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>A,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>S],48455)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__60689e2b._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),n=e.i(46786),s=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let s=r===n.default.userInfo().username?n.default.homedir():`/home/${r}`,o=r===n.default.userInfo().username?t.default.join(n.default.homedir(),".spaces"):t.default.join(n.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(s,".claude"),claudeProjectsDir:t.default.join(s,".claude","projects"),statsPath:t.default.join(s,".claude","stats-cache.json"),codexDir:t.default.join(s,".codex"),codexSessionsDir:t.default.join(s,".codex","sessions"),geminiDir:t.default.join(s,".gemini"),geminiChatsBaseDir:t.default.join(s,".gemini","tmp"),geminiProjectsRegistry:t.default.join(s,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:n}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||s.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(n)||r.default.mkdirSync(n,{recursive:!0});let a={installId:s.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let n={...d(e),...t},{configPath:s}=o(e);return r.default.writeFileSync(s,JSON.stringify(n,null,2)),n}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),n=e.i(17516);let s=new t.AsyncLocalStorage;function a(e){return n.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return s.run(e,t)}function o(){let e=s.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let n=null,s=!1;function a(){if(!s){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{n=(0,t.createRequire)(e)("@spaces/teams");break}catch{}s=!0}return n}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.0",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,s=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:s,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},20776,e=>{"use strict";let t=new class{clients=[];addClient(e,t){this.clients.push({id:e,controller:t})}removeClient(e){this.clients=this.clients.filter(t=>t.id!==e)}broadcast(e,t){let r=`event: ${e}
1
+ module.exports=[22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),n=e.i(46786),s=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let s=r===n.default.userInfo().username?n.default.homedir():`/home/${r}`,o=r===n.default.userInfo().username?t.default.join(n.default.homedir(),".spaces"):t.default.join(n.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(s,".claude"),claudeProjectsDir:t.default.join(s,".claude","projects"),statsPath:t.default.join(s,".claude","stats-cache.json"),codexDir:t.default.join(s,".codex"),codexSessionsDir:t.default.join(s,".codex","sessions"),geminiDir:t.default.join(s,".gemini"),geminiChatsBaseDir:t.default.join(s,".gemini","tmp"),geminiProjectsRegistry:t.default.join(s,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:n}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||s.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(n)||r.default.mkdirSync(n,{recursive:!0});let a={installId:s.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let n={...d(e),...t},{configPath:s}=o(e);return r.default.writeFileSync(s,JSON.stringify(n,null,2)),n}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),n=e.i(17516);let s=new t.AsyncLocalStorage;function a(e){return n.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return s.run(e,t)}function o(){let e=s.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let n=null,s=!1;function a(){if(!s){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{n=(0,t.createRequire)(e)("@spaces/teams");break}catch{}s=!0}return n}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,s=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:s,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},20776,e=>{"use strict";let t=new class{clients=[];addClient(e,t){this.clients.push({id:e,controller:t})}removeClient(e){this.clients=this.clients.filter(t=>t.id!==e)}broadcast(e,t){let r=`event: ${e}
2
2
  data: ${JSON.stringify(t)}
3
3
 
4
4
  `,n=new TextEncoder().encode(r);for(let e of this.clients)try{e.controller.enqueue(n)}catch{this.removeClient(e.id)}}get clientCount(){return this.clients.length}};e.s(["sseManager",0,t])},50608,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(74838),m=e.i(10372),g=e.i(93695);e.i(52474);var x=e.i(220),v=e.i(79832),y=e.i(20776),w=e.i(46786),R=e.i(22734),b=e.i(15286),C=e.i(60569);let E=!1,j=null;async function S(){if(E)return;E=!0;let t=w.default.userInfo().username,r=(0,b.getUserPaths)(t),n=[{dir:r.claudeProjectsDir,filter:e=>e.endsWith(".jsonl")||e.endsWith("sessions-index.json")},{dir:r.codexSessionsDir,filter:e=>e.endsWith(".jsonl")},{dir:r.geminiChatsBaseDir,filter:e=>e.endsWith(".json")&&e.includes("session-")}];try{let t=await e.A(493);for(let{dir:e,filter:r}of n)R.default.existsSync(e)&&(t.watch(e,{ignoreInitial:!0,depth:5,persistent:!0,awaitWriteFinish:{stabilityThreshold:500,pollInterval:100}}).on("all",(e,t)=>{r(t)&&(j&&clearTimeout(j),j=setTimeout(async()=>{try{await (0,C.fullSync)(),y.sseManager.broadcast("sync",{type:e,file:t,timestamp:Date.now()})}catch(e){console.error("[spaces] Watcher sync error:",e)}},1e3))}),console.log("[spaces] File watcher started on",e))}catch(e){console.error("[spaces] Failed to start file watcher:",e)}}async function A(e){let t=(0,v.getAuthUser)(e);return S(),new Response(new ReadableStream({start(e){let r=crypto.randomUUID();y.sseManager.addClient(r,e);let n=new TextEncoder;e.enqueue(n.encode(`event: connected
@@ -1,3 +1,3 @@
1
- module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...d(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.0",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},98907,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),w=e.i(65836),R=e.i(50837);async function S(e,{params:t}){let r=(0,v.getAuthUser)(e);return(0,v.withUser)(r,async()=>{await (0,w.ensureInitialized)();let{id:e}=await t,r=parseInt(e,10),s=(0,R.getPanesByWorkspace)(r),n=(0,R.getWorkspaceSessions)(r);return y.NextResponse.json({panes:s,sessions:n})})}async function b(e,{params:t}){let r=(0,v.getAuthUser)(e);return(0,v.withUser)(r,async()=>{await (0,w.ensureInitialized)();let{id:r}=await t,s=await e.json();return(0,R.updateWorkspace)(parseInt(r,10),s),y.NextResponse.json({success:!0})})}async function j(e,{params:t}){let r=(0,v.getAuthUser)(e);return(0,v.withUser)(r,async()=>{await (0,w.ensureInitialized)();let{id:e}=await t;return(0,R.deleteWorkspaceFull)(parseInt(e,10)),y.NextResponse.json({success:!0})})}e.s(["DELETE",()=>j,"GET",()=>S,"PUT",()=>b],68568);var E=e.i(68568);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/workspaces/[id]/route",pathname:"/api/workspaces/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/workspaces/[id]/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:k,workUnitAsyncStorage:C,serverHooks:T}=A;function U(){return(0,s.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:C})}async function I(e,t,s){A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/workspaces/[id]/route";y=y.replace(/\/index$/,"")||"/";let v=await A.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:S,parsedUrl:b,isDraftMode:j,prerenderManifest:E,routerServerContext:k,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:U,clientReferenceManifest:I,serverActionsManifest:P}=v,_=(0,o.normalizeAppPath)(y),N=!!(E.dynamicRoutes[_]||E.routes[U]),D=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,b,!1):t.end("This page could not be found"),null);if(N&&!j){let e=!!E.routes[U],t=E.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await D();throw new x.NoFallbackError}}let O=null;!N||A.isDev||j||(O="/index"===(O=U)?"/":O);let q=!0===A.isDev||!N,H=N&&!q;P&&I&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:I,serverActionsManifest:P});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>A.onRequestError(e,t,s,n,k)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>A.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&C&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),t}},c=await A.handleResponse({req:e,nextConfig:S,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!N)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&N||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),N)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>I,"patchFetch",()=>U,"routeModule",()=>A,"serverHooks",()=>T,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>C],98907)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
1
+ module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...d(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},98907,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),w=e.i(65836),R=e.i(50837);async function S(e,{params:t}){let r=(0,v.getAuthUser)(e);return(0,v.withUser)(r,async()=>{await (0,w.ensureInitialized)();let{id:e}=await t,r=parseInt(e,10),s=(0,R.getPanesByWorkspace)(r),n=(0,R.getWorkspaceSessions)(r);return y.NextResponse.json({panes:s,sessions:n})})}async function b(e,{params:t}){let r=(0,v.getAuthUser)(e);return(0,v.withUser)(r,async()=>{await (0,w.ensureInitialized)();let{id:r}=await t,s=await e.json();return(0,R.updateWorkspace)(parseInt(r,10),s),y.NextResponse.json({success:!0})})}async function j(e,{params:t}){let r=(0,v.getAuthUser)(e);return(0,v.withUser)(r,async()=>{await (0,w.ensureInitialized)();let{id:e}=await t;return(0,R.deleteWorkspaceFull)(parseInt(e,10)),y.NextResponse.json({success:!0})})}e.s(["DELETE",()=>j,"GET",()=>S,"PUT",()=>b],68568);var E=e.i(68568);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/workspaces/[id]/route",pathname:"/api/workspaces/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/workspaces/[id]/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:k,workUnitAsyncStorage:C,serverHooks:T}=A;function U(){return(0,s.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:C})}async function I(e,t,s){A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/workspaces/[id]/route";y=y.replace(/\/index$/,"")||"/";let v=await A.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:S,parsedUrl:b,isDraftMode:j,prerenderManifest:E,routerServerContext:k,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:U,clientReferenceManifest:I,serverActionsManifest:P}=v,_=(0,o.normalizeAppPath)(y),N=!!(E.dynamicRoutes[_]||E.routes[U]),D=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,b,!1):t.end("This page could not be found"),null);if(N&&!j){let e=!!E.routes[U],t=E.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await D();throw new x.NoFallbackError}}let O=null;!N||A.isDev||j||(O="/index"===(O=U)?"/":O);let q=!0===A.isDev||!N,H=N&&!q;P&&I&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:I,serverActionsManifest:P});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>A.onRequestError(e,t,s,n,k)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>A.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&C&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),t}},c=await A.handleResponse({req:e,nextConfig:S,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!N)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&N||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),N)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>I,"patchFetch",()=>U,"routeModule",()=>A,"serverHooks",()=>T,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>C],98907)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__8c2eee30._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18167,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/pro");break}catch{}n=!0}return s}e.s(["getPro",()=>a])},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function u(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...u(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>u,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.0",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},62518,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),w=e.i(65836),R=e.i(50837),j=e.i(18167);async function S(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>{await (0,w.ensureInitialized)();let{searchParams:t}=e.nextUrl,r=t.get("q");if(!r||r.trim().length<2)return y.NextResponse.json({results:[],query:r});let s=t.get("projectId")||void 0,n=parseInt(t.get("limit")||"20",10),a=parseInt(t.get("offset")||"0",10),i=(0,R.searchSessions)(r,{projectId:s,limit:n,offset:a});if("all"===t.get("nodes"))try{let{aggregateSearch:e}=(0,j.getPro)().network,t={};s&&(t.projectId=s),t.limit=String(n);let a=await e(i,r,t);return y.NextResponse.json({results:a.results,query:r,errors:a.errors})}catch{}return y.NextResponse.json({results:i,query:r})})}e.s(["GET",()=>S],73415);var b=e.i(73415);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/search/route",pathname:"/api/search",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/search/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:A,workUnitAsyncStorage:C,serverHooks:T}=E;function k(){return(0,s.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:C})}async function _(e,t,s){E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/search/route";y=y.replace(/\/index$/,"")||"/";let v=await E.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:j,parsedUrl:S,isDraftMode:b,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:_,clientReferenceManifest:P,serverActionsManifest:I}=v,q=(0,o.normalizeAppPath)(y),N=!!(A.dynamicRoutes[q]||A.routes[_]),U=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,S,!1):t.end("This page could not be found"),null);if(N&&!b){let e=!!A.routes[_],t=A.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await U();throw new x.NoFallbackError}}let O=null;!N||E.isDev||b||(O="/index"===(O=_)?"/":O);let D=!0===E.isDev||!N,H=N&&!D;I&&P&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:I});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>E.onRequestError(e,t,s,n,C)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>E.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let u=L.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),t}},c=await E.handleResponse({req:e,nextConfig:j,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:u,waitUntil:s.waitUntil,isMinimalMode:o});if(!N)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&N||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),N)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>k,"routeModule",()=>E,"serverHooks",()=>T,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>C],62518)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
1
+ module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18167,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/pro");break}catch{}n=!0}return s}e.s(["getPro",()=>a])},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function u(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...u(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>u,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},62518,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),w=e.i(65836),R=e.i(50837),j=e.i(18167);async function S(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>{await (0,w.ensureInitialized)();let{searchParams:t}=e.nextUrl,r=t.get("q");if(!r||r.trim().length<2)return y.NextResponse.json({results:[],query:r});let s=t.get("projectId")||void 0,n=parseInt(t.get("limit")||"20",10),a=parseInt(t.get("offset")||"0",10),i=(0,R.searchSessions)(r,{projectId:s,limit:n,offset:a});if("all"===t.get("nodes"))try{let{aggregateSearch:e}=(0,j.getPro)().network,t={};s&&(t.projectId=s),t.limit=String(n);let a=await e(i,r,t);return y.NextResponse.json({results:a.results,query:r,errors:a.errors})}catch{}return y.NextResponse.json({results:i,query:r})})}e.s(["GET",()=>S],73415);var b=e.i(73415);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/search/route",pathname:"/api/search",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/search/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:A,workUnitAsyncStorage:C,serverHooks:T}=E;function k(){return(0,s.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:C})}async function _(e,t,s){E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/search/route";y=y.replace(/\/index$/,"")||"/";let v=await E.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:j,parsedUrl:S,isDraftMode:b,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:_,clientReferenceManifest:P,serverActionsManifest:I}=v,q=(0,o.normalizeAppPath)(y),N=!!(A.dynamicRoutes[q]||A.routes[_]),U=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,S,!1):t.end("This page could not be found"),null);if(N&&!b){let e=!!A.routes[_],t=A.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await U();throw new x.NoFallbackError}}let O=null;!N||E.isDev||b||(O="/index"===(O=_)?"/":O);let D=!0===E.isDev||!N,H=N&&!D;I&&P&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:I});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>E.onRequestError(e,t,s,n,C)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>E.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let u=L.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),t}},c=await E.handleResponse({req:e,nextConfig:j,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:u,waitUntil:s.waitUntil,isMinimalMode:o});if(!N)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&N||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),N)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>k,"routeModule",()=>E,"serverHooks",()=>T,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>C],62518)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__8ffcf827._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function u(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...u(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>u,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.0",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},39979,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),w=e.i(65836),R=e.i(50837);async function b(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>{await (0,w.ensureInitialized)();let t=await e.json(),{sessionIds:r,action:s}=t;if(!Array.isArray(r)||0===r.length)return y.NextResponse.json({error:"No sessions selected"},{status:400});switch(s){case"tag":return(0,R.bulkAddTag)(r,t.tagName),y.NextResponse.json({success:!0,count:r.length});case"workspace":return(0,R.bulkAddToWorkspace)(r,t.workspaceId),y.NextResponse.json({success:!0,count:r.length});case"star":return(0,R.bulkStar)(r,!0),y.NextResponse.json({success:!0,count:r.length});case"unstar":return(0,R.bulkStar)(r,!1),y.NextResponse.json({success:!0,count:r.length});default:return y.NextResponse.json({error:"Unknown action"},{status:400})}})}e.s(["POST",()=>b],22670);var S=e.i(22670);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/bulk/route",pathname:"/api/bulk",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/bulk/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:A,workUnitAsyncStorage:E,serverHooks:k}=j;function C(){return(0,s.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:E})}async function T(e,t,s){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/bulk/route";y=y.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:b,parsedUrl:S,isDraftMode:A,prerenderManifest:E,routerServerContext:k,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:P}=v,U=(0,o.normalizeAppPath)(y),I=!!(E.dynamicRoutes[U]||E.routes[N]),O=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,S,!1):t.end("This page could not be found"),null);if(I&&!A){let e=!!E.routes[N],t=E.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await O();throw new x.NoFallbackError}}let D=null;!I||j.isDev||A||(D="/index"===(D=N)?"/":D);let q=!0===j.isDev||!I,H=I&&!q;P&&_&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:_,serverActionsManifest:P});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>j.onRequestError(e,t,s,n,k)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>j.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&C&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let u=L.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),t}},c=await j.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,responseGenerator:u,waitUntil:s.waitUntil,isMinimalMode:o});if(!I)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&I||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),I)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>k,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>E],39979)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
1
+ module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function u(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...u(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>u,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},39979,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(89171),v=e.i(79832),w=e.i(65836),R=e.i(50837);async function b(e){let t=(0,v.getAuthUser)(e);return(0,v.withUser)(t,async()=>{await (0,w.ensureInitialized)();let t=await e.json(),{sessionIds:r,action:s}=t;if(!Array.isArray(r)||0===r.length)return y.NextResponse.json({error:"No sessions selected"},{status:400});switch(s){case"tag":return(0,R.bulkAddTag)(r,t.tagName),y.NextResponse.json({success:!0,count:r.length});case"workspace":return(0,R.bulkAddToWorkspace)(r,t.workspaceId),y.NextResponse.json({success:!0,count:r.length});case"star":return(0,R.bulkStar)(r,!0),y.NextResponse.json({success:!0,count:r.length});case"unstar":return(0,R.bulkStar)(r,!1),y.NextResponse.json({success:!0,count:r.length});default:return y.NextResponse.json({error:"Unknown action"},{status:400})}})}e.s(["POST",()=>b],22670);var S=e.i(22670);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/bulk/route",pathname:"/api/bulk",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/bulk/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:A,workUnitAsyncStorage:E,serverHooks:k}=j;function C(){return(0,s.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:E})}async function T(e,t,s){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/bulk/route";y=y.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:b,parsedUrl:S,isDraftMode:A,prerenderManifest:E,routerServerContext:k,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:P}=v,U=(0,o.normalizeAppPath)(y),I=!!(E.dynamicRoutes[U]||E.routes[N]),O=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,S,!1):t.end("This page could not be found"),null);if(I&&!A){let e=!!E.routes[N],t=E.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await O();throw new x.NoFallbackError}}let D=null;!I||j.isDev||A||(D="/index"===(D=N)?"/":D);let q=!0===j.isDev||!I,H=I&&!q;P&&_&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:_,serverActionsManifest:P});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>j.onRequestError(e,t,s,n,k)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>j.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&C&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let u=L.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),t}},c=await j.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,responseGenerator:u,waitUntil:s.waitUntil,isMinimalMode:o});if(!I)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&I||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,k),I)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>C,"routeModule",()=>j,"serverHooks",()=>k,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>E],39979)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__9e343d64._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.0",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,a=!r;function s(){let s="0.0.0";try{s=e.r(4730).version}catch{}return{tier:t,version:s,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:a,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>s])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),n=e.i(17516);let a=new t.AsyncLocalStorage;function s(e){return n.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function o(e,t){return a.run(e,t)}function i(){let e=a.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>s,"getCurrentUser",()=>i,"withUser",()=>o])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},99280,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),h=e.i(70101),x=e.i(74838),g=e.i(10372),f=e.i(93695);e.i(52474);var v=e.i(220),m=e.i(33405),y=e.i(79832);async function R(t){(0,y.getAuthUser)(t);let{message:r,cwd:n}=await t.json();if(!r||"string"!=typeof r)return new Response(JSON.stringify({error:"Message is required"}),{status:400,headers:{"Content-Type":"application/json"}});let a=n||e.r(46786).homedir(),s=new TextEncoder;return new Response(new ReadableStream({start(e){let n={...process.env};delete n.CLAUDECODE;let o=(0,m.spawn)("claude",["-p",r,"--output-format","stream-json","--verbose"],{cwd:a,env:n}),i="";o.stdout.on("data",t=>{let r=(i+=t.toString()).split("\n");for(let t of(i=r.pop()||"",r))if(t.trim())try{let r=JSON.parse(t);e.enqueue(s.encode(`data: ${JSON.stringify(r)}
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,a=!r;function s(){let s="0.0.0";try{s=e.r(4730).version}catch{}return{tier:t,version:s,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:a,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>s])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),n=e.i(17516);let a=new t.AsyncLocalStorage;function s(e){return n.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function o(e,t){return a.run(e,t)}function i(){let e=a.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>s,"getCurrentUser",()=>i,"withUser",()=>o])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},99280,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),h=e.i(70101),x=e.i(74838),g=e.i(10372),f=e.i(93695);e.i(52474);var v=e.i(220),m=e.i(33405),y=e.i(79832);async function R(t){(0,y.getAuthUser)(t);let{message:r,cwd:n}=await t.json();if(!r||"string"!=typeof r)return new Response(JSON.stringify({error:"Message is required"}),{status:400,headers:{"Content-Type":"application/json"}});let a=n||e.r(46786).homedir(),s=new TextEncoder;return new Response(new ReadableStream({start(e){let n={...process.env};delete n.CLAUDECODE;let o=(0,m.spawn)("claude",["-p",r,"--output-format","stream-json","--verbose"],{cwd:a,env:n}),i="";o.stdout.on("data",t=>{let r=(i+=t.toString()).split("\n");for(let t of(i=r.pop()||"",r))if(t.trim())try{let r=JSON.parse(t);e.enqueue(s.encode(`data: ${JSON.stringify(r)}
2
2
 
3
3
  `))}catch{e.enqueue(s.encode(`data: ${JSON.stringify({type:"text",text:t})}
4
4