@jlongo78/agent-spaces 0.5.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.claude/settings.local.json +6 -1
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- 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 +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.rsc +4 -4
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/admin/users.html +1 -1
- package/.next/standalone/.next/server/app/admin/users.rsc +4 -4
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/analytics.html +1 -1
- package/.next/standalone/.next/server/app/analytics.rsc +4 -4
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- 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/chat/route.js +1 -1
- package/.next/standalone/.next/server/app/api/chat/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/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/network/projects/route.js +2 -1
- package/.next/standalone/.next/server/app/api/network/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/search/route.js +2 -1
- package/.next/standalone/.next/server/app/api/network/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js +2 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js +2 -1
- package/.next/standalone/.next/server/app/api/network/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/sessions/route.js +2 -1
- package/.next/standalone/.next/server/app/api/network/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js +2 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/route.js +2 -1
- package/.next/standalone/.next/server/app/api/network/workspaces/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 +3 -3
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +3 -3
- 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 +1 -1
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- 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 +4 -4
- package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- 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 +4 -4
- package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- 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 +4 -4
- package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- 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 +4 -4
- package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/m.html +1 -1
- package/.next/standalone/.next/server/app/m.rsc +4 -4
- package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.html +1 -1
- package/.next/standalone/.next/server/app/network.rsc +4 -4
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +4 -4
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/sessions.html +1 -1
- package/.next/standalone/.next/server/app/sessions.rsc +4 -4
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/terminal.html +1 -1
- package/.next/standalone/.next/server/app/terminal.rsc +4 -4
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/app/workspaces.html +1 -1
- package/.next/standalone/.next/server/app/workspaces.rsc +4 -4
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +4 -4
- 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 +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d038fdf._.js +106 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e742ef33._.js → [root-of-the-server]__12673e47._.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]__45205e47._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__46b7da42._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4cf845f6._.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]__5bf8f2c0._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__69eb20b1._.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]__a38f7af1._.js +98 -0
- 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]__b7c8a7dd._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c1d7faa6._.js +106 -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]__a2ee9884._.js → [root-of-the-server]__c977bf2f._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d2f9be33._.js +98 -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]__e9d6e526._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f66ceeb8._.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/chunks/ssr/_1f12caba._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_43e7e611._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_network_page_tsx_27f035db._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_lib_telemetry_ts_d7f80cd0._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/_d73df637._.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/static/chunks/{10c6424526b53431.js → 483bf086feba6531.js} +1 -1
- package/.next/standalone/.next/static/chunks/{f8d7a4a58f712ecd.js → 56ddb2d75f5beb1a.js} +1 -1
- package/.next/standalone/.next/static/chunks/7c4cfb3160fa8dd4.js +5 -0
- package/.next/standalone/.next/static/chunks/{3434c5b2c9958276.js → ae3a695e671c8d31.js} +1 -1
- package/.next/standalone/.next/static/chunks/e972ec0d23b19896.js +5 -0
- package/.next/standalone/package.json +1 -1
- package/bin/lib/auto-setup.js +10 -1
- package/bin/setup-admin.js +7 -1
- package/bin/spaces-install.js +137 -16
- package/bin/spaces-service.js +881 -0
- package/bin/spaces-setup.js +14 -3
- package/bin/spaces.js +55 -21
- package/bin/terminal-server.js +146 -11
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__086be15a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__18a58c5f._.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]__41e589ee._.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]__464db440._.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]__4ad64489._.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]__95b7f18e._.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]__a6ce192e._.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/server/chunks/[root-of-the-server]__e2b78951._.js +0 -3
- package/.next/standalone/.next/static/chunks/302ce212c690bec4.js +0 -5
- package/.next/standalone/.next/static/chunks/cb442c50eecb758d.js +0 -5
- /package/.next/standalone/.next/static/{O6DdjswRa9GKIUCn6RwBy → 5J530rtIR_FsG4E9MLLpB}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{O6DdjswRa9GKIUCn6RwBy → 5J530rtIR_FsG4E9MLLpB}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{O6DdjswRa9GKIUCn6RwBy → 5J530rtIR_FsG4E9MLLpB}/_ssgManifest.js +0 -0
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
module.exports=[19668,(e,s,t)=>{s.exports=e.x("readline",()=>require("readline"))},21150,78995,64676,93223,e=>{"use strict";var s=e.i(22734),t=e.i(19668);function a(e){try{let t=s.default.readFileSync(e,"utf-8");return JSON.parse(t)}catch{return null}}async function r(e,a=0,i=50){return new Promise((r,n)=>{let o=[],d=0,p=0;if(!s.default.existsSync(e))return void r({messages:[],total:0,hasMore:!1});let c=s.default.createReadStream(e,{encoding:"utf-8"}),l=t.default.createInterface({input:c,crlfDelay:1/0});l.on("line",e=>{if(e.trim())try{let s=JSON.parse(e);("user"===s.type||"assistant"===s.type||"system"===s.type)&&(d>=a&&p<i&&(o.push(s),p++),d++)}catch{}}),l.on("close",()=>{r({messages:o,total:d,hasMore:d>a+i})}),l.on("error",n)})}async function i(e){return new Promise(a=>{let r=[];if(!s.default.existsSync(e))return void a("");let i=s.default.createReadStream(e,{encoding:"utf-8"}),n=t.default.createInterface({input:i,crlfDelay:1/0});n.on("line",e=>{if(e.trim())try{let s=JSON.parse(e);if("user"===s.type||"assistant"===s.type){let e=function(e){if("user"===e.type&&"message"in e){let s=e.message.content;return"string"==typeof s?s:""}if("assistant"===e.type&&"message"in e){let s=e.message.content;return Array.isArray(s)?s.filter(e=>"text"===e.type&&e.text).map(e=>e.text).join("\n"):""}return""}(s);e&&r.push(e)}}catch{}}),n.on("close",()=>{a(r.join("\n").slice(0,1e5))})})}function n(e){try{let t=s.default.readFileSync(e,"utf-8");return JSON.parse(t)}catch{return null}}async function o(e){return new Promise(a=>{let r="",i=0,n="",o="",d="",p="",c="";if(!s.default.existsSync(e))return void a(null);let l=s.default.createReadStream(e,{encoding:"utf-8"}),E=t.default.createInterface({input:l,crlfDelay:1/0});E.on("line",e=>{if(e.trim())try{let s=JSON.parse(e);if(("user"===s.type||"assistant"===s.type)&&(i++,s.timestamp&&(n||(n=s.timestamp),o=s.timestamp)),"user"===s.type&&!r){let e=s.message?.content;r="string"==typeof e?e.slice(0,200):"",d=s.gitBranch||"",p=s.cwd||""}"assistant"!==s.type||c||(c=s.message?.model||"")}catch{}}),E.on("close",()=>{a({firstPrompt:r,messageCount:i,created:n,modified:o,gitBranch:d,projectPath:p,model:c})})})}e.s(["extractAllText",()=>i,"parseSessionIndex",()=>a,"readMessages",()=>r,"readStatsCache",()=>n,"scanJSONLMetadata",()=>o],21150);var d=e.i(14747);function p(e){if(!e||!s.default.existsSync(e))return[];let t=function e(t){let a=[];try{for(let r of s.default.readdirSync(t,{withFileTypes:!0})){let s=d.default.join(t,r.name);r.isDirectory()?a.push(...e(s)):r.isFile()&&r.name.startsWith("rollout-")&&r.name.endsWith(".jsonl")&&a.push({filePath:s,filename:r.name})}}catch{}return a}(e),a=[];for(let{filePath:e,filename:r}of t){let t=function(e,t){try{let a,r,i=function(e,t){let a=null;try{a=s.default.openSync(e,"r");let t=Buffer.alloc(8192),r=s.default.readSync(a,t,0,8192,0);return t.toString("utf-8",0,r)}finally{null!==a&&s.default.closeSync(a)}}(e,0),n=s.default.statSync(e),o=i.split("\n").filter(e=>e.trim().length>0);if(0===o.length)return null;let d="",p="",c="",l="",E=0;for(let e=0;e<o.length;e++){let s;try{s=JSON.parse(o[e])}catch{continue}if(0===e||!d&&!p&&!c){let e=s.item;d=e?.id||s.id||s.session_id||"",p=e?.cwd||s.cwd||"",c=e?.timestamp||s.timestamp||e?.created_at||s.created_at||s.created||""}if(function(e){let s=e.payload,t=s?.type??e.type;return!!t&&new Set(["user_message","UserMessage","assistant_message","AssistantMessage","message","response","tool_call","ToolCall","tool_result","ToolResult"]).has(t)}(s)&&E++,!l){let e=function(e){for(let s of[e.payload,e]){if(!s||"object"!=typeof s)continue;let e=s.type;if("user_message"===e||"UserMessage"===e){if("string"==typeof s.text)return s.text;if("string"==typeof s.content)return s.content;let e=s.message;if(e&&"string"==typeof e.content)return e.content}}return null}(s);e&&(l=e.slice(0,500))}}if(d||(d=(r=(a=t.replace(/\.jsonl$/,"")).match(/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i))?r[1]:a.replace(/^rollout-/,"")),!c){let e=t.match(/^rollout-(\d+)/);if(e){let s=parseInt(e[1],10),t=new Date(s>1e12?s:1e3*s);isNaN(t.getTime())||(c=t.toISOString())}}return c||(c=n.mtime.toISOString()),{id:d,cwd:p,timestamp:c,firstPrompt:l,messageCount:E,modified:n.mtime.toISOString()}}catch{return null}}(e,r);t&&a.push(t)}return a.sort((e,s)=>e.timestamp&&s.timestamp?s.timestamp.localeCompare(e.timestamp):s.modified.localeCompare(e.modified)),a}function c(e){try{return s.default.readdirSync(e)}catch{return[]}}function l(e){try{return s.default.statSync(e).isDirectory()}catch{return!1}}function E(e,t){let a=function(e){let t=new Map;try{if(!s.default.existsSync(e))return t;let a=s.default.readFileSync(e,"utf-8"),r=JSON.parse(a);if("object"!=typeof r||null===r)return t;for(let[e,s]of Object.entries(r))if(s&&"object"==typeof s&&"id"in s){let a=s.id;"string"==typeof a&&t.set(a,e)}}catch{}return t}(t),r=[];for(let t of c(e)){let i=d.default.join(e,t);if(!l(i))continue;let n=d.default.join(i,"chats");if(l(n))for(let e of c(n)){if(!e.startsWith("session-")||!e.endsWith(".json"))continue;let i=function(e,t,a){try{let r=s.default.readFileSync(e,"utf-8"),i=JSON.parse(r);if("object"!=typeof i||null===i)return null;let n=i.sessionId||d.default.basename(e,".json"),o=i.startTime||"",p=i.lastUpdated||"",c=i.summary||"",l=Array.isArray(i.messages)?i.messages:[],E=0,u="";for(let e of l){if(!e||"object"!=typeof e)continue;let s=e.role;if(("user"===s||"model"===s||"assistant"===s)&&E++,"user"===s&&!u){let s=e.content,t=function(e){if("string"==typeof e)return e;if(e&&"object"==typeof e){let s;if(Array.isArray(e)?s=e:"parts"in e&&Array.isArray(e.parts)&&(s=e.parts),s){let e=[];for(let t of s)if(t&&"object"==typeof t&&"text"in t){let s=t.text;"string"==typeof s&&e.push(s)}return e.join("\n")}}return""}(s);t&&(u=t.trim().slice(0,200))}}let T=a.get(t)||"";return{sessionId:n,projectSlug:t,projectPath:T,startTime:o,lastUpdated:p,firstPrompt:u,summary:c,messageCount:E,fullPath:e}}catch{return null}}(d.default.join(n,e),t,a);i&&r.push(i)}}return r}e.s(["scanCodexSessions",()=>p],78995),e.s(["scanGeminiSessions",()=>E],64676);var u=e.i(54799);let T="#### ";function f(e){return"aider-"+u.default.createHash("sha256").update(e).digest("hex").slice(0,16)}function m(e){return"aider-proj-"+u.default.createHash("sha256").update(e).digest("hex").slice(0,12)}function g(e){let t=new Set,a=[];for(let r of e){let e=d.default.resolve(r);if(t.has(e))continue;t.add(e);let i=function(e){let t,a,r=d.default.join(e,".aider.chat.history.md");if(!s.default.existsSync(r))return null;try{t=s.default.readFileSync(r,"utf-8")}catch{return null}let i=0,n="";for(let e of t.split("\n"))e.startsWith(T)&&(i++,n||(n=e.slice(T.length).trim().slice(0,200)));if(0===i)return null;try{a=s.default.statSync(r)}catch{return null}return{projectPath:e,firstPrompt:n,messageCount:i,modified:a.mtime.toISOString(),created:(a.birthtime&&a.birthtime.getTime()>0?a.birthtime:a.ctime).toISOString()}}(e);i&&a.push(i)}return a}e.s(["aiderProjectId",()=>m,"aiderSessionId",()=>f,"scanAiderSessions",()=>g],93223)},85148,(e,s,t)=>{s.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},7304,e=>{"use strict";var s=e.i(85148),t=e.i(15286),a=e.i(79832);let r=new Map;function i(){let i=(0,a.getCurrentUser)(),n=r.get(i);if(n)return n;(0,t.ensureUserSpacesDir)(i);let{dbPath:o}=(0,t.getUserPaths)(i),d=new s.default(o);return d.pragma("journal_mode = WAL"),d.pragma("synchronous = NORMAL"),d.pragma("foreign_keys = ON"),function(s){let t;s.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 a=(e,t,a)=>{try{s.exec(`ALTER TABLE ${e} ADD COLUMN ${t} ${a}`)}catch{}};a("workspaces","is_active","INTEGER DEFAULT 0"),a("workspaces","updated","TEXT"),a("panes","workspace_id","INTEGER"),a("panes","is_popout","INTEGER DEFAULT 0"),a("panes","win_x","INTEGER"),a("panes","win_y","INTEGER"),a("panes","win_width","INTEGER DEFAULT 800"),a("panes","win_height","INTEGER DEFAULT 600"),a("panes","agent_type","TEXT DEFAULT 'shell'"),a("panes","custom_command","TEXT"),a("panes","node_id","TEXT"),a("sessions","agent_type","TEXT DEFAULT 'claude'"),a("projects","agent_type","TEXT DEFAULT 'claude'"),a("projects","agent_path","TEXT");try{s.exec("UPDATE projects SET agent_path = claude_path WHERE agent_path IS NULL AND claude_path IS NOT NULL")}catch{}a("workspaces","collaboration","INTEGER DEFAULT 0"),a("panes","is_collaborating","INTEGER DEFAULT 0");try{s.exec("CREATE INDEX IF NOT EXISTS idx_sessions_agent_type ON sessions(agent_type)")}catch{}try{s.exec("CREATE INDEX IF NOT EXISTS idx_projects_agent_type ON projects(agent_type)")}catch{}let r=s.prepare("SELECT id FROM workspaces WHERE name = 'Default'").get();r?(t=r.id,s.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()||s.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(t)):t=Number(s.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES ('Default', 'Default workspace', '#6366f1', 1)").run().lastInsertRowid);let i=s.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();i&&s.prepare("UPDATE panes SET workspace_id = ? WHERE workspace_id IS NULL").run(i.id);try{s.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:t}=e.r(99944),a=t();a&&a.db.runMigrations(s)}catch{}}(d),r.set(i,d),d}e.s(["getDb",()=>i])},60569,50837,e=>{"use strict";var s=e.i(22734),t=e.i(14747),a=e.i(15286),r=e.i(79832),i=e.i(21150),n=e.i(78995),o=e.i(64676),d=e.i(93223),p=e.i(54799),c=e.i(7304);function l(e){(0,c.getDb)().prepare(`
|
|
97
|
-
INSERT INTO projects (id, name, path, claude_path, agent_path, agent_type)
|
|
98
|
-
VALUES (?, ?, ?, ?, ?, ?)
|
|
99
|
-
ON CONFLICT(id) DO UPDATE SET name=excluded.name, path=excluded.path, claude_path=excluded.claude_path, agent_path=excluded.agent_path, agent_type=excluded.agent_type
|
|
100
|
-
`).run(e.id,e.name,e.path,e.claudePath,e.claudePath,e.agentType||"claude")}function E(){return(0,c.getDb)().prepare(`
|
|
101
|
-
SELECT p.id, p.name, p.path, p.claude_path as claudePath,
|
|
102
|
-
p.agent_type as agentType,
|
|
103
|
-
COUNT(s.id) as sessionCount,
|
|
104
|
-
MAX(s.modified) as lastActivity
|
|
105
|
-
FROM projects p
|
|
106
|
-
LEFT JOIN sessions s ON s.project_id = p.id
|
|
107
|
-
GROUP BY p.id
|
|
108
|
-
ORDER BY lastActivity DESC
|
|
109
|
-
`).all()}function u(e){(0,c.getDb)().prepare(`
|
|
110
|
-
INSERT INTO sessions (id, session_id, project_id, first_prompt, summary, message_count, created, modified, git_branch, project_path, full_path, agent_type)
|
|
111
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
112
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
113
|
-
first_prompt = CASE WHEN excluded.first_prompt != '' THEN excluded.first_prompt ELSE sessions.first_prompt END,
|
|
114
|
-
summary = CASE WHEN excluded.summary != '' THEN excluded.summary ELSE sessions.summary END,
|
|
115
|
-
message_count = CASE WHEN excluded.message_count > sessions.message_count THEN excluded.message_count ELSE sessions.message_count END,
|
|
116
|
-
modified = CASE WHEN excluded.modified != '' THEN excluded.modified ELSE sessions.modified END,
|
|
117
|
-
git_branch = CASE WHEN excluded.git_branch != '' THEN excluded.git_branch ELSE sessions.git_branch END,
|
|
118
|
-
full_path = CASE WHEN excluded.full_path != '' THEN excluded.full_path ELSE sessions.full_path END,
|
|
119
|
-
agent_type=excluded.agent_type
|
|
120
|
-
`).run(e.id,e.sessionId,e.projectId,e.firstPrompt,e.summary,e.messageCount,e.created,e.modified,e.gitBranch,e.projectPath,e.fullPath,e.agentType||"claude")}function T(e={}){let s=(0,c.getDb)(),{projectId:t,projectPath:a,starred:r,tagId:i,search:n,sortBy:o="modified",sortDir:d="DESC",offset:p=0,limit:l=50}=e,E=[],u=[];if(t&&(E.push("s.project_id = ?"),u.push(t)),a&&(E.push("s.project_path = ?"),u.push(a)),void 0!==r&&(E.push("s.starred = ?"),u.push(+!!r)),i&&(E.push("EXISTS (SELECT 1 FROM session_tags st WHERE st.session_id = s.id AND st.tag_id = ?)"),u.push(i)),n){E.push("(s.first_prompt LIKE ? OR s.summary LIKE ? OR s.custom_name LIKE ?)");let e=`%${n}%`;u.push(e,e,e)}e.agentType&&(E.push("s.agent_type = ?"),u.push(e.agentType));let f=E.length>0?`WHERE ${E.join(" AND ")}`:"",m=s.prepare(`SELECT COUNT(*) as total FROM sessions s ${f}`).get(...u),g=s.prepare(`
|
|
121
|
-
SELECT s.id, s.session_id as sessionId, s.project_id as projectId,
|
|
122
|
-
p.name as projectName, s.first_prompt as firstPrompt,
|
|
123
|
-
s.summary, s.message_count as messageCount,
|
|
124
|
-
s.created, s.modified, s.git_branch as gitBranch,
|
|
125
|
-
s.project_path as projectPath, s.full_path as fullPath,
|
|
126
|
-
s.starred, s.custom_name as customName, s.notes,
|
|
127
|
-
s.agent_type as agentType
|
|
128
|
-
FROM sessions s
|
|
129
|
-
LEFT JOIN projects p ON p.id = s.project_id
|
|
130
|
-
${f}
|
|
131
|
-
ORDER BY ${{created:"s.created",modified:"s.modified",messages:"s.message_count",name:"COALESCE(s.custom_name, s.summary, s.first_prompt)"}[o]||"s.modified"} ${"ASC"===d?"ASC":"DESC"}
|
|
132
|
-
LIMIT ? OFFSET ?
|
|
133
|
-
`).all(...u,l,p),_=s.prepare(`
|
|
134
|
-
SELECT t.name FROM tags t
|
|
135
|
-
JOIN session_tags st ON st.tag_id = t.id
|
|
136
|
-
WHERE st.session_id = ?
|
|
137
|
-
`),h=s.prepare(`
|
|
138
|
-
SELECT w.id, w.name, w.color FROM workspaces w
|
|
139
|
-
JOIN workspace_sessions ws ON ws.workspace_id = w.id
|
|
140
|
-
WHERE ws.session_id = ?
|
|
141
|
-
`);for(let e of g){let s=_.all(e.id);e.tags=s.map(e=>e.name),e.workspaces=h.all(e.id),e.starred=!!e.starred}return{sessions:g,total:m.total}}function f(e){let s=(0,c.getDb)(),t=s.prepare(`
|
|
142
|
-
SELECT s.id, s.session_id as sessionId, s.project_id as projectId,
|
|
143
|
-
p.name as projectName, s.first_prompt as firstPrompt,
|
|
144
|
-
s.summary, s.message_count as messageCount,
|
|
145
|
-
s.created, s.modified, s.git_branch as gitBranch,
|
|
146
|
-
s.project_path as projectPath, s.full_path as fullPath,
|
|
147
|
-
s.starred, s.custom_name as customName, s.notes,
|
|
148
|
-
s.agent_type as agentType
|
|
149
|
-
FROM sessions s
|
|
150
|
-
LEFT JOIN projects p ON p.id = s.project_id
|
|
151
|
-
WHERE s.id = ? OR s.session_id = ?
|
|
152
|
-
`).get(e,e);if(!t)return null;let a=s.prepare(`
|
|
153
|
-
SELECT t.name FROM tags t
|
|
154
|
-
JOIN session_tags st ON st.tag_id = t.id
|
|
155
|
-
WHERE st.session_id = ?
|
|
156
|
-
`).all(t.id);return t.tags=a.map(e=>e.name),t.starred=!!t.starred,t}function m(e){let s=(0,c.getDb)(),t=s.prepare("SELECT starred FROM sessions WHERE id = ? OR session_id = ?").get(e,e);if(!t)return!1;let a=+!t.starred;return s.prepare("UPDATE sessions SET starred = ? WHERE id = ? OR session_id = ?").run(a,e,e),!!a}function g(e,s){(0,c.getDb)().prepare("UPDATE sessions SET notes = ? WHERE id = ? OR session_id = ?").run(s,e,e)}function _(e,s,t){return{id:Number((0,c.getDb)().prepare("INSERT INTO workspaces (name, description, color) VALUES (?, ?, ?)").run(e,s||"",t||"#6366f1").lastInsertRowid),name:e,description:s||"",color:t||"#6366f1",created:new Date().toISOString()}}function h(e,s){(0,c.getDb)().prepare("INSERT OR IGNORE INTO workspace_sessions (workspace_id, session_id) VALUES (?, ?)").run(e,s)}function S(e,s){(0,c.getDb)().prepare("DELETE FROM workspace_sessions WHERE workspace_id = ? AND session_id = ?").run(e,s)}function N(e,s){return{id:Number((0,c.getDb)().prepare("INSERT OR IGNORE INTO tags (name, color) VALUES (?, ?)").run(e,s||"#8b5cf6").lastInsertRowid),name:e,color:s||"#8b5cf6"}}function R(){return(0,c.getDb)().prepare("SELECT * FROM tags ORDER BY name").all()}function O(e,s){let t=(0,c.getDb)(),a=t.prepare("SELECT id FROM tags WHERE name = ?").get(s);a||(a={id:Number(t.prepare("INSERT INTO tags (name) VALUES (?)").run(s).lastInsertRowid)}),t.prepare("INSERT OR IGNORE INTO session_tags (session_id, tag_id) VALUES (?, ?)").run(e,a.id)}function I(e,s){let t=(0,c.getDb)(),a=t.prepare("SELECT id FROM tags WHERE name = ?").get(s);a&&t.prepare("DELETE FROM session_tags WHERE session_id = ? AND tag_id = ?").run(e,a.id)}function y(e){let s=(0,c.getDb)();s.prepare("DELETE FROM session_tags WHERE tag_id = ?").run(e),s.prepare("DELETE FROM tags WHERE id = ?").run(e)}function w(e,s){(0,c.getDb)().prepare("UPDATE tags SET color = ? WHERE id = ?").run(s,e)}function L(e){return(0,c.getDb)().prepare(`
|
|
157
|
-
SELECT t.id, t.name, t.color FROM tags t
|
|
158
|
-
JOIN session_tags st ON st.tag_id = t.id
|
|
159
|
-
WHERE st.session_id = ?
|
|
160
|
-
ORDER BY t.name
|
|
161
|
-
`).all(e)}function D(e,s){(0,c.getDb)().prepare("UPDATE sessions SET custom_name = ? WHERE id = ? OR session_id = ?").run(s||null,e,e)}function A(e,s){let t=(0,c.getDb)();void 0!==s.name&&t.prepare("UPDATE workspaces SET name = ? WHERE id = ?").run(s.name,e),void 0!==s.description&&t.prepare("UPDATE workspaces SET description = ? WHERE id = ?").run(s.description,e),void 0!==s.color&&t.prepare("UPDATE workspaces SET color = ? WHERE id = ?").run(s.color,e),void 0!==s.collaboration&&t.prepare("UPDATE workspaces SET collaboration = ? WHERE id = ?").run(+!!s.collaboration,e)}function C(e){let s=(0,c.getDb)(),t=s.prepare(`
|
|
162
|
-
SELECT w.id, w.name, w.color FROM workspaces w
|
|
163
|
-
JOIN workspace_sessions ws ON ws.workspace_id = w.id
|
|
164
|
-
WHERE ws.session_id = ?
|
|
165
|
-
`).all(e);return t.length>0?t:s.prepare(`
|
|
166
|
-
SELECT DISTINCT w.id, w.name, w.color FROM workspaces w
|
|
167
|
-
JOIN panes p ON p.workspace_id = w.id
|
|
168
|
-
WHERE p.claude_session_id = ?
|
|
169
|
-
`).all(e)}function j(e){let s=(0,c.getDb)(),t=s.prepare(`
|
|
170
|
-
SELECT s.id, s.session_id as sessionId, s.project_id as projectId,
|
|
171
|
-
p.name as projectName, s.first_prompt as firstPrompt,
|
|
172
|
-
s.summary, s.message_count as messageCount,
|
|
173
|
-
s.created, s.modified, s.git_branch as gitBranch,
|
|
174
|
-
s.project_path as projectPath, s.full_path as fullPath,
|
|
175
|
-
s.starred, s.custom_name as customName, s.notes,
|
|
176
|
-
s.agent_type as agentType
|
|
177
|
-
FROM sessions s
|
|
178
|
-
JOIN workspace_sessions ws ON ws.session_id = s.id
|
|
179
|
-
LEFT JOIN projects p ON p.id = s.project_id
|
|
180
|
-
WHERE ws.workspace_id = ?
|
|
181
|
-
ORDER BY s.modified DESC
|
|
182
|
-
`).all(e),a=s.prepare("SELECT t.name FROM tags t JOIN session_tags st ON st.tag_id = t.id WHERE st.session_id = ?");for(let e of t)e.tags=a.all(e.id).map(e=>e.name),e.starred=!!e.starred;return t}function F(e){return(0,c.getDb)().prepare(`
|
|
183
|
-
SELECT w.id, w.name, w.description, w.color, w.created, w.collaboration
|
|
184
|
-
FROM workspaces w
|
|
185
|
-
JOIN workspace_sessions ws ON ws.workspace_id = w.id
|
|
186
|
-
WHERE ws.session_id = ?
|
|
187
|
-
`).all(e)}function P(e,s){let t=(0,c.getDb)(),a=t.prepare("SELECT id FROM tags WHERE name = ?").get(s);a||(a={id:Number(t.prepare("INSERT INTO tags (name) VALUES (?)").run(s).lastInsertRowid)});let r=t.prepare("INSERT OR IGNORE INTO session_tags (session_id, tag_id) VALUES (?, ?)");t.transaction(()=>{for(let s of e)r.run(s,a.id)})()}function U(e,s){let t=(0,c.getDb)(),a=t.prepare("INSERT OR IGNORE INTO workspace_sessions (workspace_id, session_id) VALUES (?, ?)");t.transaction(()=>{for(let t of e)a.run(s,t)})()}function b(e,s){let t=(0,c.getDb)(),a=t.prepare("UPDATE sessions SET starred = ? WHERE id = ?");t.transaction(()=>{for(let t of e)a.run(+!!s,t)})()}function k(e,s){let t=(0,c.getDb)();t.prepare("DELETE FROM sessions_fts WHERE session_id = ?").run(e),t.prepare("INSERT INTO sessions_fts (session_id, content) VALUES (?, ?)").run(e,s)}function W(e,s={}){let t=(0,c.getDb)(),{projectId:a,limit:r=20,offset:i=0}=s,n=`
|
|
188
|
-
SELECT f.session_id as sessionId, snippet(sessions_fts, 1, '<mark>', '</mark>', '...', 40) as snippet,
|
|
189
|
-
rank, p.name as projectName, s.first_prompt as firstPrompt, s.created
|
|
190
|
-
FROM sessions_fts f
|
|
191
|
-
JOIN sessions s ON s.id = f.session_id OR s.session_id = f.session_id
|
|
192
|
-
LEFT JOIN projects p ON p.id = s.project_id
|
|
193
|
-
WHERE sessions_fts MATCH ?
|
|
194
|
-
`,o=[e];a&&(n+=" AND s.project_id = ?",o.push(a)),n+=" ORDER BY rank LIMIT ? OFFSET ?",o.push(r,i);try{return t.prepare(n).all(...o)}catch{return t.prepare(`
|
|
195
|
-
SELECT s.id as sessionId, substr(s.first_prompt, 1, 200) as snippet,
|
|
196
|
-
0 as rank, p.name as projectName, s.first_prompt as firstPrompt, s.created
|
|
197
|
-
FROM sessions s
|
|
198
|
-
LEFT JOIN projects p ON p.id = s.project_id
|
|
199
|
-
WHERE s.first_prompt LIKE ? OR s.summary LIKE ?
|
|
200
|
-
LIMIT ? OFFSET ?
|
|
201
|
-
`).all(`%${e}%`,`%${e}%`,r,i)}}let M=`
|
|
202
|
-
id, title, color, cwd, claude_session_id as claudeSessionId,
|
|
203
|
-
agent_type as agentType, custom_command as customCommand,
|
|
204
|
-
grid_col as gridCol, grid_row as gridRow, sort_order as sortOrder,
|
|
205
|
-
shell, created, workspace_id as workspaceId,
|
|
206
|
-
is_popout as isPopout, win_x as winX, win_y as winY,
|
|
207
|
-
win_width as winWidth, win_height as winHeight,
|
|
208
|
-
node_id as nodeId,
|
|
209
|
-
is_collaborating as isCollaborating
|
|
210
|
-
`;function H(e){return{...e,isPopout:!!e.isPopout,isCollaborating:!!e.isCollaborating}}function x(e){return(0,c.getDb)().prepare(`SELECT ${M} FROM panes WHERE workspace_id = ? ORDER BY sort_order, created`).all(e).map(H)}function X(){let e=(0,c.getDb)().prepare("SELECT id FROM workspaces WHERE is_active = 1").get();return e?x(e.id):[]}function v(e){let s=(0,c.getDb)(),t=s.prepare("SELECT MAX(sort_order) as m FROM panes").get(),a=e.sortOrder??(t.m??-1)+1,r=e.workspaceId;if(void 0===r){let e=s.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();r=e?.id}return s.prepare(`
|
|
211
|
-
INSERT INTO panes (id, title, color, cwd, claude_session_id, agent_type, custom_command, sort_order, workspace_id, node_id, is_collaborating)
|
|
212
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
213
|
-
`).run(e.id,e.title,e.color,e.cwd,e.claudeSessionId||null,e.agentType||"shell",e.customCommand||null,a,r||null,e.nodeId||null,+!!e.isCollaborating),B(e.id)}function B(e){let s=(0,c.getDb)().prepare(`SELECT ${M} FROM panes WHERE id = ?`).get(e);return s?H(s):null}function G(e,s){let t=(0,c.getDb)(),a=[],r=[];void 0!==s.title&&(a.push("title = ?"),r.push(s.title)),void 0!==s.color&&(a.push("color = ?"),r.push(s.color)),void 0!==s.cwd&&(a.push("cwd = ?"),r.push(s.cwd)),void 0!==s.claudeSessionId&&(a.push("claude_session_id = ?"),r.push(s.claudeSessionId)),void 0!==s.agentType&&(a.push("agent_type = ?"),r.push(s.agentType)),void 0!==s.customCommand&&(a.push("custom_command = ?"),r.push(s.customCommand)),void 0!==s.gridCol&&(a.push("grid_col = ?"),r.push(s.gridCol)),void 0!==s.gridRow&&(a.push("grid_row = ?"),r.push(s.gridRow)),void 0!==s.sortOrder&&(a.push("sort_order = ?"),r.push(s.sortOrder)),void 0!==s.workspaceId&&(a.push("workspace_id = ?"),r.push(s.workspaceId)),void 0!==s.isPopout&&(a.push("is_popout = ?"),r.push(+!!s.isPopout)),void 0!==s.winX&&(a.push("win_x = ?"),r.push(s.winX)),void 0!==s.winY&&(a.push("win_y = ?"),r.push(s.winY)),void 0!==s.winWidth&&(a.push("win_width = ?"),r.push(s.winWidth)),void 0!==s.winHeight&&(a.push("win_height = ?"),r.push(s.winHeight)),void 0!==s.nodeId&&(a.push("node_id = ?"),r.push(s.nodeId)),void 0!==s.isCollaborating&&(a.push("is_collaborating = ?"),r.push(+!!s.isCollaborating)),0!==a.length&&(r.push(e),t.prepare(`UPDATE panes SET ${a.join(", ")} WHERE id = ?`).run(...r))}function Y(e){(0,c.getDb)().prepare("DELETE FROM panes WHERE id = ?").run(e)}function J(){return(0,c.getDb)().prepare("SELECT id, name, description, color, created, is_active as isActive, collaboration FROM workspaces WHERE is_active = 1").get()}function K(e){let s=(0,c.getDb)();s.prepare("UPDATE workspaces SET is_active = 0").run(),s.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(e)}function $(e,s,t){let a=(0,c.getDb)(),r=a.prepare("SELECT * FROM workspaces WHERE id = ?").get(e),i=Number(a.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES (?, ?, ?, 0)").run(s,r?.description||"",t||r?.color||"#6366f1").lastInsertRowid),n=a.prepare("SELECT * FROM panes WHERE workspace_id = ?").all(e),o=a.prepare(`
|
|
214
|
-
INSERT INTO panes (id, title, color, cwd, claude_session_id, agent_type, custom_command, grid_col, grid_row, sort_order, shell, workspace_id, is_popout, win_x, win_y, win_width, win_height)
|
|
215
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
216
|
-
`);return a.transaction(()=>{for(let e of n){let s=p.default.randomUUID();o.run(s,e.title,e.color,e.cwd,e.claude_session_id,e.agent_type||"shell",e.custom_command||null,e.grid_col,e.grid_row,e.sort_order,e.shell,i,0,e.win_x,e.win_y,e.win_width,e.win_height)}})(),{workspace:{id:i,name:s,description:r?.description||"",color:t||r?.color||"#6366f1",created:new Date().toISOString()},panes:x(i)}}function V(e){let s=(0,c.getDb)();if(s.prepare("DELETE FROM panes WHERE workspace_id = ?").run(e),s.prepare("DELETE FROM workspaces WHERE id = ?").run(e),!s.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()){let e=s.prepare("SELECT id FROM workspaces ORDER BY id LIMIT 1").get();e&&s.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(e.id)}}function q(){let e=(0,c.getDb)(),s=e.prepare(`
|
|
217
|
-
SELECT COUNT(*) as totalSessions, COALESCE(SUM(message_count), 0) as totalMessages
|
|
218
|
-
FROM sessions
|
|
219
|
-
`).get(),t=e.prepare("SELECT COUNT(*) as count FROM projects").get();return{totalSessions:s.totalSessions,totalMessages:s.totalMessages,totalProjects:t.count}}function z(e=30){return(0,c.getDb)().prepare(`
|
|
220
|
-
SELECT date(created) as date,
|
|
221
|
-
COUNT(*) as sessionCount,
|
|
222
|
-
COALESCE(SUM(message_count), 0) as messageCount,
|
|
223
|
-
0 as toolCallCount
|
|
224
|
-
FROM sessions
|
|
225
|
-
WHERE created >= date('now', ?)
|
|
226
|
-
GROUP BY date(created)
|
|
227
|
-
ORDER BY date(created)
|
|
228
|
-
`).all(`-${e} days`)}async function Q(){let e=(0,r.getCurrentUser)(),p=(0,a.getUserPaths)(e),E=(0,c.getDb)(),T=0,f=0;return E.transaction(()=>{let r=function(e){if(!s.default.existsSync(e))return{projects:0,sessions:0};let a=s.default.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()),r=0,n=0;for(let o of a){let a=t.default.join(e,o.name),d=o.name,p=function(e){let s=e.split("--");if(s.length<2)return e;let t=s.slice(1).join("/"),a=t.split("-");return"projects"===a[0]&&a.length>1?a.slice(1).join("-"):t}(o.name),c=p,E=t.default.join(a,"sessions-index.json");if(s.default.existsSync(E)){let e=(0,i.parseSessionIndex)(E);if(e?.entries){let i=e.entries.find(e=>e.projectPath);i?.projectPath&&(c=i.projectPath,p=t.default.basename(i.projectPath)),l({id:d,name:p,path:c,claudePath:a,agentType:"claude"}),r++;let o=new Set;for(let s of e.entries)o.add(s.sessionId),u({id:s.sessionId,sessionId:s.sessionId,projectId:d,firstPrompt:s.firstPrompt?.slice(0,500)||"",summary:s.summary||"",messageCount:s.messageCount||0,created:s.created||"",modified:s.modified||"",gitBranch:s.gitBranch||"",projectPath:s.projectPath||"",fullPath:s.fullPath||"",agentType:"claude"}),n++;for(let e of s.default.readdirSync(a).filter(e=>e.endsWith(".jsonl")&&!e.startsWith(".")&&!o.has(e.replace(".jsonl","")))){let s=t.default.join(a,e),r=e.replace(".jsonl","");u({id:r,sessionId:r,projectId:d,firstPrompt:"",summary:"",messageCount:0,created:"",modified:"",gitBranch:"",projectPath:"",fullPath:s,agentType:"claude"}),n++}continue}}for(let e of(l({id:d,name:p,path:c,claudePath:a,agentType:"claude"}),r++,s.default.readdirSync(a).filter(e=>e.endsWith(".jsonl")&&!e.startsWith(".")))){let s=t.default.join(a,e),r=e.replace(".jsonl","");u({id:r,sessionId:r,projectId:d,firstPrompt:"",summary:"",messageCount:0,created:"",modified:"",gitBranch:"",projectPath:"",fullPath:s,agentType:"claude"}),n++}}return{projects:r,sessions:n}}(p.claudeProjectsDir);T+=r.projects,f+=r.sessions;let c=function(e){let s=(0,n.scanCodexSessions)(e);if(0===s.length)return{projects:0,sessions:0};let a=new Map;for(let e of s){let s=e.cwd||"unknown";a.has(s)||a.set(s,[]),a.get(s).push(e)}let r=0,i=0;for(let[e,s]of a){let a="codex-"+e.replace(/[^a-zA-Z0-9]/g,"-").slice(0,80);for(let n of(l({id:a,name:"unknown"!==e?t.default.basename(e):"Codex (unknown)",path:e,claudePath:"",agentType:"codex"}),r++,s))u({id:n.id,sessionId:n.id,projectId:a,firstPrompt:n.firstPrompt||"",summary:"",messageCount:n.messageCount,created:n.timestamp||"",modified:n.modified||"",gitBranch:"",projectPath:e,fullPath:"",agentType:"codex"}),i++}return{projects:r,sessions:i}}(p.codexSessionsDir);T+=c.projects,f+=c.sessions;let m=function(e,s){let a=(0,o.scanGeminiSessions)(e,s);if(0===a.length)return{projects:0,sessions:0};let r=new Map;for(let e of a){let s=e.projectSlug||"unknown";r.has(s)||r.set(s,[]),r.get(s).push(e)}let i=0,n=0;for(let[e,s]of r){let a="gemini-"+e,r=s.find(e=>e.projectPath),o=r?.projectPath||"";for(let r of(l({id:a,name:o?t.default.basename(o):e,path:o,claudePath:"",agentType:"gemini"}),i++,s))u({id:r.sessionId,sessionId:r.sessionId,projectId:a,firstPrompt:r.firstPrompt||"",summary:r.summary||"",messageCount:r.messageCount,created:r.startTime||"",modified:r.lastUpdated||"",gitBranch:"",projectPath:r.projectPath||"",fullPath:r.fullPath||"",agentType:"gemini"}),n++}return{projects:i,sessions:n}}(p.geminiChatsBaseDir,p.geminiProjectsRegistry);T+=m.projects,f+=m.sessions;let g=(0,a.readConfig)(e),_=E.prepare("SELECT DISTINCT project_path FROM sessions WHERE project_path != '' AND project_path IS NOT NULL").all().map(e=>e.project_path),h=function(e){let s=(0,d.scanAiderSessions)(e);if(0===s.length)return{projects:0,sessions:0};let a=0,r=0;for(let e of s){let s=(0,d.aiderProjectId)(e.projectPath),i=(0,d.aiderSessionId)(e.projectPath);l({id:s,name:t.default.basename(e.projectPath),path:e.projectPath,claudePath:"",agentType:"aider"}),a++,u({id:i,sessionId:i,projectId:s,firstPrompt:e.firstPrompt||"",summary:"",messageCount:e.messageCount,created:e.created||"",modified:e.modified||"",gitBranch:"",projectPath:e.projectPath,fullPath:t.default.join(e.projectPath,".aider.chat.history.md"),agentType:"aider"}),r++}return{projects:a,sessions:r}}([...new Set([...g.devDirectories||[],..._])]);T+=h.projects,f+=h.sessions})(),{projects:T,sessions:f}}async function Z(){let e=(0,c.getDb)(),t=e.prepare(`
|
|
229
|
-
SELECT id, full_path FROM sessions
|
|
230
|
-
WHERE ((first_prompt = '' OR first_prompt IS NULL) OR (message_count = 0 OR message_count IS NULL))
|
|
231
|
-
AND full_path != ''
|
|
232
|
-
`).all(),a=0;for(let r of t){if(!s.default.existsSync(r.full_path))continue;let t=await (0,i.scanJSONLMetadata)(r.full_path);t&&(e.prepare(`
|
|
233
|
-
UPDATE sessions SET
|
|
234
|
-
first_prompt = ?, message_count = ?, created = ?, modified = ?,
|
|
235
|
-
git_branch = ?, project_path = ?
|
|
236
|
-
WHERE id = ?
|
|
237
|
-
`).run(t.firstPrompt,t.messageCount,t.created,t.modified,t.gitBranch,t.projectPath,r.id),a++)}return a}async function ee(e){let t=(0,c.getDb)().prepare(`
|
|
238
|
-
SELECT s.id, s.full_path FROM sessions s
|
|
239
|
-
LEFT JOIN sessions_fts f ON f.session_id = s.id
|
|
240
|
-
WHERE f.session_id IS NULL AND s.full_path != ''
|
|
241
|
-
`).all(),a=0;for(let r of t)if(s.default.existsSync(r.full_path)){try{let e=await (0,i.extractAllText)(r.full_path);e&&(k(r.id,e),a++)}catch{}e?.(a,t.length)}return a}e.s(["addSessionToWorkspace",()=>h,"addTagToSession",()=>O,"bulkAddTag",()=>P,"bulkAddToWorkspace",()=>U,"bulkStar",()=>b,"createPane",()=>v,"createTag",()=>N,"createWorkspace",()=>_,"deletePane",()=>Y,"deleteTag",()=>y,"deleteWorkspaceFull",()=>V,"duplicateWorkspace",()=>$,"getActivePanes",()=>X,"getActiveWorkspace",()=>J,"getAllProjects",()=>E,"getAllTags",()=>R,"getAnalyticsOverview",()=>q,"getDailyActivity",()=>z,"getPaneById",()=>B,"getPanesByWorkspace",()=>x,"getSessionById",()=>f,"getSessionTags",()=>L,"getSessionWorkspaces",()=>F,"getSessions",()=>T,"getWorkspaceSessions",()=>j,"getWorkspacesForSession",()=>C,"removeSessionFromWorkspace",()=>S,"removeTagFromSessionByName",()=>I,"renameSession",()=>D,"searchSessions",()=>W,"switchWorkspace",()=>K,"toggleStar",()=>m,"updatePane",()=>G,"updateSessionNotes",()=>g,"updateTagColor",()=>w,"updateWorkspace",()=>A,"upsertFtsContent",()=>k,"upsertProject",()=>l,"upsertSession",()=>u],50837),e.s(["buildFtsIndex",()=>ee,"enrichMissingSessions",()=>Z,"fullSync",()=>Q],60569)}];
|
|
242
|
-
|
|
243
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__b71497ab._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},18167,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let a=null,n=!1;function o(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{a=(0,t.createRequire)(e)("@spaces/pro");break}catch{}n=!0}return a}e.s(["getPro",()=>o])},94343,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),R=e.i(74838),x=e.i(10372),f=e.i(93695);e.i(52474);var v=e.i(220),g=e.i(18167);async function w(e){let t=(0,g.getPro)();return t?.network.api.handshake.GET(e)??Response.json({error:"Requires @spaces/pro"},{status:404})}e.s(["GET",()=>w],86603);var E=e.i(86603);let m=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/network/handshake/route",pathname:"/api/network/handshake",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/network/handshake/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:y,serverHooks:k}=m;function A(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:y})}async function b(e,t,a){m.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/network/handshake/route";g=g.replace(/\/index$/,"")||"/";let w=await m.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,params:C,nextConfig:y,parsedUrl:k,isDraftMode:A,prerenderManifest:b,routerServerContext:T,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,resolvedPathname:q,clientReferenceManifest:O,serverActionsManifest:_}=w,j=(0,i.normalizeAppPath)(g),S=!!(b.dynamicRoutes[j]||b.routes[q]),H=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,k,!1):t.end("This page could not be found"),null);if(S&&!A){let e=!!b.routes[q],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await H();throw new f.NoFallbackError}}let U=null;!S||m.isDev||A||(U="/index"===(U=q)?"/":U);let I=!0===m.isDev||!S,D=S&&!I;_&&O&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:O,serverActionsManifest:_});let M=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:C,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>m.onRequestError(e,t,a,n,T)},sharedContext:{buildId:E}},B=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),L=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let s=async e=>m.handle(L,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&P&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(B,G,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await m.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,T),t}},u=await m.handleResponse({req:e,nextConfig:y,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!S)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&S||f.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(B,G,new Response(u.value.body,{headers:f,status:u.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,T),S)throw t;return await (0,c.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>b,"patchFetch",()=>A,"routeModule",()=>m,"serverHooks",()=>k,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>y],94343)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__bef2ed87._.js.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
module.exports=[22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...d(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},13434,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),m=e.i(93695);e.i(52474);var x=e.i(220),y=e.i(33405),v=e.i(79832),S=e.i(65836),w=e.i(50837);async function R(t,{params:r}){let s=(0,v.getAuthUser)(t);return(0,v.withUser)(s,async()=>{await (0,S.ensureInitialized)();let{id:s}=await r,{message:n,cwd:a}=await t.json();if(!n||"string"!=typeof n)return new Response(JSON.stringify({error:"Message is required"}),{status:400,headers:{"Content-Type":"application/json"}});let i=(0,w.getSessionById)(s),o=a||i?.projectPath||e.r(46786).homedir(),l=new TextEncoder;return new Response(new ReadableStream({start(e){let r={...process.env};delete r.CLAUDECODE;let a=(0,y.spawn)("claude",["--resume",s,"-p",n,"--output-format","stream-json","--verbose"],{cwd:o,env:r,stdio:["pipe","pipe","pipe"]});a.stdin.end();let i=setTimeout(()=>{e.enqueue(l.encode(`data: ${JSON.stringify({type:"error",text:"Timed out after 5 minutes"})}
|
|
2
|
-
|
|
3
|
-
`)),a.kill("SIGTERM")},3e5),d="";a.stdout.on("data",t=>{let r=(d+=t.toString()).split("\n");for(let t of(d=r.pop()||"",r))if(t.trim())try{let r=JSON.parse(t);e.enqueue(l.encode(`data: ${JSON.stringify(r)}
|
|
4
|
-
|
|
5
|
-
`))}catch{e.enqueue(l.encode(`data: ${JSON.stringify({type:"text",text:t})}
|
|
6
|
-
|
|
7
|
-
`))}}),a.stderr.on("data",t=>{let r=t.toString();e.enqueue(l.encode(`data: ${JSON.stringify({type:"stderr",text:r})}
|
|
8
|
-
|
|
9
|
-
`))}),a.on("close",t=>{if(clearTimeout(i),d.trim())try{let t=JSON.parse(d);e.enqueue(l.encode(`data: ${JSON.stringify(t)}
|
|
10
|
-
|
|
11
|
-
`))}catch{e.enqueue(l.encode(`data: ${JSON.stringify({type:"text",text:d})}
|
|
12
|
-
|
|
13
|
-
`))}e.enqueue(l.encode(`data: ${JSON.stringify({type:"done",exitCode:t})}
|
|
14
|
-
|
|
15
|
-
`)),e.close()}),a.on("error",t=>{clearTimeout(i),e.enqueue(l.encode(`data: ${JSON.stringify({type:"error",text:t.message})}
|
|
16
|
-
|
|
17
|
-
`)),e.close()}),t.signal.addEventListener("abort",()=>{clearTimeout(i),a.kill("SIGTERM")})}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})})}e.s(["POST",()=>R,"dynamic",0,"force-dynamic"],46898);var b=e.i(46898);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/chat/route",pathname:"/api/sessions/[id]/chat",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/[id]/chat/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:j,workUnitAsyncStorage:C,serverHooks:T}=E;function A(){return(0,s.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:C})}async function O(e,t,s){E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/sessions/[id]/chat/route";y=y.replace(/\/index$/,"")||"/";let v=await E.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:S,params:w,nextConfig:R,parsedUrl:b,isDraftMode:j,prerenderManifest:C,routerServerContext:T,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,resolvedPathname:N,clientReferenceManifest:q,serverActionsManifest:_}=v,k=(0,o.normalizeAppPath)(y),P=!!(C.dynamicRoutes[k]||C.routes[N]),I=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,b,!1):t.end("This page could not be found"),null);if(P&&!j){let e=!!C.routes[N],t=C.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await I();throw new m.NoFallbackError}}let U=null;!P||E.isDev||j||(U="/index"===(U=N)?"/":U);let D=!0===E.isDev||!P,$=P&&!D;_&&q&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:q,serverActionsManifest:_});let H=e.method||"GET",M=(0,a.getTracer)(),F=M.getActiveScopeSpan(),J={params:w,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>E.onRequestError(e,t,s,n,T)},sharedContext:{buildId:S}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),K=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let i=async e=>E.handle(K,J).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${H} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&A&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=J.renderOpts.fetchMetrics;let l=J.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=J.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(L,B,a,J.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&J.renderOpts.collectedRevalidate,s=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:J.renderOpts.collectedExpire;return{value:{kind:x.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,T),t}},c=await E.handleResponse({req:e,nextConfig:R,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:O,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!P)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&P||m.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(L,B,new Response(c.value.body,{headers:m,status:c.value.status||200})),null};F?await l(F):await M.withPropagatedContext(e.headers,()=>M.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:A})},!1,T),P)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>A,"routeModule",()=>E,"serverHooks",()=>T,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>C],13434)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__c525457e._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function d(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function c(e,t){let s={...d(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>d,"writeConfig",()=>c])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},77981,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),v=e.i(89171),y=e.i(79832),w=e.i(65836),R=e.i(50837);async function j(e){let t=(0,y.getAuthUser)(e);return(0,y.withUser)(t,async()=>{await (0,w.ensureInitialized)();let e=(0,R.getAllProjects)();return v.NextResponse.json(e)})}e.s(["GET",()=>j],50364);var b=e.i(50364);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:E,workUnitAsyncStorage:A,serverHooks:C}=S;function T(){return(0,s.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:A})}async function _(e,t,s){S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/projects/route";v=v.replace(/\/index$/,"")||"/";let y=await S.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:j,parsedUrl:b,isDraftMode:E,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:U}=y,I=(0,o.normalizeAppPath)(v),O=!!(A.dynamicRoutes[I]||A.routes[k]),D=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,b,!1):t.end("This page could not be found"),null);if(O&&!E){let e=!!A.routes[k],t=A.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await D();throw new x.NoFallbackError}}let N=null;!O||S.isDev||E||(N="/index"===(N=k)?"/":N);let q=!0===S.isDev||!O,H=O&&!q;U&&P&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:P,serverActionsManifest:U});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>S.onRequestError(e,t,s,n,C)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let i=async e=>S.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${v}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&T&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=L.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),t}},c=await S.handleResponse({req:e,nextConfig:j,cacheKey:N,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!O)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&O||x.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,K,new Response(c.value.body,{headers:x,status:c.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:T})},!1,C),O)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>T,"routeModule",()=>S,"serverHooks",()=>C,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>A],77981)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__ccc27199._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function c(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function d(e,t){let s={...c(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>c,"writeConfig",()=>d])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},25068,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),y=e.i(79832),v=e.i(65836),w=e.i(99944);let R=()=>Response.json({error:"Requires @spaces/teams"},{status:404});async function E(e,t){let r=(0,y.getAuthUser)(e);return(0,y.withUser)(r,async()=>(await (0,v.ensureInitialized)(),(0,w.getTeams)()?.api.context.GET(e,t)??R()))}async function b(e,t){let r=(0,y.getAuthUser)(e);return(0,y.withUser)(r,async()=>(await (0,v.ensureInitialized)(),(0,w.getTeams)()?.api.context.DELETE(e,t)??R()))}e.s(["DELETE",()=>b,"GET",()=>E],52643);var S=e.i(52643);let j=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/workspaces/[id]/context/route",pathname:"/api/workspaces/[id]/context",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/workspaces/[id]/context/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:A,workUnitAsyncStorage:T,serverHooks:C}=j;function k(){return(0,s.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:T})}async function _(e,t,s){j.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/workspaces/[id]/context/route";y=y.replace(/\/index$/,"")||"/";let v=await j.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,params:R,nextConfig:E,parsedUrl:b,isDraftMode:S,prerenderManifest:A,routerServerContext:T,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,resolvedPathname:_,clientReferenceManifest:U,serverActionsManifest:P}=v,D=(0,o.normalizeAppPath)(y),I=!!(A.dynamicRoutes[D]||A.routes[_]),O=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,b,!1):t.end("This page could not be found"),null);if(I&&!S){let e=!!A.routes[_],t=A.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await O();throw new x.NoFallbackError}}let q=null;!I||j.isDev||S||(q="/index"===(q=_)?"/":q);let N=!0===j.isDev||!I,H=I&&!N;P&&U&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:U,serverActionsManifest:P});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:N,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>j.onRequestError(e,t,s,n,T)},sharedContext:{buildId:w}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let i=async e=>j.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${y}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&C&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[g.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await j.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,T),t}},d=await j.handleResponse({req:e,nextConfig:E,cacheKey:q,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:k,responseGenerator:c,waitUntil:s.waitUntil,isMinimalMode:o});if(!I)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&I||x.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,K,new Response(d.value.body,{headers:x,status:d.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${y}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await j.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,T),I)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>k,"routeModule",()=>j,"serverHooks",()=>C,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>T],25068)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__ce5edd98._.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},18167,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/pro");break}catch{}n=!0}return s}e.s(["getPro",()=>a])},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),r=e.i(22734),s=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let r=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(r=t.admin.resolveShellUser(e))}catch{}let n=r===s.default.userInfo().username?s.default.homedir():`/home/${r}`,o=r===s.default.userInfo().username?t.default.join(s.default.homedir(),".spaces"):t.default.join(s.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function l(e){let{spacesDir:t}=o(e);r.default.existsSync(t)||r.default.mkdirSync(t,{recursive:!0})}function c(e){let{configPath:t,spacesDir:s}=o(e);try{if(r.default.existsSync(t)){let e=JSON.parse(r.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}r.default.existsSync(s)||r.default.mkdirSync(s,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return r.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function d(e,t){let s={...c(e),...t},{configPath:n}=o(e);return r.default.writeFileSync(n,JSON.stringify(s,null,2)),s}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>l,"getUserPaths",()=>o,"readConfig",()=>c,"writeConfig",()=>d])},10430,(e,t,r)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),r=e.i(46786),s=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return s.HAS_AUTH&&e.headers.get("x-auth-user")||r.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||r.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let s=null,n=!1;function a(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{s=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return s}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.2",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,s="federation"===t,n=!r;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:s,hasMultiuser:r,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>a])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},65836,e=>{"use strict";var t=e.i(7304),r=e.i(60569),s=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function l(){let l=(0,s.getCurrentUser)();if(!a.has(l)){if((0,t.getDb)(),a.add(l),!o){o=!0;let r=(0,n.getTeams)();if(r){let{sseManager:s}=await e.A(72354);r.init({getDb:t.getDb,sseManager:s})}}if(!i.has(l)){i.add(l);try{let e=await (0,r.fullSync)();console.log(`[spaces:${l}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,r.enrichMissingSessions)();t>0&&console.log(`[spaces:${l}] Enriched ${t} sessions from JSONL`),(0,r.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${l}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${l}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${l}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${l}] Sync error:`,e)}finally{i.delete(l)}}}}e.s(["ensureInitialized",()=>l])},41552,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(74838),g=e.i(10372),x=e.i(93695);e.i(52474);var m=e.i(220),v=e.i(89171),w=e.i(79832),y=e.i(65836),R=e.i(7304),j=e.i(50837),b=e.i(18167);async function S(e){let t=(0,w.getAuthUser)(e);return(0,w.withUser)(t,async()=>{await (0,y.ensureInitialized)();let t=(0,R.getDb)().prepare(`
|
|
2
|
-
SELECT w.id, w.name, w.description, w.color, w.created, w.is_active as isActive,
|
|
3
|
-
w.collaboration,
|
|
4
|
-
COUNT(p.id) as paneCount
|
|
5
|
-
FROM workspaces w
|
|
6
|
-
LEFT JOIN panes p ON p.workspace_id = w.id
|
|
7
|
-
GROUP BY w.id
|
|
8
|
-
ORDER BY w.created ASC
|
|
9
|
-
`).all().map(e=>({id:e.id,name:e.name,description:e.description,color:e.color,created:e.created,isActive:!!e.isActive,collaboration:!!e.collaboration,paneCount:e.paneCount}));if("all"===(e.nextUrl.searchParams.get("nodes")||"").replace(/\/+$/,""))try{let{aggregateWorkspaces:e}=(0,b.getPro)().network,r=await e();return v.NextResponse.json({local:t,remote:r.nodes,errors:r.errors})}catch{}return v.NextResponse.json(t)})}async function E(e){let t=(0,w.getAuthUser)(e);return(0,w.withUser)(t,async()=>{await (0,y.ensureInitialized)();let t=await e.json();if("switch"===t.action)return(0,j.switchWorkspace)(t.workspaceId),v.NextResponse.json({ok:!0});if("duplicate"===t.action){let e=(0,j.duplicateWorkspace)(t.sourceId,t.name,t.color);return v.NextResponse.json(e)}if("active"===t.action){let e=(0,j.getActiveWorkspace)();return v.NextResponse.json(e)}let r=(0,j.createWorkspace)(t.name,t.description,t.color);return v.NextResponse.json(r)})}e.s(["GET",()=>S,"POST",()=>E],30077);var A=e.i(30077);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/workspaces/route",pathname:"/api/workspaces",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/workspaces/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:C,workUnitAsyncStorage:T,serverHooks:N}=k;function O(){return(0,s.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:T})}async function P(e,t,s){k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/workspaces/route";v=v.replace(/\/index$/,"")||"/";let w=await k.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:y,params:R,nextConfig:j,parsedUrl:b,isDraftMode:S,prerenderManifest:E,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:N,clientReferenceManifest:O,serverActionsManifest:P}=w,_=(0,o.normalizeAppPath)(v),U=!!(E.dynamicRoutes[_]||E.routes[N]),I=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(U&&!S){let e=!!E.routes[N],t=E.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(j.experimental.adapterPath)return await I();throw new x.NoFallbackError}}let D=null;!U||k.isDev||S||(D="/index"===(D=N)?"/":D);let q=!0===k.isDev||!U,H=U&&!q;P&&O&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:O,serverActionsManifest:P});let $=e.method||"GET",F=(0,a.getTracer)(),M=F.getActiveScopeSpan(),L={params:R,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!j.experimental.authInterrupts},cacheComponents:!!j.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:j.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>k.onRequestError(e,t,s,n,A)},sharedContext:{buildId:y}},B=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),G=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let i=async e=>k.handle(G,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${v}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var a,l;let c=async({previousCacheEntry:r})=>{try{if(!o&&C&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let l=L.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let c=L.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(B,K,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[g.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,A),t}},d=await k.handleResponse({req:e,nextConfig:j,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:s.waitUntil,isMinimalMode:o});if(!U)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",C?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&U||x.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,K,new Response(d.value.body,{headers:x,status:d.value.status||200})),null};M?await l(M):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:C})},!1,A),U)throw t;return await (0,p.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>O,"routeModule",()=>k,"serverHooks",()=>N,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>T],41552)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
10
|
-
|
|
11
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__dd2e81be._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},18167,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let a=null,n=!1;function o(){if(!n){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{a=(0,t.createRequire)(e)("@spaces/pro");break}catch{}n=!0}return a}e.s(["getPro",()=>o])},88706,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),R=e.i(74838),x=e.i(10372),f=e.i(93695);e.i(52474);var v=e.i(220),w=e.i(18167);async function g(e,t){let r=(0,w.getPro)();return r?.network.api.workspacesById.GET(e,t)??Response.json({error:"Requires @spaces/pro"},{status:404})}e.s(["GET",()=>g],53898);var E=e.i(53898);let m=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/network/workspaces/[id]/route",pathname:"/api/network/workspaces/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/network/workspaces/[id]/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:y,serverHooks:k}=m;function A(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:y})}async function b(e,t,a){m.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/network/workspaces/[id]/route";w=w.replace(/\/index$/,"")||"/";let g=await m.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,params:C,nextConfig:y,parsedUrl:k,isDraftMode:A,prerenderManifest:b,routerServerContext:T,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,resolvedPathname:q,clientReferenceManifest:O,serverActionsManifest:_}=g,j=(0,i.normalizeAppPath)(w),S=!!(b.dynamicRoutes[j]||b.routes[q]),H=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,k,!1):t.end("This page could not be found"),null);if(S&&!A){let e=!!b.routes[q],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await H();throw new f.NoFallbackError}}let I=null;!S||m.isDev||A||(I="/index"===(I=q)?"/":I);let U=!0===m.isDev||!S,D=S&&!U;_&&O&&(0,s.setManifestsSingleton)({page:w,clientReferenceManifest:O,serverActionsManifest:_});let M=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:C,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>m.onRequestError(e,t,a,n,T)},sharedContext:{buildId:E}},B=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),L=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let s=async e=>m.handle(L,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${w}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&P&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(B,G,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await m.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,T),t}},u=await m.handleResponse({req:e,nextConfig:y,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!S)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&S||f.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,R.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(B,G,new Response(u.value.body,{headers:f,status:u.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${w}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await m.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,T),S)throw t;return await (0,c.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>b,"patchFetch",()=>A,"routeModule",()=>m,"serverHooks",()=>k,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>y],88706)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__e2b78951._.js.map
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},68054,e=>{"use strict";let t=(0,e.i(75254).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],68054)},43531,e=>{"use strict";let t=(0,e.i(75254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],43531)},31278,e=>{"use strict";let t=(0,e.i(75254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],31278)},37727,e=>{"use strict";let t=(0,e.i(75254).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],37727)},88699,e=>{"use strict";let t=(0,e.i(75254).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],88699)},73359,e=>{"use strict";let t={shell:{id:"shell",name:"Shell",command:"",resumeFlag:"",supportsResume:!1,color:"#71717a",description:"Plain terminal shell"},claude:{id:"claude",name:"Claude Code",command:"claude",resumeFlag:"--resume",supportsResume:!0,color:"#d97706",description:"Anthropic Claude Code CLI"},codex:{id:"codex",name:"Codex CLI",command:"codex",resumeFlag:"resume",supportsResume:!0,color:"#10b981",description:"OpenAI Codex CLI"},gemini:{id:"gemini",name:"Gemini CLI",command:"gemini",resumeFlag:"--resume",supportsResume:!0,color:"#3b82f6",description:"Google Gemini CLI"},aider:{id:"aider",name:"Aider",command:"aider",resumeFlag:"",supportsResume:!1,color:"#8b5cf6",description:"AI pair programming in your terminal"},custom:{id:"custom",name:"Custom",command:"",resumeFlag:"",supportsResume:!1,color:"#ec4899",description:"Custom command"}},s=Object.values(t);e.s(["AGENT_LIST",0,s,"AGENT_TYPES",0,t])},34623,e=>{"use strict";var t=e.i(18050),s=e.i(71645),r=e.i(31278),a=e.i(39616),n=e.i(18566),i=e.i(9165),c=e.i(29320);let l="spaces-terminal-token";function o({children:e}){let o=(0,n.useRouter)(),{isDesktop:d,basePath:u}=(0,c.useTier)(),[m,x]=(0,s.useState)("loading"),[h,p]=(0,s.useState)(""),[f,g]=(0,s.useState)(""),[b,y]=(0,s.useState)(""),[w,k]=(0,s.useState)(!1),j=(0,s.useRef)(null),N=`${u}/spaces_icon.png`;(0,s.useEffect)(()=>{if(d){p("desktop-local"),x("authorized");return}function e(){let e=sessionStorage.getItem(l);if(e){p(e),x("authorized");return}fetch((0,i.api)("/api/auth/totp/status")).then(e=>e.json()).then(e=>{e.enabled?(x("prompt"),setTimeout(()=>j.current?.focus(),100)):x("not-setup")}).catch(()=>x("not-setup"))}fetch((0,i.api)("/api/auth/me")).then(t=>{if(t.ok){p("session-auth"),x("authorized");return}return e()}).catch(()=>e())},[d]);let v=(0,s.useCallback)(async e=>{if(6!==e.length)return;k(!0),y("");let t=await fetch((0,i.api)("/api/auth/totp/verify"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:e,action:"verify"})}),s=await t.json();k(!1),s.success&&s.terminalToken?(sessionStorage.setItem(l,s.terminalToken),p(s.terminalToken),x("authorized")):(y(s.error||"Invalid code"),g(""),j.current?.focus())},[]);return"loading"===m?(0,t.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,t.jsx)(r.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})}):"authorized"===m?(0,t.jsx)(t.Fragment,{children:e(h)}):"not-setup"===m?(0,t.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,t.jsxs)("div",{className:"text-center space-y-4 max-w-sm",children:[(0,t.jsx)("img",{src:N,alt:"Spaces",className:"w-12 h-12 mx-auto opacity-40"}),(0,t.jsx)("h2",{className:"text-lg font-semibold text-white",children:"2FA Required"}),(0,t.jsx)("p",{className:"text-sm text-zinc-400",children:"Two-factor authentication must be set up before you can use terminals."}),(0,t.jsxs)("button",{onClick:()=>o.push("/settings"),className:"inline-flex items-center gap-2 px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500",children:[(0,t.jsx)(a.Settings,{className:"w-4 h-4"}),"Go to Settings"]})]})}):(0,t.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,t.jsxs)("div",{className:"text-center space-y-4 max-w-sm",children:[(0,t.jsx)("img",{src:N,alt:"Spaces",className:"w-12 h-12 mx-auto"}),(0,t.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Terminal Verification"}),(0,t.jsx)("p",{className:"text-sm text-zinc-400",children:"Enter the 6-digit code from your authenticator app."}),(0,t.jsxs)("div",{children:[(0,t.jsx)("input",{ref:j,type:"text",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"000000",value:f,onChange:e=>{let t;g(t=e.target.value.replace(/\D/g,"").slice(0,6)),y(""),6===t.length&&v(t)},disabled:w,className:"w-48 px-3 py-3 text-2xl font-mono tracking-[0.4em] text-center bg-zinc-800 border border-zinc-700 rounded-lg focus:outline-none focus:border-indigo-500 text-white disabled:opacity-50",autoFocus:!0}),w&&(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 mt-3 text-xs text-zinc-400",children:[(0,t.jsx)(r.Loader2,{className:"w-3 h-3 animate-spin"}),"Verifying..."]}),b&&(0,t.jsx)("p",{className:"text-sm text-red-400 mt-3",children:b})]}),(0,t.jsx)("p",{className:"text-[11px] text-zinc-600",children:"Token is valid for 8 hours after verification."})]})})}e.s(["TotpGate",()=>o])},24134,e=>{"use strict";var t=e.i(47167),s=e.i(18050),r=e.i(71645),a=e.i(74080),n=e.i(37727),i=e.i(88699),c=e.i(43531),l=e.i(75254);let o=(0,l.default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),d=(0,l.default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),u=(0,l.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]),m=(0,l.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var x=e.i(48256),h=e.i(61911),p=e.i(75157),f=e.i(73359);let g=t.default.env.NEXT_PUBLIC_WS_PATH;function b({pane:t,onClose:l,onUpdate:b,isMaximized:y,onToggleMaximize:w,onPopout:k,isPopout:j,terminalToken:N,workspaceCollaboration:v}){let C=(0,r.useRef)(null),z=(0,r.useRef)(null),S=(0,r.useRef)(null),T=(0,r.useRef)(null),[R,A]=(0,r.useState)(!1),[P,E]=(0,r.useState)(!1),[I,M]=(0,r.useState)(t.title),[F,L]=(0,r.useState)(!1),[$,G]=(0,r.useState)({x:0,y:0}),O=(0,r.useRef)(null),q=(0,r.useRef)(null),[B,_]=(0,r.useState)(!1),J=(0,r.useRef)(t);J.current=t;let W=(0,r.useRef)(b);W.current=b;let H=(0,r.useRef)(N);H.current=N;let U=(0,r.useRef)(!1),Y=(0,r.useRef)(!1),D=(0,r.useRef)(null),V=(0,r.useRef)(0),K=(0,r.useCallback)(async()=>{if(!C.current)return;J.current,Y.current=!1,V.current=0;let{Terminal:t}=await e.A(16049),{FitAddon:s}=await e.A(59439),{WebLinksAddon:r}=await e.A(16091);z.current&&z.current.dispose();let a=new t({cursorBlink:!0,fontSize:13,fontFamily:"'Cascadia Code', 'Fira Code', 'JetBrains Mono', Consolas, monospace",theme:{background:"#0a0a0a",foreground:"#e4e4e7",cursor:"#6366f1",selectionBackground:"#6366f133",black:"#18181b",red:"#ef4444",green:"#22c55e",yellow:"#eab308",blue:"#3b82f6",magenta:"#a855f7",cyan:"#06b6d4",white:"#e4e4e7",brightBlack:"#52525b",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#facc15",brightBlue:"#60a5fa",brightMagenta:"#c084fc",brightCyan:"#22d3ee",brightWhite:"#fafafa"},allowProposedApi:!0}),n=new s,i=new r;a.loadAddon(n),a.loadAddon(i),await new Promise(e=>requestAnimationFrame(()=>{if(C.current){a.open(C.current);try{n.fit()}catch{}}e()})),z.current=a,T.current=n;let c=()=>{try{n.fit()}catch{}};requestAnimationFrame(()=>requestAnimationFrame(c)),setTimeout(c,300);let l=()=>{let e,t,s,r,n;if(Y.current)return;V.current>0&&(a.write("\x1b[2J\x1b[H"),a.clear());let i=new WebSocket((t=new URLSearchParams({paneId:(e=J.current).id,cwd:e.cwd,agentType:e.agentType||"shell",cols:String(a.cols),rows:String(a.rows)}),e.claudeSessionId&&t.set("agentSession",e.claudeSessionId),e.customCommand&&t.set("customCommand",e.customCommand),e.nodeId&&t.set("nodeId",e.nodeId),(s=H.current)&&t.set("terminalToken",s),r=g||"/ws",n="https:"===location.protocol?"wss:":"ws:",`${n}//${location.host}${r}?${t}`));S.current=i,i.onopen=()=>{A(!0),_(!1),U.current=!1,V.current=0,setTimeout(()=>{if(T.current)try{T.current.fit()}catch{}},150)},i.onmessage=e=>{try{let t=JSON.parse(e.data);if("data"===t.type)a.write(t.data);else if("exit"===t.type){_(!0),U.current=!0;let e=t.reason?` — ${t.reason}`:"";a.write(`\r
|
|
2
|
-
\x1b[90m[Process exited with code ${t.exitCode}${e}]\x1b[0m\r
|
|
3
|
-
`)}else"error"===t.type?a.write(`\r
|
|
4
|
-
\x1b[31m${t.data}\x1b[0m\r
|
|
5
|
-
`):"session-detected"===t.type&&W.current(J.current.id,{claudeSessionId:t.sessionId})}catch{}},i.onclose=()=>{if(A(!1),!U.current&&!Y.current){let e=V.current;if(e<20){let t=Math.min(1e3*Math.pow(1.5,e),3e4);V.current=e+1,D.current=setTimeout(l,t)}}},i.onerror=()=>{A(!1)}};a.onData(e=>{S.current?.readyState===WebSocket.OPEN&&S.current.send(JSON.stringify({type:"data",data:e}))}),a.onResize(({cols:e,rows:t})=>{S.current?.readyState===WebSocket.OPEN&&S.current.send(JSON.stringify({type:"resize",cols:e,rows:t}))}),l()},[]);(0,r.useEffect)(()=>(K(),()=>{Y.current=!0,D.current&&clearTimeout(D.current),S.current?.close(),z.current?.dispose()}),[K]),(0,r.useEffect)(()=>{let e,t=new ResizeObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(()=>{if(T.current)try{T.current.fit()}catch{}})});return C.current&&t.observe(C.current),()=>{cancelAnimationFrame(e),t.disconnect()}},[]),(0,r.useEffect)(()=>{setTimeout(()=>{if(T.current)try{T.current.fit()}catch{}},50)},[y]);let X=()=>{b(t.id,{title:I}),E(!1)};return(0,r.useEffect)(()=>{if(!F)return;let e=e=>{let t=e.target;O.current&&!O.current.contains(t)&&q.current&&!q.current.contains(t)&&L(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[F]),(0,s.jsxs)("div",{className:(0,p.cn)("flex flex-col border rounded-lg overflow-hidden",y?"fixed inset-2 z-50":"","border-zinc-700"),style:{borderColor:`${t.color}60`},children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 text-xs select-none flex-shrink-0",style:{backgroundColor:`${t.color}60`},children:[(0,s.jsxs)("div",{ref:O,className:"flex-shrink-0",children:[(0,s.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();G({x:t.left,y:t.bottom+6}),L(!F)},className:"w-3 h-3 rounded-full hover:ring-2 hover:ring-zinc-500 ring-offset-1 ring-offset-zinc-900 transition-shadow cursor-pointer",style:{backgroundColor:t.color},title:"Change color"}),F&&(0,a.createPortal)((0,s.jsx)("div",{ref:q,className:"fixed z-[9999] bg-zinc-800 border border-zinc-600 rounded-xl p-3 shadow-2xl",style:{left:$.x,top:$.y},children:(0,s.jsx)("div",{className:"grid grid-cols-4 gap-2.5",style:{width:132},children:["#ef4444","#f97316","#f59e0b","#eab308","#84cc16","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#78716c"].map(e=>(0,s.jsx)("button",{onClick:()=>{b(t.id,{color:e}),L(!1)},className:`w-7 h-7 rounded-full border-2 transition-all hover:scale-110 ${t.color===e?"border-white scale-110 shadow-lg":"border-transparent hover:border-zinc-500"}`,style:{backgroundColor:e}},e))})}),document.body)]}),P?(0,s.jsxs)("div",{className:"flex items-center gap-1 flex-1",children:[(0,s.jsx)("input",{autoFocus:!0,value:I,onChange:e=>M(e.target.value),onKeyDown:e=>{"Enter"===e.key&&X(),"Escape"===e.key&&(M(t.title),E(!1))},className:"flex-1 bg-transparent border border-zinc-600 rounded px-1.5 py-0.5 text-xs focus:outline-none focus:border-indigo-400"}),(0,s.jsx)("button",{onClick:X,className:"text-green-400 hover:text-green-300",children:(0,s.jsx)(c.Check,{className:"w-3 h-3"})})]}):(0,s.jsxs)("div",{className:"flex items-center gap-1 flex-1 min-w-0 group/title",children:[(0,s.jsx)("span",{onDoubleClick:()=>E(!0),className:"truncate text-zinc-300 font-medium cursor-default",children:t.title}),(0,s.jsx)("button",{onClick:()=>E(!0),className:"text-zinc-600 hover:text-zinc-300 opacity-0 group-hover/title:opacity-100 transition-opacity flex-shrink-0",title:"Rename",children:(0,s.jsx)(i.Pencil,{className:"w-2.5 h-2.5"})})]}),(0,s.jsx)("span",{className:"text-[10px] text-zinc-500 truncate max-w-[120px]",title:t.cwd,children:t.cwd.split(/[/\\]/).pop()}),t.agentType&&"shell"!==t.agentType&&(0,s.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium",style:{backgroundColor:`${f.AGENT_TYPES[t.agentType]?.color||"#6366f1"}20`,color:f.AGENT_TYPES[t.agentType]?.color||"#6366f1"},children:f.AGENT_TYPES[t.agentType]?.name||t.agentType}),t.nodeId&&(0,s.jsxs)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium bg-blue-500/10 text-blue-400 flex items-center gap-0.5",children:[(0,s.jsx)(x.Globe,{className:"w-2.5 h-2.5"}),"remote"]}),v&&"shell"!==t.agentType&&(0,s.jsx)("button",{onClick:()=>{let e=!t.isCollaborating;b(t.id,{isCollaborating:e}),S.current?.readyState===WebSocket.OPEN&&S.current.send(JSON.stringify({type:"collab-toggle",isCollaborating:e}))},className:`transition-colors ${t.isCollaborating?"text-indigo-400 hover:text-indigo-300":"text-zinc-600 hover:text-zinc-400"}`,title:t.isCollaborating?"Collaborating — click to opt out":"Not collaborating — click to opt in",children:(0,s.jsx)(h.Users,{className:"w-3 h-3"})}),!R&&!B&&(0,s.jsx)("span",{className:"text-[10px] text-yellow-500",children:"connecting..."}),B&&(0,s.jsx)("button",{onClick:()=>{Y.current=!0,D.current&&clearTimeout(D.current),S.current?.close(),z.current?.dispose(),_(!1),U.current=!1,setTimeout(K,100)},className:"text-zinc-400 hover:text-white",title:"Restart",children:(0,s.jsx)(o,{className:"w-3 h-3"})}),!j&&k&&(0,s.jsx)("button",{onClick:()=>{k&&(Y.current=!0,D.current&&clearTimeout(D.current),S.current?.close(),z.current?.dispose(),k(t.id))},className:"text-zinc-400 hover:text-white",title:"Pop out to new window",children:(0,s.jsx)(m,{className:"w-3 h-3"})}),(0,s.jsx)("button",{onClick:()=>w(t.id),className:"text-zinc-400 hover:text-white",title:y?"Restore":"Maximize",children:y?(0,s.jsx)(u,{className:"w-3 h-3"}):(0,s.jsx)(d,{className:"w-3 h-3"})}),(0,s.jsx)("button",{onClick:()=>{confirm("Close this terminal?")&&l(t.id)},className:"text-zinc-400 hover:text-red-400",title:"Close",children:(0,s.jsx)(n.X,{className:"w-3 h-3"})})]}),(0,s.jsx)("div",{ref:C,className:"flex-1 bg-[#0a0a0a]",style:{minHeight:y?"calc(100vh - 100px)":"300px"}})]})}e.s(["TerminalPane",()=>b],24134)},63209,e=>{"use strict";let t=(0,e.i(75254).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],63209)},10160,e=>{"use strict";var t=e.i(18050),s=e.i(71645),r=e.i(18566),a=e.i(31278),n=e.i(71689),i=e.i(48256),c=e.i(68054),l=e.i(63209),o=e.i(24134),d=e.i(34623),u=e.i(9165);function m({params:e}){return(0,t.jsx)(d.TotpGate,{children:s=>(0,t.jsx)(x,{params:e,terminalToken:s})})}function x({params:e,terminalToken:d}){let m=(0,r.useRouter)(),[x,h]=(0,s.useState)(null),[p,f]=(0,s.useState)(null),[g,b]=(0,s.useState)([]),[y,w]=(0,s.useState)(""),[k,j]=(0,s.useState)("#6366f1"),[N,v]=(0,s.useState)(""),[C,z]=(0,s.useState)(!0),[S,T]=(0,s.useState)(null),[R,A]=(0,s.useState)(null);(0,s.useEffect)(()=>{e.then(e=>{h(e.nodeId),f(e.workspaceId)})},[e]),(0,s.useEffect)(()=>{x&&p&&Promise.all([fetch((0,u.api)(`/api/network/proxy/${x}/workspaces/${p}`)).then(e=>{if(!e.ok)throw Error(`Failed to fetch workspace (${e.status})`);return e.json()}),fetch((0,u.api)(`/api/network/proxy/${x}/workspaces`)).then(e=>{if(!e.ok)throw Error(`Failed to fetch workspaces (${e.status})`);return e.json()})]).then(([e,t])=>{b((e.panes||[]).map(e=>({...e,nodeId:x,isPopout:!!e.isPopout})));let s=t.workspaces?.find(e=>String(e.id)===p);s&&(w(s.name),j(s.color),v(s.nodeName||"")),z(!1)}).catch(e=>{T(e.message),z(!1)})},[x,p]);let P=(0,s.useCallback)(()=>{},[]),E=(0,s.useCallback)(()=>{},[]),I=(0,s.useCallback)(e=>{A(t=>t===e?null:e)},[]);if(C)return(0,t.jsx)("div",{className:"flex items-center justify-center h-screen bg-zinc-950",children:(0,t.jsx)(a.Loader2,{className:"w-6 h-6 animate-spin text-indigo-500"})});if(S)return(0,t.jsxs)("div",{className:"h-screen flex flex-col items-center justify-center bg-zinc-950 text-zinc-100",children:[(0,t.jsx)(l.AlertCircle,{className:"w-8 h-8 text-red-500 mb-3"}),(0,t.jsx)("p",{className:"text-sm text-zinc-400 mb-4",children:S}),(0,t.jsxs)("button",{onClick:()=>m.push("/terminal"),className:"flex items-center gap-2 px-4 py-2 text-sm border border-zinc-700 text-zinc-400 rounded-lg hover:text-white hover:border-zinc-500 transition-colors",children:[(0,t.jsx)(n.ArrowLeft,{className:"w-4 h-4"}),"Back to Spaces"]})]});let M=g.filter(e=>!e.isPopout);return(0,t.jsxs)("div",{className:"h-screen flex flex-col bg-zinc-950 text-zinc-100",children:[(0,t.jsx)("div",{className:"flex items-center justify-between px-4 py-2 border-b border-zinc-800 flex-shrink-0",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{onClick:()=>m.push("/terminal"),className:"p-1.5 -ml-1 text-zinc-500 hover:text-white hover:bg-zinc-800 rounded-md transition-colors",title:"Back to Spaces",children:(0,t.jsx)(n.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsx)("div",{className:"w-px h-4 bg-zinc-800"}),(0,t.jsx)(i.Globe,{className:"w-3.5 h-3.5 text-zinc-500"}),(0,t.jsx)("span",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:k}}),(0,t.jsx)("span",{className:"text-sm font-semibold",children:y||"Remote Workspace"}),N&&(0,t.jsxs)("span",{className:"text-xs text-zinc-500",children:["on ",N]}),(0,t.jsxs)("span",{className:"text-[11px] text-zinc-500",children:[M.length," pane",1!==M.length?"s":""]})]})}),0===M.length?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,t.jsxs)("div",{className:"text-center space-y-2",children:[(0,t.jsx)(c.Terminal,{className:"w-10 h-10 text-zinc-700 mx-auto"}),(0,t.jsx)("p",{className:"text-zinc-500 text-sm",children:"This remote workspace has no panes."})]})}):(0,t.jsx)("div",{className:"flex-1 p-2 gap-2 overflow-auto",style:{display:"grid",gridTemplateColumns:1===M.length?"1fr":M.length<=2||M.length<=4?"repeat(2, 1fr)":"repeat(3, 1fr)",gridAutoRows:M.length<=2?"1fr":"minmax(300px, 1fr)"},children:M.map(e=>R&&R!==e.id?null:(0,t.jsx)(o.TerminalPane,{pane:e,onClose:P,onUpdate:E,isMaximized:R===e.id,onToggleMaximize:I,terminalToken:d},e.id))})]})}e.s(["default",()=>m])},16049,e=>{e.v(t=>Promise.all(["static/chunks/e40d2bd3b4ce8192.js"].map(t=>e.l(t))).then(()=>t(44908)))},59439,e=>{e.v(t=>Promise.all(["static/chunks/af8bfb72187b7cbf.js"].map(t=>e.l(t))).then(()=>t(93309)))},16091,e=>{e.v(t=>Promise.all(["static/chunks/9768207ca0a51abd.js"].map(t=>e.l(t))).then(()=>t(52216)))}]);
|