@jlongo78/agent-spaces 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +19 -19
- package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.html +1 -1
- package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.html +1 -1
- package/.next/standalone/.next/server/app/analytics.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js +2 -2
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk/route.js +2 -2
- package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js +2 -2
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/route.js +2 -2
- package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +2 -2
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/search/route.js +2 -2
- package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sync/route.js +3 -3
- package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tags/route.js +2 -2
- package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/projects.html +1 -1
- package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/sessions.html +1 -1
- package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/settings.html +1 -1
- package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/terminal.html +1 -1
- package/.next/standalone/.next/server/app/m/terminal.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.html +1 -1
- package/.next/standalone/.next/server/app/m.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.html +1 -1
- package/.next/standalone/.next/server/app/network.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.html +1 -1
- package/.next/standalone/.next/server/app/sessions.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.html +1 -1
- package/.next/standalone/.next/server/app/terminal.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.html +1 -1
- package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e742ef33._.js → [root-of-the-server]__0e4c2d35._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__130dee4b._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__142c2f41._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +148 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2861e096._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2d3d8d52._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__57b966d5._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5a0020ba._.js +106 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5bd0f118._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__64f5810e._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__74c48d65._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7d6610c4._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__84f3af14._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8765f2fc._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a2ee9884._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a6eb742d._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4c83e91._.js +114 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c546cf71._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cae0486f._.js +106 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d5615808._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d877df12._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f66ceeb8._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f84e3cf3._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f893957c._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fcd26315._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd505913._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__feff7b91._.js +98 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/_d73df637._.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/67c7bf5024309fca.css +3 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-linux-x64}/package.json +46 -39
- package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/.next/standalone/package.json +89 -89
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/tsconfig.json +34 -34
- package/LICENSE +661 -661
- package/README.md +131 -131
- package/bin/fix-standalone-externals.js +79 -79
- package/bin/lib/auto-setup.js +101 -101
- package/bin/mdns-service.js +171 -171
- package/bin/postinstall.js +35 -35
- package/bin/setup-admin.js +189 -189
- package/bin/spaces-dev.js +208 -208
- package/bin/spaces-install.js +483 -451
- package/bin/spaces-setup.js +247 -242
- package/bin/spaces.js +465 -465
- package/bin/terminal-server.js +1117 -1117
- package/package.json +89 -89
- package/.next/standalone/.claude/settings.local.json +0 -11
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__086be15a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__20353b76._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b6758fc._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2e9d1d5a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__34c34116._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3ce30e4e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__43112c34._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__47a63195._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__60689e2b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__83b9bcf3._.js +0 -11
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__89124c96._.js +0 -243
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c2eee30._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8ffcf827._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e343d64._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a651ede9._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4b692df._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4edb4d6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b71497ab._.js +0 -243
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bef2ed87._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c525457e._.js +0 -19
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccc27199._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ce5edd98._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dd2e81be._.js +0 -11
- package/.next/standalone/.next/static/chunks/ff5fac1bd7b518dd.css +0 -3
- package/.next/standalone/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64.node +0 -0
- /package/.next/standalone/.next/static/{O6DdjswRa9GKIUCn6RwBy → nbYSIjUtkSwSvTgyR5p00}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{O6DdjswRa9GKIUCn6RwBy → nbYSIjUtkSwSvTgyR5p00}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{O6DdjswRa9GKIUCn6RwBy → nbYSIjUtkSwSvTgyR5p00}/_ssgManifest.js +0 -0
- /package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-libvips-linux-x64}/versions.json +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
module.exports=[24725,(e,t,s)=>{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),s=e.i(14747);let r=null,a=!1;function n(){if(!a){for(let e of function(){let e=[s.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(s.default.delimiter))t&&e.push(s.default.join(t,"_anchor.js"));return e}())try{r=(0,t.createRequire)(e)("@spaces/pro");break}catch{}a=!0}return r}e.s(["getPro",()=>n])},22734,(e,t,s)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,s)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),s=e.i(22734),r=e.i(46786),a=e.i(54799),n=e.i(17516),i=e.i(99944);function o(e){let s=e;if(n.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(s=t.admin.resolveShellUser(e))}catch{}let a=s===r.default.userInfo().username?r.default.homedir():`/home/${s}`,o=s===r.default.userInfo().username?t.default.join(r.default.homedir(),".spaces"):t.default.join(r.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(a,".claude"),claudeProjectsDir:t.default.join(a,".claude","projects"),statsPath:t.default.join(a,".claude","stats-cache.json"),codexDir:t.default.join(a,".codex"),codexSessionsDir:t.default.join(a,".codex","sessions"),geminiDir:t.default.join(a,".gemini"),geminiChatsBaseDir:t.default.join(a,".gemini","tmp"),geminiProjectsRegistry:t.default.join(a,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function d(e){let{spacesDir:t}=o(e);s.default.existsSync(t)||s.default.mkdirSync(t,{recursive:!0})}function c(e){let{configPath:t,spacesDir:r}=o(e);try{if(s.default.existsSync(t)){let e=JSON.parse(s.default.readFileSync(t,"utf-8"));return{installId:e.installId||a.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}s.default.existsSync(r)||s.default.mkdirSync(r,{recursive:!0});let n={installId:a.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return s.default.writeFileSync(t,JSON.stringify(n,null,2)),n}function l(e,t){let r={...c(e),...t},{configPath:a}=o(e);return s.default.writeFileSync(a,JSON.stringify(r,null,2)),r}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>d,"getUserPaths",()=>o,"readConfig",()=>c,"writeConfig",()=>l])},10430,(e,t,s)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),s=e.i(46786),r=e.i(17516);let a=new t.AsyncLocalStorage;function n(e){return r.HAS_AUTH&&e.headers.get("x-auth-user")||s.default.userInfo().username}function i(e,t){return a.run(e,t)}function o(){let e=a.getStore();return e||s.default.userInfo().username}e.s(["getAuthUser",()=>n,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,s)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,s)=>{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,s)=>{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,s)=>{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,s)=>{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,s)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),s=e.i(14747);let r=null,a=!1;function n(){if(!a){for(let e of function(){let e=[s.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(s.default.delimiter))t&&e.push(s.default.join(t,"_anchor.js"));return e}())try{r=(0,t.createRequire)(e)("@spaces/teams");break}catch{}a=!0}return r}function i(){return null!==n()}e.s(["getTeams",()=>n,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.3",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"),s="team"===t||"federation"===t,r="federation"===t,a=!s;function n(){let n="0.0.0";try{n=e.r(4730).version}catch{}return{tier:t,version:n,hasAuth:s,hasAdmin:s,hasCollaboration:s,hasNetwork:r,hasMultiuser:s,isDesktop:a,basePath:""}}e.s(["HAS_AUTH",0,s,"HAS_MULTIUSER",0,s,"getTierFlags",()=>n])},46786,(e,t,s)=>{t.exports=e.x("os",()=>require("os"))},85148,(e,t,s)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},7304,e=>{"use strict";var t=e.i(85148),s=e.i(15286),r=e.i(79832);let a=new Map;function n(){let n=(0,r.getCurrentUser)(),i=a.get(n);if(i)return i;(0,s.ensureUserSpacesDir)(n);let{dbPath:o}=(0,s.getUserPaths)(n),d=new t.default(o);return d.pragma("journal_mode = WAL"),d.pragma("synchronous = NORMAL"),d.pragma("foreign_keys = ON"),function(t){let s;t.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
name TEXT NOT NULL,
|
|
5
|
+
path TEXT NOT NULL,
|
|
6
|
+
claude_path TEXT NOT NULL,
|
|
7
|
+
session_count INTEGER DEFAULT 0,
|
|
8
|
+
last_activity TEXT
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
12
|
+
id TEXT PRIMARY KEY,
|
|
13
|
+
session_id TEXT NOT NULL,
|
|
14
|
+
project_id TEXT NOT NULL,
|
|
15
|
+
first_prompt TEXT,
|
|
16
|
+
summary TEXT,
|
|
17
|
+
message_count INTEGER DEFAULT 0,
|
|
18
|
+
created TEXT,
|
|
19
|
+
modified TEXT,
|
|
20
|
+
git_branch TEXT,
|
|
21
|
+
project_path TEXT,
|
|
22
|
+
full_path TEXT NOT NULL,
|
|
23
|
+
starred INTEGER DEFAULT 0,
|
|
24
|
+
custom_name TEXT,
|
|
25
|
+
notes TEXT,
|
|
26
|
+
FOREIGN KEY (project_id) REFERENCES projects(id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_created ON sessions(created);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_modified ON sessions(modified);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_starred ON sessions(starred);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
35
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
36
|
+
name TEXT NOT NULL,
|
|
37
|
+
description TEXT DEFAULT '',
|
|
38
|
+
color TEXT DEFAULT '#6366f1',
|
|
39
|
+
created TEXT DEFAULT (datetime('now'))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS workspace_sessions (
|
|
43
|
+
workspace_id INTEGER NOT NULL,
|
|
44
|
+
session_id TEXT NOT NULL,
|
|
45
|
+
PRIMARY KEY (workspace_id, session_id),
|
|
46
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
47
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
51
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
|
+
name TEXT NOT NULL UNIQUE,
|
|
53
|
+
color TEXT DEFAULT '#8b5cf6'
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS session_tags (
|
|
57
|
+
session_id TEXT NOT NULL,
|
|
58
|
+
tag_id INTEGER NOT NULL,
|
|
59
|
+
PRIMARY KEY (session_id, tag_id),
|
|
60
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
61
|
+
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS sync_state (
|
|
65
|
+
file_path TEXT PRIMARY KEY,
|
|
66
|
+
mtime INTEGER,
|
|
67
|
+
byte_offset INTEGER DEFAULT 0,
|
|
68
|
+
last_synced TEXT DEFAULT (datetime('now'))
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS panes (
|
|
72
|
+
id TEXT PRIMARY KEY,
|
|
73
|
+
title TEXT NOT NULL DEFAULT 'Terminal',
|
|
74
|
+
color TEXT NOT NULL DEFAULT '#6366f1',
|
|
75
|
+
cwd TEXT NOT NULL,
|
|
76
|
+
claude_session_id TEXT,
|
|
77
|
+
grid_col INTEGER NOT NULL DEFAULT 0,
|
|
78
|
+
grid_row INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
shell TEXT,
|
|
81
|
+
created TEXT DEFAULT (datetime('now'))
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS totp (
|
|
85
|
+
username TEXT PRIMARY KEY,
|
|
86
|
+
secret TEXT NOT NULL,
|
|
87
|
+
enabled INTEGER DEFAULT 0,
|
|
88
|
+
created TEXT DEFAULT (datetime('now'))
|
|
89
|
+
);
|
|
90
|
+
`);let r=(e,s,r)=>{try{t.exec(`ALTER TABLE ${e} ADD COLUMN ${s} ${r}`)}catch{}};r("workspaces","is_active","INTEGER DEFAULT 0"),r("workspaces","updated","TEXT"),r("panes","workspace_id","INTEGER"),r("panes","is_popout","INTEGER DEFAULT 0"),r("panes","win_x","INTEGER"),r("panes","win_y","INTEGER"),r("panes","win_width","INTEGER DEFAULT 800"),r("panes","win_height","INTEGER DEFAULT 600"),r("panes","agent_type","TEXT DEFAULT 'shell'"),r("panes","custom_command","TEXT"),r("panes","node_id","TEXT"),r("sessions","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_path","TEXT");try{t.exec("UPDATE projects SET agent_path = claude_path WHERE agent_path IS NULL AND claude_path IS NOT NULL")}catch{}r("workspaces","collaboration","INTEGER DEFAULT 0"),r("panes","is_collaborating","INTEGER DEFAULT 0");try{t.exec("CREATE INDEX IF NOT EXISTS idx_sessions_agent_type ON sessions(agent_type)")}catch{}try{t.exec("CREATE INDEX IF NOT EXISTS idx_projects_agent_type ON projects(agent_type)")}catch{}let a=t.prepare("SELECT id FROM workspaces WHERE name = 'Default'").get();a?(s=a.id,t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()||t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(s)):s=Number(t.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES ('Default', 'Default workspace', '#6366f1', 1)").run().lastInsertRowid);let n=t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();n&&t.prepare("UPDATE panes SET workspace_id = ? WHERE workspace_id IS NULL").run(n.id);try{t.exec(`
|
|
91
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
|
|
92
|
+
session_id,
|
|
93
|
+
content,
|
|
94
|
+
content_rowid='rowid'
|
|
95
|
+
);
|
|
96
|
+
`)}catch{}try{let{getTeams:s}=e.r(99944),r=s();r&&r.db.runMigrations(t)}catch{}}(d),a.set(n,d),d}e.s(["getDb",()=>n])},65836,e=>{"use strict";var t=e.i(7304),s=e.i(60569),r=e.i(79832),a=e.i(99944);let n=new Set,i=new Set,o=!1;async function d(){let d=(0,r.getCurrentUser)();if(!n.has(d)){if((0,t.getDb)(),n.add(d),!o){o=!0;let s=(0,a.getTeams)();if(s){let{sseManager:r}=await e.A(72354);s.init({getDb:t.getDb,sseManager:r})}}if(!i.has(d)){i.add(d);try{let e=await (0,s.fullSync)();console.log(`[spaces:${d}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,s.enrichMissingSessions)();t>0&&console.log(`[spaces:${d}] Enriched ${t} sessions from JSONL`),(0,s.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${d}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${d}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${d}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${d}] Sync error:`,e)}finally{i.delete(d)}}}}e.s(["ensureInitialized",()=>d])},86100,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),a=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),d=e.i(16795),c=e.i(87718),l=e.i(95169),u=e.i(47587),p=e.i(66012),E=e.i(70101),T=e.i(74838),f=e.i(10372),g=e.i(93695);e.i(52474);var h=e.i(220),N=e.i(89171),R=e.i(79832),m=e.i(65836),A=e.i(50837),I=e.i(18167);async function _(e){let t=(0,R.getAuthUser)(e);return(0,R.withUser)(t,async()=>{await (0,m.ensureInitialized)();let{searchParams:t}=e.nextUrl,s={projectId:t.get("projectId")||void 0,projectPath:t.get("projectPath")||void 0,starred:t.has("starred")?"true"===t.get("starred"):void 0,tagId:t.has("tagId")?parseInt(t.get("tagId"),10):void 0,search:t.get("search")||void 0,agentType:t.get("agentType")||void 0,sortBy:t.get("sortBy")||"modified",sortDir:t.get("sortDir")||"DESC",offset:parseInt(t.get("offset")||"0",10),limit:parseInt(t.get("limit")||"50",10)},r=(0,A.getSessions)(s);if("all"===(t.get("nodes")||"").replace(/\/+$/,""))try{let{aggregateSessions:e}=(0,I.getPro)().network,t={};s.search&&(t.search=s.search),t.sortBy=s.sortBy,t.sortDir=s.sortDir,t.limit=String(s.limit);let a=await e(r,t);for(let e of a.sessions)e.nodeId&&(e.workspaces=(0,A.getWorkspacesForSession)(e.id),e.tags||(e.tags=[]));return N.NextResponse.json({sessions:a.sessions,total:a.total,errors:a.errors})}catch{}return N.NextResponse.json(r)})}e.s(["GET",()=>_],72626);var x=e.i(72626);let S=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/sessions/route",pathname:"/api/sessions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/route.ts",nextConfigOutput:"standalone",userland:x}),{workAsyncStorage:y,workUnitAsyncStorage:L,serverHooks:w}=S;function v(){return(0,r.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:L})}async function U(e,t,r){S.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let N="/api/sessions/route";N=N.replace(/\/index$/,"")||"/";let R=await S.prepare(e,t,{srcPage:N,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:m,params:A,nextConfig:I,parsedUrl:_,isDraftMode:x,prerenderManifest:y,routerServerContext:L,isOnDemandRevalidate:w,revalidateOnlyGenerated:v,resolvedPathname:U,clientReferenceManifest:O,serverActionsManifest:D}=R,C=(0,o.normalizeAppPath)(N),j=!!(y.dynamicRoutes[C]||y.routes[U]),b=async()=>((null==L?void 0:L.render404)?await L.render404(e,t,_,!1):t.end("This page could not be found"),null);if(j&&!x){let e=!!y.routes[U],t=y.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await b();throw new g.NoFallbackError}}let F=null;!j||S.isDev||x||(F="/index"===(F=U)?"/":F);let X=!0===S.isDev||!j,k=j&&!X;D&&O&&(0,i.setManifestsSingleton)({page:N,clientReferenceManifest:O,serverActionsManifest:D});let P=e.method||"GET",q=(0,n.getTracer)(),G=q.getActiveScopeSpan(),M={params:A,prerenderManifest:y,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:X,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,a)=>S.onRequestError(e,t,r,a,L)},sharedContext:{buildId:m}},H=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(H,(0,c.signalFromNodeResponse)(t));try{let i=async e=>S.handle(B,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=q.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${P} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${P} ${N}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),d=async a=>{var n,d;let c=async({previousCacheEntry:s})=>{try{if(!o&&w&&v&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(a);e.fetchMetrics=M.renderOpts.fetchMetrics;let d=M.renderOpts.pendingWaitUntil;d&&r.waitUntil&&(r.waitUntil(d),d=void 0);let c=M.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(H,$,n,M.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,E.toNodeOutgoingHttpHeaders)(n.headers);c&&(t[f.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,r=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:w})},!1,L),t}},l=await S.handleResponse({req:e,nextConfig:I,cacheKey:F,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:w,revalidateOnlyGenerated:v,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:o});if(!j)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",w?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,E.fromNodeOutgoingHttpHeaders)(l.value.headers);return o&&j||g.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,T.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(H,$,new Response(l.value.body,{headers:g,status:l.value.status||200})),null};G?await d(G):await q.withPropagatedContext(e.headers,()=>q.trace(l.BaseServerSpan.handleRequest,{spanName:`${P} ${N}`,kind:n.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},d))}catch(t){if(t instanceof g.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:w})},!1,L),j)throw t;return await (0,p.sendResponse)(H,$,new Response(null,{status:500})),null}}e.s(["handler",()=>U,"patchFetch",()=>v,"routeModule",()=>S,"serverHooks",()=>w,"workAsyncStorage",()=>y,"workUnitAsyncStorage",()=>L],86100)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__64f5810e._.js.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
module.exports=[24725,(e,t,s)=>{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,s)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,s)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),s=e.i(22734),r=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let s=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(s=t.admin.resolveShellUser(e))}catch{}let n=s===r.default.userInfo().username?r.default.homedir():`/home/${s}`,o=s===r.default.userInfo().username?t.default.join(r.default.homedir(),".spaces"):t.default.join(r.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 d(e){let{spacesDir:t}=o(e);s.default.existsSync(t)||s.default.mkdirSync(t,{recursive:!0})}function c(e){let{configPath:t,spacesDir:r}=o(e);try{if(s.default.existsSync(t)){let e=JSON.parse(s.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{}s.default.existsSync(r)||s.default.mkdirSync(r,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return s.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function l(e,t){let r={...c(e),...t},{configPath:n}=o(e);return s.default.writeFileSync(n,JSON.stringify(r,null,2)),r}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>d,"getUserPaths",()=>o,"readConfig",()=>c,"writeConfig",()=>l])},10430,(e,t,s)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),s=e.i(46786),r=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return r.HAS_AUTH&&e.headers.get("x-auth-user")||s.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||s.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,s)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,s)=>{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,s)=>{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,s)=>{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,s)=>{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,s)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),s=e.i(14747);let r=null,n=!1;function a(){if(!n){for(let e of function(){let e=[s.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(s.default.delimiter))t&&e.push(s.default.join(t,"_anchor.js"));return e}())try{r=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return r}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.3",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"),s="team"===t||"federation"===t,r="federation"===t,n=!s;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:s,hasAdmin:s,hasCollaboration:s,hasNetwork:r,hasMultiuser:s,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,s,"HAS_MULTIUSER",0,s,"getTierFlags",()=>a])},46786,(e,t,s)=>{t.exports=e.x("os",()=>require("os"))},85148,(e,t,s)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},7304,e=>{"use strict";var t=e.i(85148),s=e.i(15286),r=e.i(79832);let n=new Map;function a(){let a=(0,r.getCurrentUser)(),i=n.get(a);if(i)return i;(0,s.ensureUserSpacesDir)(a);let{dbPath:o}=(0,s.getUserPaths)(a),d=new t.default(o);return d.pragma("journal_mode = WAL"),d.pragma("synchronous = NORMAL"),d.pragma("foreign_keys = ON"),function(t){let s;t.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
name TEXT NOT NULL,
|
|
5
|
+
path TEXT NOT NULL,
|
|
6
|
+
claude_path TEXT NOT NULL,
|
|
7
|
+
session_count INTEGER DEFAULT 0,
|
|
8
|
+
last_activity TEXT
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
12
|
+
id TEXT PRIMARY KEY,
|
|
13
|
+
session_id TEXT NOT NULL,
|
|
14
|
+
project_id TEXT NOT NULL,
|
|
15
|
+
first_prompt TEXT,
|
|
16
|
+
summary TEXT,
|
|
17
|
+
message_count INTEGER DEFAULT 0,
|
|
18
|
+
created TEXT,
|
|
19
|
+
modified TEXT,
|
|
20
|
+
git_branch TEXT,
|
|
21
|
+
project_path TEXT,
|
|
22
|
+
full_path TEXT NOT NULL,
|
|
23
|
+
starred INTEGER DEFAULT 0,
|
|
24
|
+
custom_name TEXT,
|
|
25
|
+
notes TEXT,
|
|
26
|
+
FOREIGN KEY (project_id) REFERENCES projects(id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_created ON sessions(created);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_modified ON sessions(modified);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_starred ON sessions(starred);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
35
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
36
|
+
name TEXT NOT NULL,
|
|
37
|
+
description TEXT DEFAULT '',
|
|
38
|
+
color TEXT DEFAULT '#6366f1',
|
|
39
|
+
created TEXT DEFAULT (datetime('now'))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS workspace_sessions (
|
|
43
|
+
workspace_id INTEGER NOT NULL,
|
|
44
|
+
session_id TEXT NOT NULL,
|
|
45
|
+
PRIMARY KEY (workspace_id, session_id),
|
|
46
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
47
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
51
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
|
+
name TEXT NOT NULL UNIQUE,
|
|
53
|
+
color TEXT DEFAULT '#8b5cf6'
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS session_tags (
|
|
57
|
+
session_id TEXT NOT NULL,
|
|
58
|
+
tag_id INTEGER NOT NULL,
|
|
59
|
+
PRIMARY KEY (session_id, tag_id),
|
|
60
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
61
|
+
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS sync_state (
|
|
65
|
+
file_path TEXT PRIMARY KEY,
|
|
66
|
+
mtime INTEGER,
|
|
67
|
+
byte_offset INTEGER DEFAULT 0,
|
|
68
|
+
last_synced TEXT DEFAULT (datetime('now'))
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS panes (
|
|
72
|
+
id TEXT PRIMARY KEY,
|
|
73
|
+
title TEXT NOT NULL DEFAULT 'Terminal',
|
|
74
|
+
color TEXT NOT NULL DEFAULT '#6366f1',
|
|
75
|
+
cwd TEXT NOT NULL,
|
|
76
|
+
claude_session_id TEXT,
|
|
77
|
+
grid_col INTEGER NOT NULL DEFAULT 0,
|
|
78
|
+
grid_row INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
shell TEXT,
|
|
81
|
+
created TEXT DEFAULT (datetime('now'))
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS totp (
|
|
85
|
+
username TEXT PRIMARY KEY,
|
|
86
|
+
secret TEXT NOT NULL,
|
|
87
|
+
enabled INTEGER DEFAULT 0,
|
|
88
|
+
created TEXT DEFAULT (datetime('now'))
|
|
89
|
+
);
|
|
90
|
+
`);let r=(e,s,r)=>{try{t.exec(`ALTER TABLE ${e} ADD COLUMN ${s} ${r}`)}catch{}};r("workspaces","is_active","INTEGER DEFAULT 0"),r("workspaces","updated","TEXT"),r("panes","workspace_id","INTEGER"),r("panes","is_popout","INTEGER DEFAULT 0"),r("panes","win_x","INTEGER"),r("panes","win_y","INTEGER"),r("panes","win_width","INTEGER DEFAULT 800"),r("panes","win_height","INTEGER DEFAULT 600"),r("panes","agent_type","TEXT DEFAULT 'shell'"),r("panes","custom_command","TEXT"),r("panes","node_id","TEXT"),r("sessions","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_path","TEXT");try{t.exec("UPDATE projects SET agent_path = claude_path WHERE agent_path IS NULL AND claude_path IS NOT NULL")}catch{}r("workspaces","collaboration","INTEGER DEFAULT 0"),r("panes","is_collaborating","INTEGER DEFAULT 0");try{t.exec("CREATE INDEX IF NOT EXISTS idx_sessions_agent_type ON sessions(agent_type)")}catch{}try{t.exec("CREATE INDEX IF NOT EXISTS idx_projects_agent_type ON projects(agent_type)")}catch{}let n=t.prepare("SELECT id FROM workspaces WHERE name = 'Default'").get();n?(s=n.id,t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()||t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(s)):s=Number(t.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES ('Default', 'Default workspace', '#6366f1', 1)").run().lastInsertRowid);let a=t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();a&&t.prepare("UPDATE panes SET workspace_id = ? WHERE workspace_id IS NULL").run(a.id);try{t.exec(`
|
|
91
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
|
|
92
|
+
session_id,
|
|
93
|
+
content,
|
|
94
|
+
content_rowid='rowid'
|
|
95
|
+
);
|
|
96
|
+
`)}catch{}try{let{getTeams:s}=e.r(99944),r=s();r&&r.db.runMigrations(t)}catch{}}(d),n.set(a,d),d}e.s(["getDb",()=>a])},65836,e=>{"use strict";var t=e.i(7304),s=e.i(60569),r=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function d(){let d=(0,r.getCurrentUser)();if(!a.has(d)){if((0,t.getDb)(),a.add(d),!o){o=!0;let s=(0,n.getTeams)();if(s){let{sseManager:r}=await e.A(72354);s.init({getDb:t.getDb,sseManager:r})}}if(!i.has(d)){i.add(d);try{let e=await (0,s.fullSync)();console.log(`[spaces:${d}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,s.enrichMissingSessions)();t>0&&console.log(`[spaces:${d}] Enriched ${t} sessions from JSONL`),(0,s.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${d}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${d}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${d}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${d}] Sync error:`,e)}finally{i.delete(d)}}}}e.s(["ensureInitialized",()=>d])},66009,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),d=e.i(16795),c=e.i(87718),l=e.i(95169),u=e.i(47587),E=e.i(66012),p=e.i(70101),T=e.i(74838),f=e.i(10372),N=e.i(93695);e.i(52474);var h=e.i(220),R=e.i(89171),g=e.i(79832),m=e.i(65836),A=e.i(50837);async function I(e){let t=(0,g.getAuthUser)(e);return(0,g.withUser)(t,async()=>(await (0,m.ensureInitialized)(),R.NextResponse.json((0,A.getActivePanes)())))}async function x(t){let s=(0,g.getAuthUser)(t);return(0,g.withUser)(s,async()=>{await (0,m.ensureInitialized)();let s=await t.json(),r=(0,A.createPane)({id:s.id||crypto.randomUUID(),title:s.title||"Terminal",color:s.color||"#6366f1",cwd:s.cwd||e.r(46786).homedir(),claudeSessionId:s.claudeSessionId,agentType:s.agentType||"shell",customCommand:s.customCommand,sortOrder:s.sortOrder,workspaceId:s.workspaceId,nodeId:s.nodeId,isCollaborating:s.isCollaborating});return R.NextResponse.json(r)})}e.s(["GET",()=>I,"POST",()=>x],23756);var _=e.i(23756);let S=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/panes/route",pathname:"/api/panes",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/panes/route.ts",nextConfigOutput:"standalone",userland:_}),{workAsyncStorage:y,workUnitAsyncStorage:w,serverHooks:L}=S;function U(){return(0,r.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:w})}async function O(e,t,r){S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/panes/route";R=R.replace(/\/index$/,"")||"/";let g=await S.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:m,params:A,nextConfig:I,parsedUrl:x,isDraftMode:_,prerenderManifest:y,routerServerContext:w,isOnDemandRevalidate:L,revalidateOnlyGenerated:U,resolvedPathname:O,clientReferenceManifest:v,serverActionsManifest:C}=g,D=(0,o.normalizeAppPath)(R),b=!!(y.dynamicRoutes[D]||y.routes[O]),F=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,x,!1):t.end("This page could not be found"),null);if(b&&!_){let e=!!y.routes[O],t=y.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await F();throw new N.NoFallbackError}}let X=null;!b||S.isDev||_||(X="/index"===(X=O)?"/":X);let j=!0===S.isDev||!b,k=b&&!j;C&&v&&(0,i.setManifestsSingleton)({page:R,clientReferenceManifest:v,serverActionsManifest:C});let P=e.method||"GET",q=(0,a.getTracer)(),G=q.getActiveScopeSpan(),M={params:A,prerenderManifest:y,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,n)=>S.onRequestError(e,t,r,n,w)},sharedContext:{buildId:m}},H=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),Y=c.NextRequestAdapter.fromNodeNextRequest(H,(0,c.signalFromNodeResponse)(t));try{let i=async e=>S.handle(Y,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=q.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${P} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${P} ${R}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),d=async n=>{var a,d;let c=async({previousCacheEntry:s})=>{try{if(!o&&L&&U&&!s)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=M.renderOpts.fetchMetrics;let d=M.renderOpts.pendingWaitUntil;d&&r.waitUntil&&(r.waitUntil(d),d=void 0);let c=M.renderOpts.collectedTags;if(!b)return await (0,E.sendResponse)(H,$,a,M.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[f.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,r=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:L})},!1,w),t}},l=await S.handleResponse({req:e,nextConfig:I,cacheKey:X,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:L,revalidateOnlyGenerated:U,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:o});if(!b)return null;if((null==l||null==(a=l.value)?void 0:a.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",L?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let N=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return o&&b||N.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||N.get("Cache-Control")||N.set("Cache-Control",(0,T.getCacheControlHeader)(l.cacheControl)),await (0,E.sendResponse)(H,$,new Response(l.value.body,{headers:N,status:l.value.status||200})),null};G?await d(G):await q.withPropagatedContext(e.headers,()=>q.trace(l.BaseServerSpan.handleRequest,{spanName:`${P} ${R}`,kind:a.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},d))}catch(t){if(t instanceof N.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:L})},!1,w),b)throw t;return await (0,E.sendResponse)(H,$,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>U,"routeModule",()=>S,"serverHooks",()=>L,"workAsyncStorage",()=>y,"workUnitAsyncStorage",()=>w],66009)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__74c48d65._.js.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
module.exports=[24725,(e,t,s)=>{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,s)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,s)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),s=e.i(22734),r=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let s=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(s=t.admin.resolveShellUser(e))}catch{}let n=s===r.default.userInfo().username?r.default.homedir():`/home/${s}`,o=s===r.default.userInfo().username?t.default.join(r.default.homedir(),".spaces"):t.default.join(r.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 d(e){let{spacesDir:t}=o(e);s.default.existsSync(t)||s.default.mkdirSync(t,{recursive:!0})}function l(e){let{configPath:t,spacesDir:r}=o(e);try{if(s.default.existsSync(t)){let e=JSON.parse(s.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{}s.default.existsSync(r)||s.default.mkdirSync(r,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return s.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let r={...l(e),...t},{configPath:n}=o(e);return s.default.writeFileSync(n,JSON.stringify(r,null,2)),r}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>d,"getUserPaths",()=>o,"readConfig",()=>l,"writeConfig",()=>c])},10430,(e,t,s)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),s=e.i(46786),r=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return r.HAS_AUTH&&e.headers.get("x-auth-user")||s.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||s.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,s)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,s)=>{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,s)=>{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,s)=>{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,s)=>{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,s)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),s=e.i(14747);let r=null,n=!1;function a(){if(!n){for(let e of function(){let e=[s.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(s.default.delimiter))t&&e.push(s.default.join(t,"_anchor.js"));return e}())try{r=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return r}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.3",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"),s="team"===t||"federation"===t,r="federation"===t,n=!s;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:s,hasAdmin:s,hasCollaboration:s,hasNetwork:r,hasMultiuser:s,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,s,"HAS_MULTIUSER",0,s,"getTierFlags",()=>a])},46786,(e,t,s)=>{t.exports=e.x("os",()=>require("os"))},85148,(e,t,s)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},7304,e=>{"use strict";var t=e.i(85148),s=e.i(15286),r=e.i(79832);let n=new Map;function a(){let a=(0,r.getCurrentUser)(),i=n.get(a);if(i)return i;(0,s.ensureUserSpacesDir)(a);let{dbPath:o}=(0,s.getUserPaths)(a),d=new t.default(o);return d.pragma("journal_mode = WAL"),d.pragma("synchronous = NORMAL"),d.pragma("foreign_keys = ON"),function(t){let s;t.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
name TEXT NOT NULL,
|
|
5
|
+
path TEXT NOT NULL,
|
|
6
|
+
claude_path TEXT NOT NULL,
|
|
7
|
+
session_count INTEGER DEFAULT 0,
|
|
8
|
+
last_activity TEXT
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
12
|
+
id TEXT PRIMARY KEY,
|
|
13
|
+
session_id TEXT NOT NULL,
|
|
14
|
+
project_id TEXT NOT NULL,
|
|
15
|
+
first_prompt TEXT,
|
|
16
|
+
summary TEXT,
|
|
17
|
+
message_count INTEGER DEFAULT 0,
|
|
18
|
+
created TEXT,
|
|
19
|
+
modified TEXT,
|
|
20
|
+
git_branch TEXT,
|
|
21
|
+
project_path TEXT,
|
|
22
|
+
full_path TEXT NOT NULL,
|
|
23
|
+
starred INTEGER DEFAULT 0,
|
|
24
|
+
custom_name TEXT,
|
|
25
|
+
notes TEXT,
|
|
26
|
+
FOREIGN KEY (project_id) REFERENCES projects(id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_created ON sessions(created);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_modified ON sessions(modified);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_starred ON sessions(starred);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
35
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
36
|
+
name TEXT NOT NULL,
|
|
37
|
+
description TEXT DEFAULT '',
|
|
38
|
+
color TEXT DEFAULT '#6366f1',
|
|
39
|
+
created TEXT DEFAULT (datetime('now'))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS workspace_sessions (
|
|
43
|
+
workspace_id INTEGER NOT NULL,
|
|
44
|
+
session_id TEXT NOT NULL,
|
|
45
|
+
PRIMARY KEY (workspace_id, session_id),
|
|
46
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
47
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
51
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
|
+
name TEXT NOT NULL UNIQUE,
|
|
53
|
+
color TEXT DEFAULT '#8b5cf6'
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS session_tags (
|
|
57
|
+
session_id TEXT NOT NULL,
|
|
58
|
+
tag_id INTEGER NOT NULL,
|
|
59
|
+
PRIMARY KEY (session_id, tag_id),
|
|
60
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
61
|
+
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS sync_state (
|
|
65
|
+
file_path TEXT PRIMARY KEY,
|
|
66
|
+
mtime INTEGER,
|
|
67
|
+
byte_offset INTEGER DEFAULT 0,
|
|
68
|
+
last_synced TEXT DEFAULT (datetime('now'))
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS panes (
|
|
72
|
+
id TEXT PRIMARY KEY,
|
|
73
|
+
title TEXT NOT NULL DEFAULT 'Terminal',
|
|
74
|
+
color TEXT NOT NULL DEFAULT '#6366f1',
|
|
75
|
+
cwd TEXT NOT NULL,
|
|
76
|
+
claude_session_id TEXT,
|
|
77
|
+
grid_col INTEGER NOT NULL DEFAULT 0,
|
|
78
|
+
grid_row INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
shell TEXT,
|
|
81
|
+
created TEXT DEFAULT (datetime('now'))
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS totp (
|
|
85
|
+
username TEXT PRIMARY KEY,
|
|
86
|
+
secret TEXT NOT NULL,
|
|
87
|
+
enabled INTEGER DEFAULT 0,
|
|
88
|
+
created TEXT DEFAULT (datetime('now'))
|
|
89
|
+
);
|
|
90
|
+
`);let r=(e,s,r)=>{try{t.exec(`ALTER TABLE ${e} ADD COLUMN ${s} ${r}`)}catch{}};r("workspaces","is_active","INTEGER DEFAULT 0"),r("workspaces","updated","TEXT"),r("panes","workspace_id","INTEGER"),r("panes","is_popout","INTEGER DEFAULT 0"),r("panes","win_x","INTEGER"),r("panes","win_y","INTEGER"),r("panes","win_width","INTEGER DEFAULT 800"),r("panes","win_height","INTEGER DEFAULT 600"),r("panes","agent_type","TEXT DEFAULT 'shell'"),r("panes","custom_command","TEXT"),r("panes","node_id","TEXT"),r("sessions","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_path","TEXT");try{t.exec("UPDATE projects SET agent_path = claude_path WHERE agent_path IS NULL AND claude_path IS NOT NULL")}catch{}r("workspaces","collaboration","INTEGER DEFAULT 0"),r("panes","is_collaborating","INTEGER DEFAULT 0");try{t.exec("CREATE INDEX IF NOT EXISTS idx_sessions_agent_type ON sessions(agent_type)")}catch{}try{t.exec("CREATE INDEX IF NOT EXISTS idx_projects_agent_type ON projects(agent_type)")}catch{}let n=t.prepare("SELECT id FROM workspaces WHERE name = 'Default'").get();n?(s=n.id,t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()||t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(s)):s=Number(t.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES ('Default', 'Default workspace', '#6366f1', 1)").run().lastInsertRowid);let a=t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();a&&t.prepare("UPDATE panes SET workspace_id = ? WHERE workspace_id IS NULL").run(a.id);try{t.exec(`
|
|
91
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
|
|
92
|
+
session_id,
|
|
93
|
+
content,
|
|
94
|
+
content_rowid='rowid'
|
|
95
|
+
);
|
|
96
|
+
`)}catch{}try{let{getTeams:s}=e.r(99944),r=s();r&&r.db.runMigrations(t)}catch{}}(d),n.set(a,d),d}e.s(["getDb",()=>a])},65836,e=>{"use strict";var t=e.i(7304),s=e.i(60569),r=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function d(){let d=(0,r.getCurrentUser)();if(!a.has(d)){if((0,t.getDb)(),a.add(d),!o){o=!0;let s=(0,n.getTeams)();if(s){let{sseManager:r}=await e.A(72354);s.init({getDb:t.getDb,sseManager:r})}}if(!i.has(d)){i.add(d);try{let e=await (0,s.fullSync)();console.log(`[spaces:${d}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,s.enrichMissingSessions)();t>0&&console.log(`[spaces:${d}] Enriched ${t} sessions from JSONL`),(0,s.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${d}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${d}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${d}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${d}] Sync error:`,e)}finally{i.delete(d)}}}}e.s(["ensureInitialized",()=>d])},69529,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),d=e.i(16795),l=e.i(87718),c=e.i(95169),E=e.i(47587),u=e.i(66012),p=e.i(70101),T=e.i(74838),f=e.i(10372),N=e.i(93695);e.i(52474);var R=e.i(220),h=e.i(89171),g=e.i(79832),m=e.i(65836),A=e.i(50837),I=e.i(21150);async function x(e,{params:t}){let s=(0,g.getAuthUser)(e);return(0,g.withUser)(s,async()=>{await (0,m.ensureInitialized)();let{id:s}=await t,{searchParams:r}=e.nextUrl,n=parseInt(r.get("offset")||"0",10),a=parseInt(r.get("limit")||"50",10),i=(0,A.getSessionById)(s);if(!i)return h.NextResponse.json({error:"Session not found"},{status:404});let o=await (0,I.readMessages)(i.fullPath,n,a);return h.NextResponse.json(o)})}e.s(["GET",()=>x],80237);var _=e.i(80237);let S=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/messages/route",pathname:"/api/sessions/[id]/messages",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/[id]/messages/route.ts",nextConfigOutput:"standalone",userland:_}),{workAsyncStorage:y,workUnitAsyncStorage:L,serverHooks:w}=S;function U(){return(0,r.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:L})}async function O(e,t,r){S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let h="/api/sessions/[id]/messages/route";h=h.replace(/\/index$/,"")||"/";let g=await S.prepare(e,t,{srcPage:h,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:m,params:A,nextConfig:I,parsedUrl:x,isDraftMode:_,prerenderManifest:y,routerServerContext:L,isOnDemandRevalidate:w,revalidateOnlyGenerated:U,resolvedPathname:O,clientReferenceManifest:v,serverActionsManifest:D}=g,C=(0,o.normalizeAppPath)(h),b=!!(y.dynamicRoutes[C]||y.routes[O]),F=async()=>((null==L?void 0:L.render404)?await L.render404(e,t,x,!1):t.end("This page could not be found"),null);if(b&&!_){let e=!!y.routes[O],t=y.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await F();throw new N.NoFallbackError}}let X=null;!b||S.isDev||_||(X="/index"===(X=O)?"/":X);let j=!0===S.isDev||!b,k=b&&!j;D&&v&&(0,i.setManifestsSingleton)({page:h,clientReferenceManifest:v,serverActionsManifest:D});let P=e.method||"GET",q=(0,a.getTracer)(),M=q.getActiveScopeSpan(),G={params:A,prerenderManifest:y,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,n)=>S.onRequestError(e,t,r,n,L)},sharedContext:{buildId:m}},H=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),Y=l.NextRequestAdapter.fromNodeNextRequest(H,(0,l.signalFromNodeResponse)(t));try{let i=async e=>S.handle(Y,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=q.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${P} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${P} ${h}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),d=async n=>{var a,d;let l=async({previousCacheEntry:s})=>{try{if(!o&&w&&U&&!s)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=G.renderOpts.fetchMetrics;let d=G.renderOpts.pendingWaitUntil;d&&r.waitUntil&&(r.waitUntil(d),d=void 0);let l=G.renderOpts.collectedTags;if(!b)return await (0,u.sendResponse)(H,$,a,G.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:h,routeType:"route",revalidateReason:(0,E.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:w})},!1,L),t}},c=await S.handleResponse({req:e,nextConfig:I,cacheKey:X,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:w,revalidateOnlyGenerated:U,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:o});if(!b)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",w?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let N=(0,p.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&b||N.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||N.get("Cache-Control")||N.set("Cache-Control",(0,T.getCacheControlHeader)(c.cacheControl)),await (0,u.sendResponse)(H,$,new Response(c.value.body,{headers:N,status:c.value.status||200})),null};M?await d(M):await q.withPropagatedContext(e.headers,()=>q.trace(c.BaseServerSpan.handleRequest,{spanName:`${P} ${h}`,kind:a.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},d))}catch(t){if(t instanceof N.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,E.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:w})},!1,L),b)throw t;return await (0,u.sendResponse)(H,$,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>U,"routeModule",()=>S,"serverHooks",()=>w,"workAsyncStorage",()=>y,"workUnitAsyncStorage",()=>L],69529)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__7d6610c4._.js.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
module.exports=[24725,(e,t,s)=>{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,s)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,s)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),s=e.i(22734),r=e.i(46786),a=e.i(54799),n=e.i(17516),i=e.i(99944);function o(e){let s=e;if(n.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(s=t.admin.resolveShellUser(e))}catch{}let a=s===r.default.userInfo().username?r.default.homedir():`/home/${s}`,o=s===r.default.userInfo().username?t.default.join(r.default.homedir(),".spaces"):t.default.join(r.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(a,".claude"),claudeProjectsDir:t.default.join(a,".claude","projects"),statsPath:t.default.join(a,".claude","stats-cache.json"),codexDir:t.default.join(a,".codex"),codexSessionsDir:t.default.join(a,".codex","sessions"),geminiDir:t.default.join(a,".gemini"),geminiChatsBaseDir:t.default.join(a,".gemini","tmp"),geminiProjectsRegistry:t.default.join(a,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function c(e){let{spacesDir:t}=o(e);s.default.existsSync(t)||s.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:r}=o(e);try{if(s.default.existsSync(t)){let e=JSON.parse(s.default.readFileSync(t,"utf-8"));return{installId:e.installId||a.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}s.default.existsSync(r)||s.default.mkdirSync(r,{recursive:!0});let n={installId:a.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return s.default.writeFileSync(t,JSON.stringify(n,null,2)),n}function l(e,t){let r={...d(e),...t},{configPath:a}=o(e);return s.default.writeFileSync(a,JSON.stringify(r,null,2)),r}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>c,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>l])},10430,(e,t,s)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),s=e.i(46786),r=e.i(17516);let a=new t.AsyncLocalStorage;function n(e){return r.HAS_AUTH&&e.headers.get("x-auth-user")||s.default.userInfo().username}function i(e,t){return a.run(e,t)}function o(){let e=a.getStore();return e||s.default.userInfo().username}e.s(["getAuthUser",()=>n,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,s)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,s)=>{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,s)=>{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,s)=>{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,s)=>{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,s)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),s=e.i(14747);let r=null,a=!1;function n(){if(!a){for(let e of function(){let e=[s.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(s.default.delimiter))t&&e.push(s.default.join(t,"_anchor.js"));return e}())try{r=(0,t.createRequire)(e)("@spaces/teams");break}catch{}a=!0}return r}function i(){return null!==n()}e.s(["getTeams",()=>n,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.3",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"),s="team"===t||"federation"===t,r="federation"===t,a=!s;function n(){let n="0.0.0";try{n=e.r(4730).version}catch{}return{tier:t,version:n,hasAuth:s,hasAdmin:s,hasCollaboration:s,hasNetwork:r,hasMultiuser:s,isDesktop:a,basePath:""}}e.s(["HAS_AUTH",0,s,"HAS_MULTIUSER",0,s,"getTierFlags",()=>n])},46786,(e,t,s)=>{t.exports=e.x("os",()=>require("os"))},85148,(e,t,s)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},7304,e=>{"use strict";var t=e.i(85148),s=e.i(15286),r=e.i(79832);let a=new Map;function n(){let n=(0,r.getCurrentUser)(),i=a.get(n);if(i)return i;(0,s.ensureUserSpacesDir)(n);let{dbPath:o}=(0,s.getUserPaths)(n),c=new t.default(o);return c.pragma("journal_mode = WAL"),c.pragma("synchronous = NORMAL"),c.pragma("foreign_keys = ON"),function(t){let s;t.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
name TEXT NOT NULL,
|
|
5
|
+
path TEXT NOT NULL,
|
|
6
|
+
claude_path TEXT NOT NULL,
|
|
7
|
+
session_count INTEGER DEFAULT 0,
|
|
8
|
+
last_activity TEXT
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
12
|
+
id TEXT PRIMARY KEY,
|
|
13
|
+
session_id TEXT NOT NULL,
|
|
14
|
+
project_id TEXT NOT NULL,
|
|
15
|
+
first_prompt TEXT,
|
|
16
|
+
summary TEXT,
|
|
17
|
+
message_count INTEGER DEFAULT 0,
|
|
18
|
+
created TEXT,
|
|
19
|
+
modified TEXT,
|
|
20
|
+
git_branch TEXT,
|
|
21
|
+
project_path TEXT,
|
|
22
|
+
full_path TEXT NOT NULL,
|
|
23
|
+
starred INTEGER DEFAULT 0,
|
|
24
|
+
custom_name TEXT,
|
|
25
|
+
notes TEXT,
|
|
26
|
+
FOREIGN KEY (project_id) REFERENCES projects(id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_created ON sessions(created);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_modified ON sessions(modified);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_starred ON sessions(starred);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
35
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
36
|
+
name TEXT NOT NULL,
|
|
37
|
+
description TEXT DEFAULT '',
|
|
38
|
+
color TEXT DEFAULT '#6366f1',
|
|
39
|
+
created TEXT DEFAULT (datetime('now'))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS workspace_sessions (
|
|
43
|
+
workspace_id INTEGER NOT NULL,
|
|
44
|
+
session_id TEXT NOT NULL,
|
|
45
|
+
PRIMARY KEY (workspace_id, session_id),
|
|
46
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
47
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
51
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
|
+
name TEXT NOT NULL UNIQUE,
|
|
53
|
+
color TEXT DEFAULT '#8b5cf6'
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS session_tags (
|
|
57
|
+
session_id TEXT NOT NULL,
|
|
58
|
+
tag_id INTEGER NOT NULL,
|
|
59
|
+
PRIMARY KEY (session_id, tag_id),
|
|
60
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
61
|
+
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS sync_state (
|
|
65
|
+
file_path TEXT PRIMARY KEY,
|
|
66
|
+
mtime INTEGER,
|
|
67
|
+
byte_offset INTEGER DEFAULT 0,
|
|
68
|
+
last_synced TEXT DEFAULT (datetime('now'))
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS panes (
|
|
72
|
+
id TEXT PRIMARY KEY,
|
|
73
|
+
title TEXT NOT NULL DEFAULT 'Terminal',
|
|
74
|
+
color TEXT NOT NULL DEFAULT '#6366f1',
|
|
75
|
+
cwd TEXT NOT NULL,
|
|
76
|
+
claude_session_id TEXT,
|
|
77
|
+
grid_col INTEGER NOT NULL DEFAULT 0,
|
|
78
|
+
grid_row INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
shell TEXT,
|
|
81
|
+
created TEXT DEFAULT (datetime('now'))
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS totp (
|
|
85
|
+
username TEXT PRIMARY KEY,
|
|
86
|
+
secret TEXT NOT NULL,
|
|
87
|
+
enabled INTEGER DEFAULT 0,
|
|
88
|
+
created TEXT DEFAULT (datetime('now'))
|
|
89
|
+
);
|
|
90
|
+
`);let r=(e,s,r)=>{try{t.exec(`ALTER TABLE ${e} ADD COLUMN ${s} ${r}`)}catch{}};r("workspaces","is_active","INTEGER DEFAULT 0"),r("workspaces","updated","TEXT"),r("panes","workspace_id","INTEGER"),r("panes","is_popout","INTEGER DEFAULT 0"),r("panes","win_x","INTEGER"),r("panes","win_y","INTEGER"),r("panes","win_width","INTEGER DEFAULT 800"),r("panes","win_height","INTEGER DEFAULT 600"),r("panes","agent_type","TEXT DEFAULT 'shell'"),r("panes","custom_command","TEXT"),r("panes","node_id","TEXT"),r("sessions","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_path","TEXT");try{t.exec("UPDATE projects SET agent_path = claude_path WHERE agent_path IS NULL AND claude_path IS NOT NULL")}catch{}r("workspaces","collaboration","INTEGER DEFAULT 0"),r("panes","is_collaborating","INTEGER DEFAULT 0");try{t.exec("CREATE INDEX IF NOT EXISTS idx_sessions_agent_type ON sessions(agent_type)")}catch{}try{t.exec("CREATE INDEX IF NOT EXISTS idx_projects_agent_type ON projects(agent_type)")}catch{}let a=t.prepare("SELECT id FROM workspaces WHERE name = 'Default'").get();a?(s=a.id,t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()||t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(s)):s=Number(t.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES ('Default', 'Default workspace', '#6366f1', 1)").run().lastInsertRowid);let n=t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();n&&t.prepare("UPDATE panes SET workspace_id = ? WHERE workspace_id IS NULL").run(n.id);try{t.exec(`
|
|
91
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
|
|
92
|
+
session_id,
|
|
93
|
+
content,
|
|
94
|
+
content_rowid='rowid'
|
|
95
|
+
);
|
|
96
|
+
`)}catch{}try{let{getTeams:s}=e.r(99944),r=s();r&&r.db.runMigrations(t)}catch{}}(c),a.set(n,c),c}e.s(["getDb",()=>n])},65836,e=>{"use strict";var t=e.i(7304),s=e.i(60569),r=e.i(79832),a=e.i(99944);let n=new Set,i=new Set,o=!1;async function c(){let c=(0,r.getCurrentUser)();if(!n.has(c)){if((0,t.getDb)(),n.add(c),!o){o=!0;let s=(0,a.getTeams)();if(s){let{sseManager:r}=await e.A(72354);s.init({getDb:t.getDb,sseManager:r})}}if(!i.has(c)){i.add(c);try{let e=await (0,s.fullSync)();console.log(`[spaces:${c}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,s.enrichMissingSessions)();t>0&&console.log(`[spaces:${c}] Enriched ${t} sessions from JSONL`),(0,s.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${c}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${c}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${c}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${c}] Sync error:`,e)}finally{i.delete(c)}}}}e.s(["ensureInitialized",()=>c])},98907,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),a=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),c=e.i(16795),d=e.i(87718),l=e.i(95169),u=e.i(47587),E=e.i(66012),p=e.i(70101),T=e.i(74838),f=e.i(10372),N=e.i(93695);e.i(52474);var R=e.i(220),h=e.i(89171),g=e.i(79832),A=e.i(65836),m=e.i(50837);async function I(e,{params:t}){let s=(0,g.getAuthUser)(e);return(0,g.withUser)(s,async()=>{await (0,A.ensureInitialized)();let{id:e}=await t,s=parseInt(e,10),r=(0,m.getPanesByWorkspace)(s),a=(0,m.getWorkspaceSessions)(s);return h.NextResponse.json({panes:r,sessions:a})})}async function x(e,{params:t}){let s=(0,g.getAuthUser)(e);return(0,g.withUser)(s,async()=>{await (0,A.ensureInitialized)();let{id:s}=await t,r=await e.json();return(0,m.updateWorkspace)(parseInt(s,10),r),h.NextResponse.json({success:!0})})}async function _(e,{params:t}){let s=(0,g.getAuthUser)(e);return(0,g.withUser)(s,async()=>{await (0,A.ensureInitialized)();let{id:e}=await t;return(0,m.deleteWorkspaceFull)(parseInt(e,10)),h.NextResponse.json({success:!0})})}e.s(["DELETE",()=>_,"GET",()=>I,"PUT",()=>x],68568);var w=e.i(68568);let S=new t.AppRouteRouteModule({definition:{kind:s.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:w}),{workAsyncStorage:y,workUnitAsyncStorage:L,serverHooks:U}=S;function O(){return(0,r.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:L})}async function v(e,t,r){S.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let h="/api/workspaces/[id]/route";h=h.replace(/\/index$/,"")||"/";let g=await S.prepare(e,t,{srcPage:h,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,params:m,nextConfig:I,parsedUrl:x,isDraftMode:_,prerenderManifest:w,routerServerContext:y,isOnDemandRevalidate:L,revalidateOnlyGenerated:U,resolvedPathname:O,clientReferenceManifest:v,serverActionsManifest:D}=g,C=(0,o.normalizeAppPath)(h),F=!!(w.dynamicRoutes[C]||w.routes[O]),b=async()=>((null==y?void 0:y.render404)?await y.render404(e,t,x,!1):t.end("This page could not be found"),null);if(F&&!_){let e=!!w.routes[O],t=w.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await b();throw new N.NoFallbackError}}let X=null;!F||S.isDev||_||(X="/index"===(X=O)?"/":X);let j=!0===S.isDev||!F,k=F&&!j;D&&v&&(0,i.setManifestsSingleton)({page:h,clientReferenceManifest:v,serverActionsManifest:D});let P=e.method||"GET",q=(0,n.getTracer)(),G=q.getActiveScopeSpan(),M={params:m,prerenderManifest:w,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,a)=>S.onRequestError(e,t,r,a,y)},sharedContext:{buildId:A}},H=new c.NodeNextRequest(e),$=new c.NodeNextResponse(t),Y=d.NextRequestAdapter.fromNodeNextRequest(H,(0,d.signalFromNodeResponse)(t));try{let i=async e=>S.handle(Y,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=q.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${P} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${P} ${h}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),c=async a=>{var n,c;let d=async({previousCacheEntry:s})=>{try{if(!o&&L&&U&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(a);e.fetchMetrics=M.renderOpts.fetchMetrics;let c=M.renderOpts.pendingWaitUntil;c&&r.waitUntil&&(r.waitUntil(c),c=void 0);let d=M.renderOpts.collectedTags;if(!F)return await (0,E.sendResponse)(H,$,n,M.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,r=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:h,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:L})},!1,y),t}},l=await S.handleResponse({req:e,nextConfig:I,cacheKey:X,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:w,isRoutePPREnabled:!1,isOnDemandRevalidate:L,revalidateOnlyGenerated:U,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:o});if(!F)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(c=l.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",L?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let N=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return o&&F||N.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||N.get("Cache-Control")||N.set("Cache-Control",(0,T.getCacheControlHeader)(l.cacheControl)),await (0,E.sendResponse)(H,$,new Response(l.value.body,{headers:N,status:l.value.status||200})),null};G?await c(G):await q.withPropagatedContext(e.headers,()=>q.trace(l.BaseServerSpan.handleRequest,{spanName:`${P} ${h}`,kind:n.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},c))}catch(t){if(t instanceof N.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:L})},!1,y),F)throw t;return await (0,E.sendResponse)(H,$,new Response(null,{status:500})),null}}e.s(["handler",()=>v,"patchFetch",()=>O,"routeModule",()=>S,"serverHooks",()=>U,"workAsyncStorage",()=>y,"workUnitAsyncStorage",()=>L],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)))}];
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__84f3af14._.js.map
|