@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
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
module.exports=[24725,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,s)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,s)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),s=e.i(22734),r=e.i(46786),a=e.i(54799),n=e.i(17516),i=e.i(99944);function o(e){let a,o=e;if(n.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(o=t.admin.resolveShellUser(e))}catch{}if(o===r.default.userInfo().username)a=r.default.homedir();else if(1){let e=t.default.dirname(r.default.homedir()),n=t.default.join(e,o);a=s.default.existsSync(n)?n:r.default.homedir()}else a=`/home/${o}`;let d=o===r.default.userInfo().username?t.default.join(r.default.homedir(),".spaces"):t.default.join(r.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(a,".claude"),claudeProjectsDir:t.default.join(a,".claude","projects"),statsPath:t.default.join(a,".claude","stats-cache.json"),codexDir:t.default.join(a,".codex"),codexSessionsDir:t.default.join(a,".codex","sessions"),geminiDir:t.default.join(a,".gemini"),geminiChatsBaseDir:t.default.join(a,".gemini","tmp"),geminiProjectsRegistry:t.default.join(a,".gemini","projects.json"),spacesDir:d,dbPath:t.default.join(d,"spaces.db"),configPath:t.default.join(d,"config.json")}}function d(e){let{spacesDir:t}=o(e);s.default.existsSync(t)||s.default.mkdirSync(t,{recursive:!0})}function l(e){let{configPath:t,spacesDir:r}=o(e);try{if(s.default.existsSync(t)){let e=JSON.parse(s.default.readFileSync(t,"utf-8"));return{installId:e.installId||a.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}s.default.existsSync(r)||s.default.mkdirSync(r,{recursive:!0});let n={installId:a.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return s.default.writeFileSync(t,JSON.stringify(n,null,2)),n}function c(e,t){let r={...l(e),...t},{configPath:a}=o(e);return s.default.writeFileSync(a,JSON.stringify(r,null,2)),r}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>d,"getUserPaths",()=>o,"readConfig",()=>l,"writeConfig",()=>c])},10430,(e,t,s)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),s=e.i(46786),r=e.i(17516);let a=new t.AsyncLocalStorage;function n(e){return r.HAS_AUTH&&e.headers.get("x-auth-user")||s.default.userInfo().username}function i(e,t){return a.run(e,t)}function o(){let e=a.getStore();return e||s.default.userInfo().username}e.s(["getAuthUser",()=>n,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,s)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,s)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,s)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),s=e.i(14747);let r=null,a=!1;function n(){if(!a){for(let e of function(){let e=[s.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(s.default.delimiter))t&&e.push(s.default.join(t,"_anchor.js"));return e}())try{r=(0,t.createRequire)(e)("@spaces/teams");break}catch{}a=!0}return r}function i(){return null!==n()}e.s(["getTeams",()=>n,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.4",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),s="team"===t||"federation"===t,r="federation"===t,a=!s;function n(){let n="0.0.0";try{n=e.r(4730).version}catch{}return{tier:t,version:n,hasAuth:s,hasAdmin:s,hasCollaboration:s,hasNetwork:r,hasMultiuser:s,isDesktop:a,basePath:""}}e.s(["HAS_AUTH",0,s,"HAS_MULTIUSER",0,s,"getTierFlags",()=>n])},46786,(e,t,s)=>{t.exports=e.x("os",()=>require("os"))},85148,(e,t,s)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},7304,e=>{"use strict";var t=e.i(85148),s=e.i(15286),r=e.i(79832);let a=new Map;function n(){let n=(0,r.getCurrentUser)(),i=a.get(n);if(i)return i;(0,s.ensureUserSpacesDir)(n);let{dbPath:o}=(0,s.getUserPaths)(n),d=new t.default(o);return d.pragma("journal_mode = WAL"),d.pragma("synchronous = NORMAL"),d.pragma("foreign_keys = ON"),function(t){let s;t.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
name TEXT NOT NULL,
|
|
5
|
+
path TEXT NOT NULL,
|
|
6
|
+
claude_path TEXT NOT NULL,
|
|
7
|
+
session_count INTEGER DEFAULT 0,
|
|
8
|
+
last_activity TEXT
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
12
|
+
id TEXT PRIMARY KEY,
|
|
13
|
+
session_id TEXT NOT NULL,
|
|
14
|
+
project_id TEXT NOT NULL,
|
|
15
|
+
first_prompt TEXT,
|
|
16
|
+
summary TEXT,
|
|
17
|
+
message_count INTEGER DEFAULT 0,
|
|
18
|
+
created TEXT,
|
|
19
|
+
modified TEXT,
|
|
20
|
+
git_branch TEXT,
|
|
21
|
+
project_path TEXT,
|
|
22
|
+
full_path TEXT NOT NULL,
|
|
23
|
+
starred INTEGER DEFAULT 0,
|
|
24
|
+
custom_name TEXT,
|
|
25
|
+
notes TEXT,
|
|
26
|
+
FOREIGN KEY (project_id) REFERENCES projects(id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_created ON sessions(created);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_modified ON sessions(modified);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_starred ON sessions(starred);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
35
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
36
|
+
name TEXT NOT NULL,
|
|
37
|
+
description TEXT DEFAULT '',
|
|
38
|
+
color TEXT DEFAULT '#6366f1',
|
|
39
|
+
created TEXT DEFAULT (datetime('now'))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS workspace_sessions (
|
|
43
|
+
workspace_id INTEGER NOT NULL,
|
|
44
|
+
session_id TEXT NOT NULL,
|
|
45
|
+
PRIMARY KEY (workspace_id, session_id),
|
|
46
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
47
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
51
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
|
+
name TEXT NOT NULL UNIQUE,
|
|
53
|
+
color TEXT DEFAULT '#8b5cf6'
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS session_tags (
|
|
57
|
+
session_id TEXT NOT NULL,
|
|
58
|
+
tag_id INTEGER NOT NULL,
|
|
59
|
+
PRIMARY KEY (session_id, tag_id),
|
|
60
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
61
|
+
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS sync_state (
|
|
65
|
+
file_path TEXT PRIMARY KEY,
|
|
66
|
+
mtime INTEGER,
|
|
67
|
+
byte_offset INTEGER DEFAULT 0,
|
|
68
|
+
last_synced TEXT DEFAULT (datetime('now'))
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS panes (
|
|
72
|
+
id TEXT PRIMARY KEY,
|
|
73
|
+
title TEXT NOT NULL DEFAULT 'Terminal',
|
|
74
|
+
color TEXT NOT NULL DEFAULT '#6366f1',
|
|
75
|
+
cwd TEXT NOT NULL,
|
|
76
|
+
claude_session_id TEXT,
|
|
77
|
+
grid_col INTEGER NOT NULL DEFAULT 0,
|
|
78
|
+
grid_row INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
shell TEXT,
|
|
81
|
+
created TEXT DEFAULT (datetime('now'))
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS totp (
|
|
85
|
+
username TEXT PRIMARY KEY,
|
|
86
|
+
secret TEXT NOT NULL,
|
|
87
|
+
enabled INTEGER DEFAULT 0,
|
|
88
|
+
created TEXT DEFAULT (datetime('now'))
|
|
89
|
+
);
|
|
90
|
+
`);let r=(e,s,r)=>{try{t.exec(`ALTER TABLE ${e} ADD COLUMN ${s} ${r}`)}catch{}};r("workspaces","is_active","INTEGER DEFAULT 0"),r("workspaces","updated","TEXT"),r("panes","workspace_id","INTEGER"),r("panes","is_popout","INTEGER DEFAULT 0"),r("panes","win_x","INTEGER"),r("panes","win_y","INTEGER"),r("panes","win_width","INTEGER DEFAULT 800"),r("panes","win_height","INTEGER DEFAULT 600"),r("panes","agent_type","TEXT DEFAULT 'shell'"),r("panes","custom_command","TEXT"),r("panes","node_id","TEXT"),r("sessions","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_path","TEXT");try{t.exec("UPDATE projects SET agent_path = claude_path WHERE agent_path IS NULL AND claude_path IS NOT NULL")}catch{}r("workspaces","collaboration","INTEGER DEFAULT 0"),r("panes","is_collaborating","INTEGER DEFAULT 0");try{t.exec("CREATE INDEX IF NOT EXISTS idx_sessions_agent_type ON sessions(agent_type)")}catch{}try{t.exec("CREATE INDEX IF NOT EXISTS idx_projects_agent_type ON projects(agent_type)")}catch{}let a=t.prepare("SELECT id FROM workspaces WHERE name = 'Default'").get();a?(s=a.id,t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()||t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(s)):s=Number(t.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES ('Default', 'Default workspace', '#6366f1', 1)").run().lastInsertRowid);let n=t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();n&&t.prepare("UPDATE panes SET workspace_id = ? WHERE workspace_id IS NULL").run(n.id);try{t.exec(`
|
|
91
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
|
|
92
|
+
session_id,
|
|
93
|
+
content,
|
|
94
|
+
content_rowid='rowid'
|
|
95
|
+
);
|
|
96
|
+
`)}catch{}try{let{getTeams:s}=e.r(99944),r=s();r&&r.db.runMigrations(t)}catch{}}(d),a.set(n,d),d}e.s(["getDb",()=>n])},65836,e=>{"use strict";var t=e.i(7304),s=e.i(60569),r=e.i(79832),a=e.i(99944);let n=new Set,i=new Set,o=!1;async function d(){let d=(0,r.getCurrentUser)();if(!n.has(d)){if((0,t.getDb)(),n.add(d),!o){o=!0;let s=(0,a.getTeams)();if(s){let{sseManager:r}=await e.A(72354);s.init({getDb:t.getDb,sseManager:r})}}if(!i.has(d)){i.add(d);try{let e=await (0,s.fullSync)();console.log(`[spaces:${d}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,s.enrichMissingSessions)();t>0&&console.log(`[spaces:${d}] Enriched ${t} sessions from JSONL`),(0,s.buildFtsIndex)((e,t)=>{e>0&&e%10==0&&console.log(`[spaces:${d}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${d}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${d}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${d}] Sync error:`,e)}finally{i.delete(d)}}}}e.s(["ensureInitialized",()=>d])},15984,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),a=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),d=e.i(16795),l=e.i(87718),c=e.i(95169),u=e.i(47587),E=e.i(66012),p=e.i(70101),T=e.i(74838),f=e.i(10372),N=e.i(93695);e.i(52474);var R=e.i(220),h=e.i(89171),g=e.i(79832),A=e.i(65836),m=e.i(50837);async function x(e){let t=(0,g.getAuthUser)(e);return(0,g.withUser)(t,async()=>(await (0,A.ensureInitialized)(),h.NextResponse.json((0,m.getAllTags)())))}async function I(e){let t=(0,g.getAuthUser)(e);return(0,g.withUser)(t,async()=>{await (0,A.ensureInitialized)();let t=await e.json();if("create"===t.action){let e=(0,m.createTag)(t.name,t.color);return h.NextResponse.json(e)}return"delete"===t.action?((0,m.deleteTag)(t.tagId),h.NextResponse.json({success:!0})):"updateColor"===t.action?((0,m.updateTagColor)(t.tagId,t.color),h.NextResponse.json({success:!0})):h.NextResponse.json({error:"Unknown action"},{status:400})})}e.s(["GET",()=>x,"POST",()=>I],70322);var _=e.i(70322);let S=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/tags/route",pathname:"/api/tags",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/tags/route.ts",nextConfigOutput:"standalone",userland:_}),{workAsyncStorage:y,workUnitAsyncStorage:L,serverHooks:w}=S;function U(){return(0,r.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:L})}async function O(e,t,r){S.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let h="/api/tags/route";h=h.replace(/\/index$/,"")||"/";let g=await S.prepare(e,t,{srcPage:h,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,params:m,nextConfig:x,parsedUrl:I,isDraftMode:_,prerenderManifest:y,routerServerContext:L,isOnDemandRevalidate:w,revalidateOnlyGenerated:U,resolvedPathname:O,clientReferenceManifest:v,serverActionsManifest:D}=g,C=(0,o.normalizeAppPath)(h),j=!!(y.dynamicRoutes[C]||y.routes[O]),b=async()=>((null==L?void 0:L.render404)?await L.render404(e,t,I,!1):t.end("This page could not be found"),null);if(j&&!_){let e=!!y.routes[O],t=y.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(x.experimental.adapterPath)return await b();throw new N.NoFallbackError}}let F=null;!j||S.isDev||_||(F="/index"===(F=O)?"/":F);let X=!0===S.isDev||!j,k=j&&!X;D&&v&&(0,i.setManifestsSingleton)({page:h,clientReferenceManifest:v,serverActionsManifest:D});let P=e.method||"GET",q=(0,n.getTracer)(),G=q.getActiveScopeSpan(),M={params:m,prerenderManifest:y,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:X,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:x.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,a)=>S.onRequestError(e,t,r,a,L)},sharedContext:{buildId:A}},H=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),Y=l.NextRequestAdapter.fromNodeNextRequest(H,(0,l.signalFromNodeResponse)(t));try{let i=async e=>S.handle(Y,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=q.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${P} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${P} ${h}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),d=async a=>{var n,d;let l=async({previousCacheEntry:s})=>{try{if(!o&&w&&U&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(a);e.fetchMetrics=M.renderOpts.fetchMetrics;let d=M.renderOpts.pendingWaitUntil;d&&r.waitUntil&&(r.waitUntil(d),d=void 0);let l=M.renderOpts.collectedTags;if(!j)return await (0,E.sendResponse)(H,$,n,M.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,r=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:h,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:w})},!1,L),t}},c=await S.handleResponse({req:e,nextConfig:x,cacheKey:F,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:w,revalidateOnlyGenerated:U,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:o});if(!j)return null;if((null==c||null==(n=c.value)?void 0:n.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",w?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let N=(0,p.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&j||N.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||N.get("Cache-Control")||N.set("Cache-Control",(0,T.getCacheControlHeader)(c.cacheControl)),await (0,E.sendResponse)(H,$,new Response(c.value.body,{headers:N,status:c.value.status||200})),null};G?await d(G):await q.withPropagatedContext(e.headers,()=>q.trace(c.BaseServerSpan.handleRequest,{spanName:`${P} ${h}`,kind:n.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},d))}catch(t){if(t instanceof N.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:w})},!1,L),j)throw t;return await (0,E.sendResponse)(H,$,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>U,"routeModule",()=>S,"serverHooks",()=>w,"workAsyncStorage",()=>y,"workUnitAsyncStorage",()=>L],15984)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__feff7b91._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},4730,a=>{a.v({name:"@jlongo78/agent-spaces",version:"0.5.
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},4730,a=>{a.v({name:"@jlongo78/agent-spaces",version:"0.5.4",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"}})},95044,a=>{a.n(a.i(52425))},26087,a=>{a.n(a.i(21646))},50645,a=>{a.n(a.i(27572))},43619,a=>{a.n(a.i(79962))},13718,a=>{a.n(a.i(85523))},18198,a=>{a.n(a.i(45518))},62212,a=>{a.n(a.i(66114))},54268,a=>{a.n(a.i(96773))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__66aca5d4._.js.map
|
|
@@ -2,6 +2,6 @@ module.exports=[33441,a=>{"use strict";let b=(0,a.i(70106).default)("check",[["p
|
|
|
2
2
|
\x1b[90m[Process exited with code ${b.exitCode}${a}]\x1b[0m\r
|
|
3
3
|
`)}else"error"===b.type?e.write(`\r
|
|
4
4
|
\x1b[31m${b.data}\x1b[0m\r
|
|
5
|
-
`):"session-detected"===b.type
|
|
5
|
+
`):"session-detected"===b.type?S.current(R.current.id,{claudeSessionId:b.sessionId}):"collab-updated"===b.type&&S.current(R.current.id,{isCollaborating:b.isCollaborating})}catch{}},g.onclose=()=>{if(E(!1),!U.current&&!V.current){let a=X.current;if(a<20){let b=Math.min(1e3*Math.pow(1.5,a),3e4);X.current=a+1,W.current=setTimeout(i,b)}}},g.onerror=()=>{E(!1)}};e.onData(a=>{B.current?.readyState===WebSocket.OPEN&&B.current.send(JSON.stringify({type:"data",data:a}))}),e.onResize(({cols:a,rows:b})=>{B.current?.readyState===WebSocket.OPEN&&B.current.send(JSON.stringify({type:"resize",cols:a,rows:b}))}),i()},[]);(0,c.useEffect)(()=>(Y(),()=>{V.current=!0,W.current&&clearTimeout(W.current),B.current?.close(),A.current?.dispose()}),[Y]),(0,c.useEffect)(()=>{let a,b=new ResizeObserver(()=>{cancelAnimationFrame(a),a=requestAnimationFrame(()=>{if(C.current)try{C.current.fit()}catch{}})});return z.current&&b.observe(z.current),()=>{cancelAnimationFrame(a),b.disconnect()}},[]),(0,c.useEffect)(()=>{setTimeout(()=>{if(C.current)try{C.current.fit()}catch{}},50)},[t]);let Z=()=>{s(h.id,{title:H}),G(!1)};return(0,c.useEffect)(()=>{if(!J)return;let a=a=>{let b=a.target;N.current&&!N.current.contains(b)&&O.current&&!O.current.contains(b)&&K(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[J]),(0,b.jsxs)("div",{className:(0,o.cn)("flex flex-col border rounded-lg overflow-hidden",t?"fixed inset-2 z-50":"","border-zinc-700"),style:{borderColor:`${h.color}60`},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 text-xs select-none flex-shrink-0",style:{backgroundColor:`${h.color}60`},children:[(0,b.jsxs)("div",{ref:N,className:"flex-shrink-0",children:[(0,b.jsx)("button",{onClick:a=>{let b=a.currentTarget.getBoundingClientRect();M({x:b.left,y:b.bottom+6}),K(!J)},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:h.color},title:"Change color"}),J&&(0,d.createPortal)((0,b.jsx)("div",{ref:O,className:"fixed z-[9999] bg-zinc-800 border border-zinc-600 rounded-xl p-3 shadow-2xl",style:{left:L.x,top:L.y},children:(0,b.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(a=>(0,b.jsx)("button",{onClick:()=>{s(h.id,{color:a}),K(!1)},className:`w-7 h-7 rounded-full border-2 transition-all hover:scale-110 ${h.color===a?"border-white scale-110 shadow-lg":"border-transparent hover:border-zinc-500"}`,style:{backgroundColor:a}},a))})}),document.body)]}),F?(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-1",children:[(0,b.jsx)("input",{autoFocus:!0,value:H,onChange:a=>I(a.target.value),onKeyDown:a=>{"Enter"===a.key&&Z(),"Escape"===a.key&&(I(h.title),G(!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,b.jsx)("button",{onClick:Z,className:"text-green-400 hover:text-green-300",children:(0,b.jsx)(g.Check,{className:"w-3 h-3"})})]}):(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-1 min-w-0 group/title",children:[(0,b.jsx)("span",{onDoubleClick:()=>G(!0),className:"truncate text-zinc-300 font-medium cursor-default",children:h.title}),(0,b.jsx)("button",{onClick:()=>G(!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,b.jsx)(f.Pencil,{className:"w-2.5 h-2.5"})})]}),(0,b.jsx)("span",{className:"text-[10px] text-zinc-500 truncate max-w-[120px]",title:h.cwd,children:h.cwd.split(/[/\\]/).pop()}),h.agentType&&"shell"!==h.agentType&&(0,b.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium",style:{backgroundColor:`${p.AGENT_TYPES[h.agentType]?.color||"#6366f1"}20`,color:p.AGENT_TYPES[h.agentType]?.color||"#6366f1"},children:p.AGENT_TYPES[h.agentType]?.name||h.agentType}),h.nodeId&&(0,b.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,b.jsx)(m.Globe,{className:"w-2.5 h-2.5"}),"remote"]}),y&&"shell"!==h.agentType&&(0,b.jsx)("button",{onClick:async()=>{let a=!h.isCollaborating;await s(h.id,{isCollaborating:a}),B.current?.readyState===WebSocket.OPEN&&B.current.send(JSON.stringify({type:"collab-toggle",isCollaborating:a}))},className:`transition-colors ${h.isCollaborating?"text-indigo-400 hover:text-indigo-300":"text-zinc-600 hover:text-zinc-400"}`,title:h.isCollaborating?"Collaborating — click to opt out":"Not collaborating — click to opt in",children:(0,b.jsx)(n.Users,{className:"w-3 h-3"})}),!D&&!P&&(0,b.jsx)("span",{className:"text-[10px] text-yellow-500",children:"connecting..."}),P&&(0,b.jsx)("button",{onClick:()=>{V.current=!0,W.current&&clearTimeout(W.current),B.current?.close(),A.current?.dispose(),Q(!1),U.current=!1,setTimeout(Y,100)},className:"text-zinc-400 hover:text-white",title:"Restart",children:(0,b.jsx)(i,{className:"w-3 h-3"})}),!w&&v&&(0,b.jsx)("button",{onClick:()=>{v&&(V.current=!0,W.current&&clearTimeout(W.current),B.current?.close(),A.current?.dispose(),v(h.id))},className:"text-zinc-400 hover:text-white",title:"Pop out to new window",children:(0,b.jsx)(l,{className:"w-3 h-3"})}),(0,b.jsx)("button",{onClick:()=>u(h.id),className:"text-zinc-400 hover:text-white",title:t?"Restore":"Maximize",children:t?(0,b.jsx)(k,{className:"w-3 h-3"}):(0,b.jsx)(j,{className:"w-3 h-3"})}),(0,b.jsx)("button",{onClick:()=>{confirm("Close this terminal?")&&r(h.id)},className:"text-zinc-400 hover:text-red-400",title:"Close",children:(0,b.jsx)(e.X,{className:"w-3 h-3"})})]}),(0,b.jsx)("div",{ref:z,className:"flex-1 bg-[#0a0a0a]",style:{minHeight:t?"calc(100vh - 100px)":"300px"}})]})}a.s(["TerminalPane",()=>r],55402)}];
|
|
6
6
|
|
|
7
7
|
//# sourceMappingURL=_1f12caba._.js.map
|
|
@@ -2,6 +2,6 @@ module.exports=[33441,a=>{"use strict";let b=(0,a.i(70106).default)("check",[["p
|
|
|
2
2
|
\x1b[90m[Process exited with code ${b.exitCode}${a}]\x1b[0m\r
|
|
3
3
|
`)}else"error"===b.type?e.write(`\r
|
|
4
4
|
\x1b[31m${b.data}\x1b[0m\r
|
|
5
|
-
`):"session-detected"===b.type
|
|
5
|
+
`):"session-detected"===b.type?S.current(R.current.id,{claudeSessionId:b.sessionId}):"collab-updated"===b.type&&S.current(R.current.id,{isCollaborating:b.isCollaborating})}catch{}},g.onclose=()=>{if(E(!1),!U.current&&!V.current){let a=X.current;if(a<20){let b=Math.min(1e3*Math.pow(1.5,a),3e4);X.current=a+1,W.current=setTimeout(i,b)}}},g.onerror=()=>{E(!1)}};e.onData(a=>{B.current?.readyState===WebSocket.OPEN&&B.current.send(JSON.stringify({type:"data",data:a}))}),e.onResize(({cols:a,rows:b})=>{B.current?.readyState===WebSocket.OPEN&&B.current.send(JSON.stringify({type:"resize",cols:a,rows:b}))}),i()},[]);(0,c.useEffect)(()=>(Y(),()=>{V.current=!0,W.current&&clearTimeout(W.current),B.current?.close(),A.current?.dispose()}),[Y]),(0,c.useEffect)(()=>{let a,b=new ResizeObserver(()=>{cancelAnimationFrame(a),a=requestAnimationFrame(()=>{if(C.current)try{C.current.fit()}catch{}})});return z.current&&b.observe(z.current),()=>{cancelAnimationFrame(a),b.disconnect()}},[]),(0,c.useEffect)(()=>{setTimeout(()=>{if(C.current)try{C.current.fit()}catch{}},50)},[t]);let Z=()=>{s(h.id,{title:H}),G(!1)};return(0,c.useEffect)(()=>{if(!J)return;let a=a=>{let b=a.target;N.current&&!N.current.contains(b)&&O.current&&!O.current.contains(b)&&K(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[J]),(0,b.jsxs)("div",{className:(0,o.cn)("flex flex-col border rounded-lg overflow-hidden",t?"fixed inset-2 z-50":"","border-zinc-700"),style:{borderColor:`${h.color}60`},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 text-xs select-none flex-shrink-0",style:{backgroundColor:`${h.color}60`},children:[(0,b.jsxs)("div",{ref:N,className:"flex-shrink-0",children:[(0,b.jsx)("button",{onClick:a=>{let b=a.currentTarget.getBoundingClientRect();M({x:b.left,y:b.bottom+6}),K(!J)},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:h.color},title:"Change color"}),J&&(0,d.createPortal)((0,b.jsx)("div",{ref:O,className:"fixed z-[9999] bg-zinc-800 border border-zinc-600 rounded-xl p-3 shadow-2xl",style:{left:L.x,top:L.y},children:(0,b.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(a=>(0,b.jsx)("button",{onClick:()=>{s(h.id,{color:a}),K(!1)},className:`w-7 h-7 rounded-full border-2 transition-all hover:scale-110 ${h.color===a?"border-white scale-110 shadow-lg":"border-transparent hover:border-zinc-500"}`,style:{backgroundColor:a}},a))})}),document.body)]}),F?(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-1",children:[(0,b.jsx)("input",{autoFocus:!0,value:H,onChange:a=>I(a.target.value),onKeyDown:a=>{"Enter"===a.key&&Z(),"Escape"===a.key&&(I(h.title),G(!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,b.jsx)("button",{onClick:Z,className:"text-green-400 hover:text-green-300",children:(0,b.jsx)(g.Check,{className:"w-3 h-3"})})]}):(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-1 min-w-0 group/title",children:[(0,b.jsx)("span",{onDoubleClick:()=>G(!0),className:"truncate text-zinc-300 font-medium cursor-default",children:h.title}),(0,b.jsx)("button",{onClick:()=>G(!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,b.jsx)(f.Pencil,{className:"w-2.5 h-2.5"})})]}),(0,b.jsx)("span",{className:"text-[10px] text-zinc-500 truncate max-w-[120px]",title:h.cwd,children:h.cwd.split(/[/\\]/).pop()}),h.agentType&&"shell"!==h.agentType&&(0,b.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-medium",style:{backgroundColor:`${p.AGENT_TYPES[h.agentType]?.color||"#6366f1"}20`,color:p.AGENT_TYPES[h.agentType]?.color||"#6366f1"},children:p.AGENT_TYPES[h.agentType]?.name||h.agentType}),h.nodeId&&(0,b.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,b.jsx)(m.Globe,{className:"w-2.5 h-2.5"}),"remote"]}),y&&"shell"!==h.agentType&&(0,b.jsx)("button",{onClick:async()=>{let a=!h.isCollaborating;await s(h.id,{isCollaborating:a}),B.current?.readyState===WebSocket.OPEN&&B.current.send(JSON.stringify({type:"collab-toggle",isCollaborating:a}))},className:`transition-colors ${h.isCollaborating?"text-indigo-400 hover:text-indigo-300":"text-zinc-600 hover:text-zinc-400"}`,title:h.isCollaborating?"Collaborating — click to opt out":"Not collaborating — click to opt in",children:(0,b.jsx)(n.Users,{className:"w-3 h-3"})}),!D&&!P&&(0,b.jsx)("span",{className:"text-[10px] text-yellow-500",children:"connecting..."}),P&&(0,b.jsx)("button",{onClick:()=>{V.current=!0,W.current&&clearTimeout(W.current),B.current?.close(),A.current?.dispose(),Q(!1),U.current=!1,setTimeout(Y,100)},className:"text-zinc-400 hover:text-white",title:"Restart",children:(0,b.jsx)(i,{className:"w-3 h-3"})}),!w&&v&&(0,b.jsx)("button",{onClick:()=>{v&&(V.current=!0,W.current&&clearTimeout(W.current),B.current?.close(),A.current?.dispose(),v(h.id))},className:"text-zinc-400 hover:text-white",title:"Pop out to new window",children:(0,b.jsx)(l,{className:"w-3 h-3"})}),(0,b.jsx)("button",{onClick:()=>u(h.id),className:"text-zinc-400 hover:text-white",title:t?"Restore":"Maximize",children:t?(0,b.jsx)(k,{className:"w-3 h-3"}):(0,b.jsx)(j,{className:"w-3 h-3"})}),(0,b.jsx)("button",{onClick:()=>{confirm("Close this terminal?")&&r(h.id)},className:"text-zinc-400 hover:text-red-400",title:"Close",children:(0,b.jsx)(e.X,{className:"w-3 h-3"})})]}),(0,b.jsx)("div",{ref:z,className:"flex-1 bg-[#0a0a0a]",style:{minHeight:t?"calc(100vh - 100px)":"300px"}})]})}a.s(["TerminalPane",()=>r],55402)}];
|
|
6
6
|
|
|
7
7
|
//# sourceMappingURL=_43e7e611._.js.map
|
package/.next/standalone/.next/server/chunks/ssr/src_app_(desktop)_network_page_tsx_27f035db._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[11533,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(1279),e=a.i(33508),f=a.i(96221);function g({onClose:a}){let g=(0,d.useAddNode)(),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(""),p=async()=>{o("");try{await g.mutateAsync({url:h,apiKey:j,name:l||void 0}),a()}catch(a){o(a.message||"Failed to connect")}};return(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 rounded-xl shadow-2xl border border-zinc-200 dark:border-zinc-800 w-full max-w-md mx-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-zinc-200 dark:border-zinc-800",children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Add Node"}),(0,b.jsx)("button",{onClick:a,className:"text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200",children:(0,b.jsx)(e.X,{className:"w-4 h-4"})})]}),(0,b.jsxs)("div",{className:"p-5 space-y-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-zinc-600 dark:text-zinc-400 mb-1.5 block",children:"Node URL"}),(0,b.jsx)("input",{autoFocus:!0,type:"url",value:h,onChange:a=>i(a.target.value),placeholder:"https://my-server.example.com/spaces",className:"w-full px-3 py-2 text-sm bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500"}),(0,b.jsx)("p",{className:"text-[11px] text-zinc-400 mt-1",children:"The base URL of the remote Spaces instance"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-zinc-600 dark:text-zinc-400 mb-1.5 block",children:"API Key"}),(0,b.jsx)("input",{type:"password",value:j,onChange:a=>k(a.target.value),placeholder:"spk_...",className:"w-full px-3 py-2 text-sm font-mono bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500"}),(0,b.jsx)("p",{className:"text-[11px] text-zinc-400 mt-1",children:"Generated on the remote node's Network page"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"text-xs font-medium text-zinc-600 dark:text-zinc-400 mb-1.5 block",children:["Display Name ",(0,b.jsx)("span",{className:"text-zinc-400",children:"(optional)"})]}),(0,b.jsx)("input",{type:"text",value:l,onChange:a=>m(a.target.value),placeholder:"Auto-detected from remote node",className:"w-full px-3 py-2 text-sm bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),n&&(0,b.jsx)("div",{className:"text-sm text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-800 rounded-md px-3 py-2",children:n})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 px-5 py-4 border-t border-zinc-200 dark:border-zinc-800",children:[(0,b.jsx)("button",{onClick:a,className:"px-4 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-md hover:bg-zinc-50 dark:hover:bg-zinc-800",children:"Cancel"}),(0,b.jsxs)("button",{onClick:p,disabled:!h.trim()||!j.trim()||g.isPending,className:"flex items-center gap-2 px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50",children:[g.isPending&&(0,b.jsx)(f.Loader2,{className:"w-3.5 h-3.5 animate-spin"}),"Connect"]})]})]})})}var h=a.i(15618),i=a.i(81560),j=a.i(69520),k=a.i(44494),l=a.i(68114);let m={online:{color:"text-green-600 dark:text-green-400",bg:"bg-green-500",label:"Online"},offline:{color:"text-red-600 dark:text-red-400",bg:"bg-red-500",label:"Offline"},error:{color:"text-amber-600 dark:text-amber-400",bg:"bg-amber-500",label:"Error"},unknown:{color:"text-zinc-500",bg:"bg-zinc-400",label:"Unknown"}};function n(){let{data:a,isLoading:e}=(0,d.useNodes)(),n=(0,d.useRemoveNode)(),o=(0,d.useCheckHealth)(),[p,q]=(0,c.useState)(!1);return e?(0,b.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,b.jsx)(f.Loader2,{className:"w-5 h-5 animate-spin text-zinc-400"})}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{onClick:()=>q(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500",children:[(0,b.jsx)(h.Plus,{className:"w-3.5 h-3.5"}),"Add Node"]}),a&&a.length>0&&(0,b.jsxs)("button",{onClick:()=>o.mutate(),disabled:o.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm border border-zinc-200 dark:border-zinc-700 rounded-md hover:bg-zinc-50 dark:hover:bg-zinc-800 disabled:opacity-50",children:[(0,b.jsx)(j.RefreshCw,{className:`w-3.5 h-3.5 ${o.isPending?"animate-spin":""}`}),"Check All"]})]}),a&&a.length>0?(0,b.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:a.map(a=>{let c=m[a.status]||m.unknown;return(0,b.jsxs)("div",{className:"border border-zinc-200 dark:border-zinc-800 rounded-lg p-4 hover:border-zinc-300 dark:hover:border-zinc-700 transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:`w-2 h-2 rounded-full ${c.bg}`}),(0,b.jsx)("h3",{className:"font-medium text-sm",children:a.name})]}),(0,b.jsx)("button",{onClick:()=>{confirm(`Remove node "${a.name}"? You can re-add it later.`)&&n.mutate(a.id)},className:"p-1 text-zinc-400 hover:text-red-500 rounded",title:"Remove node",children:(0,b.jsx)(i.Trash2,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"space-y-1 text-xs text-zinc-500",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1 font-mono truncate",title:a.url,children:[(0,b.jsx)(k.Globe,{className:"w-3 h-3 flex-shrink-0"}),a.url]}),(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:c.color,children:c.label}),a.lastSeen&&(0,b.jsxs)("span",{children:["Last seen ",(0,l.formatRelativeTime)(a.lastSeen)]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("span",{children:[a.sessionCount," sessions"]}),a.version&&(0,b.jsxs)("span",{children:["v",a.version]})]}),a.lastError&&"online"!==a.status&&(0,b.jsx)("div",{className:"text-amber-600 dark:text-amber-400 text-[11px] truncate",title:a.lastError,children:a.lastError}),(0,b.jsxs)("div",{className:"text-[10px] text-zinc-400 font-mono",children:["Key: ...",a.apiKeyHint]})]})]},a.id)})}):(0,b.jsxs)("div",{className:"text-center py-8 text-sm text-zinc-500",children:[(0,b.jsx)(k.Globe,{className:"w-8 h-8 mx-auto mb-2 text-zinc-300 dark:text-zinc-700"}),(0,b.jsx)("p",{children:"No connected nodes."}),(0,b.jsx)("p",{className:"text-xs mt-1",children:"Add a node to see sessions and terminals from other Spaces instances."})]}),p&&(0,b.jsx)(g,{onClose:()=>q(!1)})]})}var o=a.i(5151),p=a.i(33441);let q=(0,a.i(70106).default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);function r(){let{data:a,isLoading:e}=(0,d.useApiKeys)(),g=(0,d.useCreateApiKey)(),j=(0,d.useRevokeApiKey)(),[k,m]=(0,c.useState)(!1),[n,r]=(0,c.useState)(""),[s,t]=(0,c.useState)("terminal"),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(!1),y=async()=>{n.trim()&&(v((await g.mutateAsync({name:n.trim(),permissions:s})).rawKey),r(""),m(!1))};return e?(0,b.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,b.jsx)(f.Loader2,{className:"w-5 h-5 animate-spin text-zinc-400"})}):(0,b.jsxs)("div",{className:"space-y-3",children:[u&&(0,b.jsxs)("div",{className:"bg-green-50 dark:bg-green-950/30 border border-green-200 dark:border-green-800 rounded-lg p-4",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-green-800 dark:text-green-200 mb-2",children:"API key created. Copy it now — it won't be shown again."}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("code",{className:"flex-1 text-xs font-mono bg-white dark:bg-zinc-900 border border-green-200 dark:border-green-800 rounded px-3 py-2 select-all break-all",children:u}),(0,b.jsx)("button",{onClick:()=>{u&&(navigator.clipboard.writeText(u),x(!0),setTimeout(()=>x(!1),2e3))},className:"flex-shrink-0 p-2 text-green-700 dark:text-green-300 hover:bg-green-100 dark:hover:bg-green-900 rounded-md",children:w?(0,b.jsx)(p.Check,{className:"w-4 h-4"}):(0,b.jsx)(o.Copy,{className:"w-4 h-4"})})]}),(0,b.jsx)("button",{onClick:()=>v(null),className:"text-xs text-green-600 dark:text-green-400 mt-2 hover:underline",children:"Dismiss"})]}),a&&a.length>0?(0,b.jsx)("div",{className:"border border-zinc-200 dark:border-zinc-800 rounded-lg overflow-hidden",children:(0,b.jsxs)("table",{className:"w-full text-sm",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"bg-zinc-50 dark:bg-zinc-900 text-left text-xs text-zinc-500",children:[(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Name"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Prefix"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Permissions"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Last Used"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Created"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium w-10"})]})}),(0,b.jsx)("tbody",{className:"divide-y divide-zinc-100 dark:divide-zinc-800",children:a.map(a=>(0,b.jsxs)("tr",{className:"hover:bg-zinc-50 dark:hover:bg-zinc-900/50",children:[(0,b.jsx)("td",{className:"px-4 py-2.5 font-medium",children:a.name}),(0,b.jsxs)("td",{className:"px-4 py-2.5 font-mono text-xs text-zinc-500",children:[a.keyPrefix,"..."]}),(0,b.jsx)("td",{className:"px-4 py-2.5",children:(0,b.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400",children:a.permissions})}),(0,b.jsx)("td",{className:"px-4 py-2.5 text-zinc-500 text-xs",children:a.lastUsed?(0,l.formatRelativeTime)(a.lastUsed):"Never"}),(0,b.jsx)("td",{className:"px-4 py-2.5 text-zinc-500 text-xs",children:(0,l.formatRelativeTime)(a.created)}),(0,b.jsx)("td",{className:"px-4 py-2.5",children:(0,b.jsx)("button",{onClick:()=>{confirm(`Revoke API key "${a.name}"? Remote nodes using this key will lose access.`)&&j.mutate(a.id)},className:"p-1 text-zinc-400 hover:text-red-500 rounded",title:"Revoke key",children:(0,b.jsx)(i.Trash2,{className:"w-3.5 h-3.5"})})})]},a.id))})]})}):(0,b.jsxs)("div",{className:"text-center py-8 text-sm text-zinc-500",children:[(0,b.jsx)(q,{className:"w-8 h-8 mx-auto mb-2 text-zinc-300 dark:text-zinc-700"}),(0,b.jsx)("p",{children:"No API keys yet."}),(0,b.jsx)("p",{className:"text-xs mt-1",children:"Create a key so other nodes can connect to this one."})]}),k?(0,b.jsxs)("div",{className:"flex items-end gap-2 bg-zinc-50 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-3",children:[(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("label",{className:"text-xs text-zinc-500 mb-1 block",children:"Key Name"}),(0,b.jsx)("input",{autoFocus:!0,type:"text",value:n,onChange:a=>r(a.target.value),onKeyDown:a=>"Enter"===a.key&&y(),placeholder:"e.g., Team Server",className:"w-full px-3 py-1.5 text-sm bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs text-zinc-500 mb-1 block",children:"Permissions"}),(0,b.jsxs)("select",{value:s,onChange:a=>t(a.target.value),className:"px-3 py-1.5 text-sm bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500",children:[(0,b.jsx)("option",{value:"read",children:"Read"}),(0,b.jsx)("option",{value:"terminal",children:"Terminal"}),(0,b.jsx)("option",{value:"admin",children:"Admin"})]})]}),(0,b.jsx)("button",{onClick:y,disabled:!n.trim()||g.isPending,className:"px-3 py-1.5 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50",children:"Create"}),(0,b.jsx)("button",{onClick:()=>{m(!1),r("")},className:"px-3 py-1.5 text-sm border border-zinc-200 dark:border-zinc-700 rounded-md hover:bg-zinc-100 dark:hover:bg-zinc-800",children:"Cancel"})]}):(0,b.jsxs)("button",{onClick:()=>m(!0),className:"flex items-center gap-1.5 text-sm text-indigo-600 dark:text-indigo-400 hover:text-indigo-500",children:[(0,b.jsx)(h.Plus,{className:"w-3.5 h-3.5"}),"Create API Key"]})]})}var s=a.i(99464);function t(){let{data:a,isLoading:g}=(0,d.useNodeIdentity)(),h=(0,d.useUpdateNodeName)(),[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),[m,q]=(0,c.useState)(!1),t=()=>{k.trim()&&h.mutate(k.trim()),j(!1)};return(0,b.jsxs)("div",{className:"p-6 max-w-4xl",children:[(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold",children:"Network"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mt-1",children:"Connect to other Spaces instances and manage API keys"})]}),(0,b.jsxs)("section",{className:"mb-8",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wider mb-3",children:"This Node"}),g?(0,b.jsxs)("div",{className:"flex items-center gap-2 py-4",children:[(0,b.jsx)(f.Loader2,{className:"w-4 h-4 animate-spin text-zinc-400"}),(0,b.jsx)("span",{className:"text-sm text-zinc-400",children:"Loading..."})]}):a?(0,b.jsxs)("div",{className:"border border-zinc-200 dark:border-zinc-800 rounded-lg p-4 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-zinc-500 w-16",children:"Name"}),i?(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("input",{autoFocus:!0,value:k,onChange:a=>l(a.target.value),onKeyDown:a=>{"Enter"===a.key&&t(),"Escape"===a.key&&j(!1)},className:"px-2 py-0.5 text-sm bg-white dark:bg-zinc-950 border border-indigo-400 rounded focus:outline-none"}),(0,b.jsx)("button",{onClick:t,className:"text-green-500 hover:text-green-400 p-0.5",children:(0,b.jsx)(p.Check,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{onClick:()=>j(!1),className:"text-zinc-400 hover:text-zinc-300 p-0.5",children:(0,b.jsx)(e.X,{className:"w-3.5 h-3.5"})})]}):(0,b.jsxs)("div",{className:"flex items-center gap-1 group",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:a.nodeName}),(0,b.jsx)("button",{onClick:()=>{l(a.nodeName),j(!0)},className:"opacity-0 group-hover:opacity-100 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200 p-0.5",children:(0,b.jsx)(s.Pencil,{className:"w-3 h-3"})})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-zinc-500 w-16",children:"Node ID"}),(0,b.jsx)("span",{className:"text-sm font-mono text-zinc-600 dark:text-zinc-400",children:a.nodeId}),(0,b.jsx)("button",{onClick:()=>{a?.nodeId&&(navigator.clipboard.writeText(a.nodeId),q(!0),setTimeout(()=>q(!1),2e3))},className:"text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200 p-0.5",title:"Copy node ID",children:m?(0,b.jsx)(p.Check,{className:"w-3 h-3 text-green-500"}):(0,b.jsx)(o.Copy,{className:"w-3 h-3"})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-zinc-500 w-16",children:"Version"}),(0,b.jsx)("span",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:a.version})]})]}):null]}),(0,b.jsxs)("section",{className:"mb-8",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wider mb-3",children:"API Keys"}),(0,b.jsx)("p",{className:"text-xs text-zinc-400 mb-3",children:"Share an API key with other nodes so they can connect to this instance."}),(0,b.jsx)(r,{})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wider mb-3",children:"Connected Nodes"}),(0,b.jsx)("p",{className:"text-xs text-zinc-400 mb-3",children:"Remote Spaces instances that share sessions and terminals with this node."}),(0,b.jsx)(n,{})]})]})}a.s(["default",()=>t],11533)}];
|
|
1
|
+
module.exports=[11533,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(1279),e=a.i(33508),f=a.i(96221);function g({onClose:a}){let g=(0,d.useAddNode)(),[h,i]=(0,c.useState)(""),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(""),p=async()=>{o("");try{await g.mutateAsync({url:h,apiKey:j,name:l||void 0}),a()}catch(a){o(a.message||"Failed to connect")}};return(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:(0,b.jsxs)("div",{className:"bg-white dark:bg-zinc-900 rounded-xl shadow-2xl border border-zinc-200 dark:border-zinc-800 w-full max-w-md mx-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-zinc-200 dark:border-zinc-800",children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Add Node"}),(0,b.jsx)("button",{onClick:a,className:"text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200",children:(0,b.jsx)(e.X,{className:"w-4 h-4"})})]}),(0,b.jsxs)("div",{className:"p-5 space-y-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-zinc-600 dark:text-zinc-400 mb-1.5 block",children:"Node URL"}),(0,b.jsx)("input",{autoFocus:!0,type:"url",value:h,onChange:a=>i(a.target.value),placeholder:"https://my-server.example.com/spaces",className:"w-full px-3 py-2 text-sm bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500"}),(0,b.jsx)("p",{className:"text-[11px] text-zinc-400 mt-1",children:"The base URL of the remote Spaces instance"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs font-medium text-zinc-600 dark:text-zinc-400 mb-1.5 block",children:"API Key"}),(0,b.jsx)("input",{type:"password",value:j,onChange:a=>k(a.target.value),placeholder:"spk_...",className:"w-full px-3 py-2 text-sm font-mono bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500"}),(0,b.jsx)("p",{className:"text-[11px] text-zinc-400 mt-1",children:"Generated on the remote node's Network page"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"text-xs font-medium text-zinc-600 dark:text-zinc-400 mb-1.5 block",children:["Display Name ",(0,b.jsx)("span",{className:"text-zinc-400",children:"(optional)"})]}),(0,b.jsx)("input",{type:"text",value:l,onChange:a=>m(a.target.value),placeholder:"Auto-detected from remote node",className:"w-full px-3 py-2 text-sm bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),n&&(0,b.jsx)("div",{className:"text-sm text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-950/30 border border-red-200 dark:border-red-800 rounded-md px-3 py-2",children:n})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 px-5 py-4 border-t border-zinc-200 dark:border-zinc-800",children:[(0,b.jsx)("button",{onClick:a,className:"px-4 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-md hover:bg-zinc-50 dark:hover:bg-zinc-800",children:"Cancel"}),(0,b.jsxs)("button",{onClick:p,disabled:!h.trim()||!j.trim()||g.isPending,className:"flex items-center gap-2 px-4 py-2 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50",children:[g.isPending&&(0,b.jsx)(f.Loader2,{className:"w-3.5 h-3.5 animate-spin"}),"Connect"]})]})]})})}var h=a.i(15618),i=a.i(81560),j=a.i(69520),k=a.i(44494),l=a.i(68114);let m={online:{color:"text-green-600 dark:text-green-400",bg:"bg-green-500",label:"Online"},offline:{color:"text-red-600 dark:text-red-400",bg:"bg-red-500",label:"Offline"},error:{color:"text-amber-600 dark:text-amber-400",bg:"bg-amber-500",label:"Error"},unknown:{color:"text-zinc-500",bg:"bg-zinc-400",label:"Unknown"}};function n(){let{data:a,isLoading:e}=(0,d.useNodes)(),n=(0,d.useRemoveNode)(),o=(0,d.useCheckHealth)(),[p,q]=(0,c.useState)(!1);return e?(0,b.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,b.jsx)(f.Loader2,{className:"w-5 h-5 animate-spin text-zinc-400"})}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{onClick:()=>q(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500",children:[(0,b.jsx)(h.Plus,{className:"w-3.5 h-3.5"}),"Add Node"]}),a&&a.length>0&&(0,b.jsxs)("button",{onClick:()=>o.mutate(),disabled:o.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm border border-zinc-200 dark:border-zinc-700 rounded-md hover:bg-zinc-50 dark:hover:bg-zinc-800 disabled:opacity-50",children:[(0,b.jsx)(j.RefreshCw,{className:`w-3.5 h-3.5 ${o.isPending?"animate-spin":""}`}),"Check All"]})]}),a&&a.length>0?(0,b.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:a.map(a=>{let c=m[a.status]||m.unknown;return(0,b.jsxs)("div",{className:"border border-zinc-200 dark:border-zinc-800 rounded-lg p-4 hover:border-zinc-300 dark:hover:border-zinc-700 transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:`w-2 h-2 rounded-full ${c.bg}`}),(0,b.jsx)("h3",{className:"font-medium text-sm",children:a.name})]}),(0,b.jsx)("button",{onClick:()=>{confirm(`Remove node "${a.name}"? You can re-add it later.`)&&n.mutate(a.id)},className:"p-1 text-zinc-400 hover:text-red-500 rounded",title:"Remove node",children:(0,b.jsx)(i.Trash2,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"space-y-1 text-xs text-zinc-500",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1 font-mono truncate",title:a.url,children:[(0,b.jsx)(k.Globe,{className:"w-3 h-3 flex-shrink-0"}),a.url]}),(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:c.color,children:c.label}),a.lastSeen&&(0,b.jsxs)("span",{children:["Last seen ",(0,l.formatRelativeTime)(a.lastSeen)]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("span",{children:[a.sessionCount," sessions"]}),a.version&&(0,b.jsxs)("span",{children:["v",a.version]})]}),a.lastError&&"online"!==a.status&&(0,b.jsx)("div",{className:"text-amber-600 dark:text-amber-400 text-[11px] truncate",title:a.lastError,children:a.lastError}),(0,b.jsxs)("div",{className:"text-[10px] text-zinc-400 font-mono",children:["Key: ...",a.apiKeyHint]})]})]},a.id)})}):(0,b.jsxs)("div",{className:"text-center py-8 text-sm text-zinc-500",children:[(0,b.jsx)(k.Globe,{className:"w-8 h-8 mx-auto mb-2 text-zinc-300 dark:text-zinc-700"}),(0,b.jsx)("p",{children:"No connected nodes."}),(0,b.jsx)("p",{className:"text-xs mt-1",children:"Add a node to see sessions and terminals from other Spaces instances."})]}),p&&(0,b.jsx)(g,{onClose:()=>q(!1)})]})}var o=a.i(5151),p=a.i(33441);let q=(0,a.i(70106).default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);function r(){let{data:a,isLoading:e}=(0,d.useApiKeys)(),g=(0,d.useCreateApiKey)(),j=(0,d.useRevokeApiKey)(),[k,m]=(0,c.useState)(!1),[n,r]=(0,c.useState)(""),[s,t]=(0,c.useState)("terminal"),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(!1),y=async()=>{n.trim()&&(v((await g.mutateAsync({name:n.trim(),permissions:s})).rawKey),r(""),m(!1))},z=async()=>{if(u){try{await navigator.clipboard.writeText(u)}catch{let a=document.createElement("textarea");a.value=u,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}x(!0),setTimeout(()=>x(!1),2e3)}};return e?(0,b.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,b.jsx)(f.Loader2,{className:"w-5 h-5 animate-spin text-zinc-400"})}):(0,b.jsxs)("div",{className:"space-y-3",children:[u&&(0,b.jsxs)("div",{className:"bg-green-50 dark:bg-green-950/30 border border-green-200 dark:border-green-800 rounded-lg p-4",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-green-800 dark:text-green-200 mb-2",children:"API key created. Copy it now — it won't be shown again."}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("code",{className:"flex-1 text-xs font-mono bg-white dark:bg-zinc-900 border border-green-200 dark:border-green-800 rounded px-3 py-2 select-all break-all",children:u}),(0,b.jsx)("button",{onClick:z,className:"flex-shrink-0 p-2 text-green-700 dark:text-green-300 hover:bg-green-100 dark:hover:bg-green-900 rounded-md",children:w?(0,b.jsx)(p.Check,{className:"w-4 h-4"}):(0,b.jsx)(o.Copy,{className:"w-4 h-4"})})]}),(0,b.jsx)("button",{onClick:()=>v(null),className:"text-xs text-green-600 dark:text-green-400 mt-2 hover:underline",children:"Dismiss"})]}),a&&a.length>0?(0,b.jsx)("div",{className:"border border-zinc-200 dark:border-zinc-800 rounded-lg overflow-hidden",children:(0,b.jsxs)("table",{className:"w-full text-sm",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"bg-zinc-50 dark:bg-zinc-900 text-left text-xs text-zinc-500",children:[(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Name"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Prefix"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Permissions"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Last Used"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium",children:"Created"}),(0,b.jsx)("th",{className:"px-4 py-2 font-medium w-10"})]})}),(0,b.jsx)("tbody",{className:"divide-y divide-zinc-100 dark:divide-zinc-800",children:a.map(a=>(0,b.jsxs)("tr",{className:"hover:bg-zinc-50 dark:hover:bg-zinc-900/50",children:[(0,b.jsx)("td",{className:"px-4 py-2.5 font-medium",children:a.name}),(0,b.jsxs)("td",{className:"px-4 py-2.5 font-mono text-xs text-zinc-500",children:[a.keyPrefix,"..."]}),(0,b.jsx)("td",{className:"px-4 py-2.5",children:(0,b.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400",children:a.permissions})}),(0,b.jsx)("td",{className:"px-4 py-2.5 text-zinc-500 text-xs",children:a.lastUsed?(0,l.formatRelativeTime)(a.lastUsed):"Never"}),(0,b.jsx)("td",{className:"px-4 py-2.5 text-zinc-500 text-xs",children:(0,l.formatRelativeTime)(a.created)}),(0,b.jsx)("td",{className:"px-4 py-2.5",children:(0,b.jsx)("button",{onClick:()=>{confirm(`Revoke API key "${a.name}"? Remote nodes using this key will lose access.`)&&j.mutate(a.id)},className:"p-1 text-zinc-400 hover:text-red-500 rounded",title:"Revoke key",children:(0,b.jsx)(i.Trash2,{className:"w-3.5 h-3.5"})})})]},a.id))})]})}):(0,b.jsxs)("div",{className:"text-center py-8 text-sm text-zinc-500",children:[(0,b.jsx)(q,{className:"w-8 h-8 mx-auto mb-2 text-zinc-300 dark:text-zinc-700"}),(0,b.jsx)("p",{children:"No API keys yet."}),(0,b.jsx)("p",{className:"text-xs mt-1",children:"Create a key so other nodes can connect to this one."})]}),k?(0,b.jsxs)("div",{className:"flex items-end gap-2 bg-zinc-50 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-3",children:[(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("label",{className:"text-xs text-zinc-500 mb-1 block",children:"Key Name"}),(0,b.jsx)("input",{autoFocus:!0,type:"text",value:n,onChange:a=>r(a.target.value),onKeyDown:a=>"Enter"===a.key&&y(),placeholder:"e.g., Team Server",className:"w-full px-3 py-1.5 text-sm bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-xs text-zinc-500 mb-1 block",children:"Permissions"}),(0,b.jsxs)("select",{value:s,onChange:a=>t(a.target.value),className:"px-3 py-1.5 text-sm bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-700 rounded-md focus:outline-none focus:ring-1 focus:ring-indigo-500",children:[(0,b.jsx)("option",{value:"read",children:"Read"}),(0,b.jsx)("option",{value:"terminal",children:"Terminal"}),(0,b.jsx)("option",{value:"admin",children:"Admin"})]})]}),(0,b.jsx)("button",{onClick:y,disabled:!n.trim()||g.isPending,className:"px-3 py-1.5 text-sm bg-indigo-600 text-white rounded-md hover:bg-indigo-500 disabled:opacity-50",children:"Create"}),(0,b.jsx)("button",{onClick:()=>{m(!1),r("")},className:"px-3 py-1.5 text-sm border border-zinc-200 dark:border-zinc-700 rounded-md hover:bg-zinc-100 dark:hover:bg-zinc-800",children:"Cancel"})]}):(0,b.jsxs)("button",{onClick:()=>m(!0),className:"flex items-center gap-1.5 text-sm text-indigo-600 dark:text-indigo-400 hover:text-indigo-500",children:[(0,b.jsx)(h.Plus,{className:"w-3.5 h-3.5"}),"Create API Key"]})]})}var s=a.i(99464);function t(){let{data:a,isLoading:g}=(0,d.useNodeIdentity)(),h=(0,d.useUpdateNodeName)(),[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),[m,q]=(0,c.useState)(!1),t=()=>{k.trim()&&h.mutate(k.trim()),j(!1)};return(0,b.jsxs)("div",{className:"p-6 max-w-4xl",children:[(0,b.jsxs)("div",{className:"mb-8",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold",children:"Network"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm mt-1",children:"Connect to other Spaces instances and manage API keys"})]}),(0,b.jsxs)("section",{className:"mb-8",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wider mb-3",children:"This Node"}),g?(0,b.jsxs)("div",{className:"flex items-center gap-2 py-4",children:[(0,b.jsx)(f.Loader2,{className:"w-4 h-4 animate-spin text-zinc-400"}),(0,b.jsx)("span",{className:"text-sm text-zinc-400",children:"Loading..."})]}):a?(0,b.jsxs)("div",{className:"border border-zinc-200 dark:border-zinc-800 rounded-lg p-4 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-zinc-500 w-16",children:"Name"}),i?(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("input",{autoFocus:!0,value:k,onChange:a=>l(a.target.value),onKeyDown:a=>{"Enter"===a.key&&t(),"Escape"===a.key&&j(!1)},className:"px-2 py-0.5 text-sm bg-white dark:bg-zinc-950 border border-indigo-400 rounded focus:outline-none"}),(0,b.jsx)("button",{onClick:t,className:"text-green-500 hover:text-green-400 p-0.5",children:(0,b.jsx)(p.Check,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{onClick:()=>j(!1),className:"text-zinc-400 hover:text-zinc-300 p-0.5",children:(0,b.jsx)(e.X,{className:"w-3.5 h-3.5"})})]}):(0,b.jsxs)("div",{className:"flex items-center gap-1 group",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:a.nodeName}),(0,b.jsx)("button",{onClick:()=>{l(a.nodeName),j(!0)},className:"opacity-0 group-hover:opacity-100 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200 p-0.5",children:(0,b.jsx)(s.Pencil,{className:"w-3 h-3"})})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-zinc-500 w-16",children:"Node ID"}),(0,b.jsx)("span",{className:"text-sm font-mono text-zinc-600 dark:text-zinc-400",children:a.nodeId}),(0,b.jsx)("button",{onClick:()=>{a?.nodeId&&(navigator.clipboard.writeText(a.nodeId),q(!0),setTimeout(()=>q(!1),2e3))},className:"text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200 p-0.5",title:"Copy node ID",children:m?(0,b.jsx)(p.Check,{className:"w-3 h-3 text-green-500"}):(0,b.jsx)(o.Copy,{className:"w-3 h-3"})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-zinc-500 w-16",children:"Version"}),(0,b.jsx)("span",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:a.version})]})]}):null]}),(0,b.jsxs)("section",{className:"mb-8",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wider mb-3",children:"API Keys"}),(0,b.jsx)("p",{className:"text-xs text-zinc-400 mb-3",children:"Share an API key with other nodes so they can connect to this instance."}),(0,b.jsx)(r,{})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wider mb-3",children:"Connected Nodes"}),(0,b.jsx)("p",{className:"text-xs text-zinc-400 mb-3",children:"Remote Spaces instances that share sessions and terminals with this node."}),(0,b.jsx)(n,{})]})]})}a.s(["default",()=>t],11533)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28desktop%29_network_page_tsx_27f035db._.js.map
|