@jlongo78/agent-spaces 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +19 -19
- package/.next/standalone/.next/server/app/(desktop)/admin/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/admin/users/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/network/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/pane/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/terminal/remote/[nodeId]/[workspaceId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(desktop)/workspaces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.html +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin/analytics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/analytics.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.html +1 -1
- package/.next/standalone/.next/server/app/admin/users.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin/users.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap/admin.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/users.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/users.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.html +1 -1
- package/.next/standalone/.next/server/app/analytics.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap/analytics.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/analytics.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js +2 -2
- package/.next/standalone/.next/server/app/api/analytics/overview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk/route.js +2 -2
- package/.next/standalone/.next/server/app/api/bulk/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js +2 -2
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/folders/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js +1 -1
- package/.next/standalone/.next/server/app/api/network/handshake/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/panes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/panes/route.js +2 -2
- package/.next/standalone/.next/server/app/api/panes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +2 -2
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/search/route.js +2 -2
- package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sync/route.js +3 -3
- package/.next/standalone/.next/server/app/api/sync/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tags/route.js +2 -2
- package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tier/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/[key]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/context/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/[msgId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/[id]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/workspaces/route.js +2 -2
- package/.next/standalone/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/projects.html +1 -1
- package/.next/standalone/.next/server/app/m/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m/projects.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/projects.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/sessions.html +1 -1
- package/.next/standalone/.next/server/app/m/sessions.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/sessions.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/settings.html +1 -1
- package/.next/standalone/.next/server/app/m/settings.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/settings.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/m/terminal.html +1 -1
- package/.next/standalone/.next/server/app/m/terminal.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m/terminal.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m/terminal.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.html +1 -1
- package/.next/standalone/.next/server/app/m.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/m.segments/m/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/m.segments/m.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.html +1 -1
- package/.next/standalone/.next/server/app/network.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap/network.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/network.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/network.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap/projects.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.html +1 -1
- package/.next/standalone/.next/server/app/sessions.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.html +1 -1
- package/.next/standalone/.next/server/app/terminal.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap/terminal.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/terminal.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/terminal.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.html +1 -1
- package/.next/standalone/.next/server/app/workspaces.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap/workspaces.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/!KGRlc2t0b3Ap.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/workspaces.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/workspaces.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__e742ef33._.js → [root-of-the-server]__0e4c2d35._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__130dee4b._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__142c2f41._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__160e7c73._.js +148 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2861e096._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2d3d8d52._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__57b966d5._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5a0020ba._.js +106 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5bd0f118._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__64f5810e._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__74c48d65._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7d6610c4._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__84f3af14._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8765f2fc._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a2ee9884._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a6eb742d._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4c83e91._.js +114 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c546cf71._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cae0486f._.js +106 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d5615808._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d877df12._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f66ceeb8._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f84e3cf3._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f893957c._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fcd26315._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd505913._.js +98 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__feff7b91._.js +98 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__66aca5d4._.js +1 -1
- package/.next/standalone/.next/server/edge/chunks/_d73df637._.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/67c7bf5024309fca.css +3 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-linux-x64}/package.json +46 -39
- package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/.next/standalone/package.json +89 -89
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/tsconfig.json +34 -34
- package/LICENSE +661 -661
- package/README.md +131 -131
- package/bin/fix-standalone-externals.js +79 -79
- package/bin/lib/auto-setup.js +101 -101
- package/bin/mdns-service.js +171 -171
- package/bin/postinstall.js +35 -35
- package/bin/setup-admin.js +189 -189
- package/bin/spaces-dev.js +208 -208
- package/bin/spaces-install.js +483 -426
- package/bin/spaces-setup.js +247 -242
- package/bin/spaces.js +465 -465
- package/bin/terminal-server.js +1117 -1117
- package/package.json +89 -89
- package/.next/standalone/.claude/settings.local.json +0 -11
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__086be15a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__20353b76._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b6758fc._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2e9d1d5a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__34c34116._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3ce30e4e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__43112c34._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__47a63195._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__60689e2b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__83b9bcf3._.js +0 -11
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__89124c96._.js +0 -243
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8c2eee30._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8ffcf827._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e343d64._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a651ede9._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4b692df._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4edb4d6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b71497ab._.js +0 -243
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bef2ed87._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c525457e._.js +0 -19
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ccc27199._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ce5edd98._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dd2e81be._.js +0 -11
- package/.next/standalone/.next/static/chunks/ff5fac1bd7b518dd.css +0 -3
- package/.next/standalone/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64.node +0 -0
- /package/.next/standalone/.next/static/{U-EFIvMEHFIoGaoj6xBXK → nbYSIjUtkSwSvTgyR5p00}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{U-EFIvMEHFIoGaoj6xBXK → nbYSIjUtkSwSvTgyR5p00}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{U-EFIvMEHFIoGaoj6xBXK → nbYSIjUtkSwSvTgyR5p00}/_ssgManifest.js +0 -0
- /package/.next/standalone/node_modules/@img/{sharp-win32-x64 → sharp-libvips-linux-x64}/versions.json +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[
|
|
1
|
+
module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.3",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,a=!r;function s(){let s="0.0.0";try{s=e.r(4730).version}catch{}return{tier:t,version:s,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:a,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>s])},69919,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),p=e.i(47587),u=e.i(66012),h=e.i(70101),x=e.i(74838),g=e.i(10372),v=e.i(93695);e.i(52474);var m=e.i(220),f=e.i(89171),R=e.i(17516);function y(){return f.NextResponse.json((0,R.getTierFlags)())}e.s(["GET",()=>y,"dynamic",0,"force-dynamic"],97507);var w=e.i(97507);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tier/route",pathname:"/api/tier",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/tier/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:E,workUnitAsyncStorage:C,serverHooks:A}=b;function T(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:C})}async function k(e,t,n){b.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/tier/route";f=f.replace(/\/index$/,"")||"/";let R=await b.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:E,parsedUrl:C,isDraftMode:A,prerenderManifest:T,routerServerContext:k,isOnDemandRevalidate:N,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:S}=R,_=(0,o.normalizeAppPath)(f),O=!!(T.dynamicRoutes[_]||T.routes[P]),I=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,C,!1):t.end("This page could not be found"),null);if(O&&!A){let e=!!T.routes[P],t=T.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new v.NoFallbackError}}let U=null;!O||b.isDev||A||(U="/index"===(U=P)?"/":U);let H=!0===b.isDev||!O,D=O&&!H;S&&q&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:q,serverActionsManifest:S});let M=e.method||"GET",F=(0,s.getTracer)(),L=F.getActiveScopeSpan(),$={params:w,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>b.onRequestError(e,t,n,a,k)},sharedContext:{buildId:y}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let i=async e=>b.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${f}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&N&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!O)return await (0,u.sendResponse)(K,B,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[g.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,k),t}},c=await b.handleResponse({req:e,nextConfig:E,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:j,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:o});if(!O)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",N?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return o&&O||v.delete(g.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,x.getCacheControlHeader)(c.cacheControl)),await (0,u.sendResponse)(K,B,new Response(c.value.body,{headers:v,status:c.value.status||200})),null};L?await l(L):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,k),O)throw t;return await (0,u.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>T,"routeModule",()=>b,"serverHooks",()=>A,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>C],69919)}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0e4c2d35._.js.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
module.exports=[24725,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,s)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,s)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),s=e.i(22734),r=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let s=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(s=t.admin.resolveShellUser(e))}catch{}let n=s===r.default.userInfo().username?r.default.homedir():`/home/${s}`,o=s===r.default.userInfo().username?t.default.join(r.default.homedir(),".spaces"):t.default.join(r.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function d(e){let{spacesDir:t}=o(e);s.default.existsSync(t)||s.default.mkdirSync(t,{recursive:!0})}function c(e){let{configPath:t,spacesDir:r}=o(e);try{if(s.default.existsSync(t)){let e=JSON.parse(s.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}s.default.existsSync(r)||s.default.mkdirSync(r,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return s.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function l(e,t){let r={...c(e),...t},{configPath:n}=o(e);return s.default.writeFileSync(n,JSON.stringify(r,null,2)),r}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>d,"getUserPaths",()=>o,"readConfig",()=>c,"writeConfig",()=>l])},10430,(e,t,s)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),s=e.i(46786),r=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return r.HAS_AUTH&&e.headers.get("x-auth-user")||s.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||s.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,s)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,s)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,s)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),s=e.i(14747);let r=null,n=!1;function a(){if(!n){for(let e of function(){let e=[s.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(s.default.delimiter))t&&e.push(s.default.join(t,"_anchor.js"));return e}())try{r=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return r}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.3",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),s="team"===t||"federation"===t,r="federation"===t,n=!s;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:s,hasAdmin:s,hasCollaboration:s,hasNetwork:r,hasMultiuser:s,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,s,"HAS_MULTIUSER",0,s,"getTierFlags",()=>a])},46786,(e,t,s)=>{t.exports=e.x("os",()=>require("os"))},85148,(e,t,s)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},7304,e=>{"use strict";var t=e.i(85148),s=e.i(15286),r=e.i(79832);let n=new Map;function a(){let a=(0,r.getCurrentUser)(),i=n.get(a);if(i)return i;(0,s.ensureUserSpacesDir)(a);let{dbPath:o}=(0,s.getUserPaths)(a),d=new t.default(o);return d.pragma("journal_mode = WAL"),d.pragma("synchronous = NORMAL"),d.pragma("foreign_keys = ON"),function(t){let s;t.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
name TEXT NOT NULL,
|
|
5
|
+
path TEXT NOT NULL,
|
|
6
|
+
claude_path TEXT NOT NULL,
|
|
7
|
+
session_count INTEGER DEFAULT 0,
|
|
8
|
+
last_activity TEXT
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
12
|
+
id TEXT PRIMARY KEY,
|
|
13
|
+
session_id TEXT NOT NULL,
|
|
14
|
+
project_id TEXT NOT NULL,
|
|
15
|
+
first_prompt TEXT,
|
|
16
|
+
summary TEXT,
|
|
17
|
+
message_count INTEGER DEFAULT 0,
|
|
18
|
+
created TEXT,
|
|
19
|
+
modified TEXT,
|
|
20
|
+
git_branch TEXT,
|
|
21
|
+
project_path TEXT,
|
|
22
|
+
full_path TEXT NOT NULL,
|
|
23
|
+
starred INTEGER DEFAULT 0,
|
|
24
|
+
custom_name TEXT,
|
|
25
|
+
notes TEXT,
|
|
26
|
+
FOREIGN KEY (project_id) REFERENCES projects(id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_created ON sessions(created);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_modified ON sessions(modified);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_starred ON sessions(starred);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
35
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
36
|
+
name TEXT NOT NULL,
|
|
37
|
+
description TEXT DEFAULT '',
|
|
38
|
+
color TEXT DEFAULT '#6366f1',
|
|
39
|
+
created TEXT DEFAULT (datetime('now'))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS workspace_sessions (
|
|
43
|
+
workspace_id INTEGER NOT NULL,
|
|
44
|
+
session_id TEXT NOT NULL,
|
|
45
|
+
PRIMARY KEY (workspace_id, session_id),
|
|
46
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
47
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
51
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
|
+
name TEXT NOT NULL UNIQUE,
|
|
53
|
+
color TEXT DEFAULT '#8b5cf6'
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS session_tags (
|
|
57
|
+
session_id TEXT NOT NULL,
|
|
58
|
+
tag_id INTEGER NOT NULL,
|
|
59
|
+
PRIMARY KEY (session_id, tag_id),
|
|
60
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
61
|
+
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS sync_state (
|
|
65
|
+
file_path TEXT PRIMARY KEY,
|
|
66
|
+
mtime INTEGER,
|
|
67
|
+
byte_offset INTEGER DEFAULT 0,
|
|
68
|
+
last_synced TEXT DEFAULT (datetime('now'))
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS panes (
|
|
72
|
+
id TEXT PRIMARY KEY,
|
|
73
|
+
title TEXT NOT NULL DEFAULT 'Terminal',
|
|
74
|
+
color TEXT NOT NULL DEFAULT '#6366f1',
|
|
75
|
+
cwd TEXT NOT NULL,
|
|
76
|
+
claude_session_id TEXT,
|
|
77
|
+
grid_col INTEGER NOT NULL DEFAULT 0,
|
|
78
|
+
grid_row INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
shell TEXT,
|
|
81
|
+
created TEXT DEFAULT (datetime('now'))
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS totp (
|
|
85
|
+
username TEXT PRIMARY KEY,
|
|
86
|
+
secret TEXT NOT NULL,
|
|
87
|
+
enabled INTEGER DEFAULT 0,
|
|
88
|
+
created TEXT DEFAULT (datetime('now'))
|
|
89
|
+
);
|
|
90
|
+
`);let r=(e,s,r)=>{try{t.exec(`ALTER TABLE ${e} ADD COLUMN ${s} ${r}`)}catch{}};r("workspaces","is_active","INTEGER DEFAULT 0"),r("workspaces","updated","TEXT"),r("panes","workspace_id","INTEGER"),r("panes","is_popout","INTEGER DEFAULT 0"),r("panes","win_x","INTEGER"),r("panes","win_y","INTEGER"),r("panes","win_width","INTEGER DEFAULT 800"),r("panes","win_height","INTEGER DEFAULT 600"),r("panes","agent_type","TEXT DEFAULT 'shell'"),r("panes","custom_command","TEXT"),r("panes","node_id","TEXT"),r("sessions","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_path","TEXT");try{t.exec("UPDATE projects SET agent_path = claude_path WHERE agent_path IS NULL AND claude_path IS NOT NULL")}catch{}r("workspaces","collaboration","INTEGER DEFAULT 0"),r("panes","is_collaborating","INTEGER DEFAULT 0");try{t.exec("CREATE INDEX IF NOT EXISTS idx_sessions_agent_type ON sessions(agent_type)")}catch{}try{t.exec("CREATE INDEX IF NOT EXISTS idx_projects_agent_type ON projects(agent_type)")}catch{}let n=t.prepare("SELECT id FROM workspaces WHERE name = 'Default'").get();n?(s=n.id,t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()||t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(s)):s=Number(t.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES ('Default', 'Default workspace', '#6366f1', 1)").run().lastInsertRowid);let a=t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();a&&t.prepare("UPDATE panes SET workspace_id = ? WHERE workspace_id IS NULL").run(a.id);try{t.exec(`
|
|
91
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
|
|
92
|
+
session_id,
|
|
93
|
+
content,
|
|
94
|
+
content_rowid='rowid'
|
|
95
|
+
);
|
|
96
|
+
`)}catch{}try{let{getTeams:s}=e.r(99944),r=s();r&&r.db.runMigrations(t)}catch{}}(d),n.set(a,d),d}e.s(["getDb",()=>a])},65836,e=>{"use strict";var t=e.i(7304),s=e.i(60569),r=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function d(){let d=(0,r.getCurrentUser)();if(!a.has(d)){if((0,t.getDb)(),a.add(d),!o){o=!0;let s=(0,n.getTeams)();if(s){let{sseManager:r}=await e.A(72354);s.init({getDb:t.getDb,sseManager:r})}}if(!i.has(d)){i.add(d);try{let e=await (0,s.fullSync)();console.log(`[spaces:${d}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,s.enrichMissingSessions)();t>0&&console.log(`[spaces:${d}] Enriched ${t} sessions from JSONL`),(0,s.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${d}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${d}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${d}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${d}] Sync error:`,e)}finally{i.delete(d)}}}}e.s(["ensureInitialized",()=>d])},96823,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),d=e.i(16795),c=e.i(87718),l=e.i(95169),u=e.i(47587),E=e.i(66012),p=e.i(70101),T=e.i(74838),N=e.i(10372),f=e.i(93695);e.i(52474);var R=e.i(220),h=e.i(89171),g=e.i(79832),A=e.i(65836),m=e.i(50837);async function I(e,{params:t}){let s=(0,g.getAuthUser)(e);return(0,g.withUser)(s,async()=>{await (0,A.ensureInitialized)();let{id:e}=await t,s=(0,m.getPaneById)(e);return s?h.NextResponse.json(s):h.NextResponse.json({error:"Not found"},{status:404})})}async function x(e,{params:t}){let s=(0,g.getAuthUser)(e);return(0,g.withUser)(s,async()=>{await (0,A.ensureInitialized)();let{id:s}=await t,r=await e.json();return(0,m.updatePane)(s,r),h.NextResponse.json({success:!0})})}async function _(e,{params:t}){let s=(0,g.getAuthUser)(e);return(0,g.withUser)(s,async()=>{await (0,A.ensureInitialized)();let{id:s}=await t,r=await e.json();return(0,m.updatePane)(s,r),h.NextResponse.json({success:!0})})}async function y(e,{params:t}){let s=(0,g.getAuthUser)(e);return(0,g.withUser)(s,async()=>{await (0,A.ensureInitialized)();let{id:e}=await t;return(0,m.deletePane)(e),h.NextResponse.json({success:!0})})}e.s(["DELETE",()=>y,"GET",()=>I,"POST",()=>_,"PUT",()=>x],15629);var w=e.i(15629);let S=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/panes/[id]/route",pathname:"/api/panes/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/panes/[id]/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:L,workUnitAsyncStorage:U,serverHooks:O}=S;function v(){return(0,r.patchFetch)({workAsyncStorage:L,workUnitAsyncStorage:U})}async function D(e,t,r){S.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let h="/api/panes/[id]/route";h=h.replace(/\/index$/,"")||"/";let g=await S.prepare(e,t,{srcPage:h,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,params:m,nextConfig:I,parsedUrl:x,isDraftMode:_,prerenderManifest:y,routerServerContext:w,isOnDemandRevalidate:L,revalidateOnlyGenerated:U,resolvedPathname:O,clientReferenceManifest:v,serverActionsManifest:D}=g,C=(0,o.normalizeAppPath)(h),j=!!(y.dynamicRoutes[C]||y.routes[O]),b=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,x,!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(I.experimental.adapterPath)return await b();throw new f.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,a.getTracer)(),G=q.getActiveScopeSpan(),M={params:m,prerenderManifest:y,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:X,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,n)=>S.onRequestError(e,t,r,n,w)},sharedContext:{buildId:A}},H=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),Y=c.NextRequestAdapter.fromNodeNextRequest(H,(0,c.signalFromNodeResponse)(t));try{let i=async e=>S.handle(Y,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=q.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${P} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${P} ${h}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),d=async n=>{var a,d;let c=async({previousCacheEntry:s})=>{try{if(!o&&L&&U&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=M.renderOpts.fetchMetrics;let d=M.renderOpts.pendingWaitUntil;d&&r.waitUntil&&(r.waitUntil(d),d=void 0);let c=M.renderOpts.collectedTags;if(!j)return await (0,E.sendResponse)(H,$,a,M.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[N.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=N.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,r=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=N.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:h,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:L})},!1,w),t}},l=await S.handleResponse({req:e,nextConfig:I,cacheKey:F,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:L,revalidateOnlyGenerated:U,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:o});if(!j)return null;if((null==l||null==(a=l.value)?void 0:a.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",L?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return o&&j||f.delete(N.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,T.getCacheControlHeader)(l.cacheControl)),await (0,E.sendResponse)(H,$,new Response(l.value.body,{headers:f,status:l.value.status||200})),null};G?await d(G):await q.withPropagatedContext(e.headers,()=>q.trace(l.BaseServerSpan.handleRequest,{spanName:`${P} ${h}`,kind:a.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},d))}catch(t){if(t instanceof f.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:L})},!1,w),j)throw t;return await (0,E.sendResponse)(H,$,new Response(null,{status:500})),null}}e.s(["handler",()=>D,"patchFetch",()=>v,"routeModule",()=>S,"serverHooks",()=>O,"workAsyncStorage",()=>L,"workUnitAsyncStorage",()=>U],96823)},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__130dee4b._.js.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
module.exports=[24725,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},22734,(e,t,s)=>{t.exports=e.x("fs",()=>require("fs"))},54799,(e,t,s)=>{t.exports=e.x("crypto",()=>require("crypto"))},15286,e=>{"use strict";var t=e.i(14747),s=e.i(22734),r=e.i(46786),n=e.i(54799),a=e.i(17516),i=e.i(99944);function o(e){let s=e;if(a.HAS_MULTIUSER)try{let t=(0,i.getTeams)();t&&(s=t.admin.resolveShellUser(e))}catch{}let n=s===r.default.userInfo().username?r.default.homedir():`/home/${s}`,o=s===r.default.userInfo().username?t.default.join(r.default.homedir(),".spaces"):t.default.join(r.default.homedir(),".spaces","users",e);return{claudeDir:t.default.join(n,".claude"),claudeProjectsDir:t.default.join(n,".claude","projects"),statsPath:t.default.join(n,".claude","stats-cache.json"),codexDir:t.default.join(n,".codex"),codexSessionsDir:t.default.join(n,".codex","sessions"),geminiDir:t.default.join(n,".gemini"),geminiChatsBaseDir:t.default.join(n,".gemini","tmp"),geminiProjectsRegistry:t.default.join(n,".gemini","projects.json"),spacesDir:o,dbPath:t.default.join(o,"spaces.db"),configPath:t.default.join(o,"config.json")}}function d(e){let{spacesDir:t}=o(e);s.default.existsSync(t)||s.default.mkdirSync(t,{recursive:!0})}function c(e){let{configPath:t,spacesDir:r}=o(e);try{if(s.default.existsSync(t)){let e=JSON.parse(s.default.readFileSync(t,"utf-8"));return{installId:e.installId||n.default.randomUUID(),telemetryOptOut:!!e.telemetryOptOut,devDirectories:Array.isArray(e.devDirectories)?e.devDirectories.filter(e=>"string"==typeof e):[]}}}catch{}s.default.existsSync(r)||s.default.mkdirSync(r,{recursive:!0});let a={installId:n.default.randomUUID(),telemetryOptOut:!1,devDirectories:[]};return s.default.writeFileSync(t,JSON.stringify(a,null,2)),a}function l(e,t){let r={...c(e),...t},{configPath:n}=o(e);return s.default.writeFileSync(n,JSON.stringify(r,null,2)),r}parseInt(process.env.SPACES_PORT||"3457",10),e.s(["ensureUserSpacesDir",()=>d,"getUserPaths",()=>o,"readConfig",()=>c,"writeConfig",()=>l])},10430,(e,t,s)=>{t.exports=e.x("async_hooks",()=>require("async_hooks"))},79832,e=>{"use strict";var t=e.i(10430),s=e.i(46786),r=e.i(17516);let n=new t.AsyncLocalStorage;function a(e){return r.HAS_AUTH&&e.headers.get("x-auth-user")||s.default.userInfo().username}function i(e,t){return n.run(e,t)}function o(){let e=n.getStore();return e||s.default.userInfo().username}e.s(["getAuthUser",()=>a,"getCurrentUser",()=>o,"withUser",()=>i])},62562,(e,t,s)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,s)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,s)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,s)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),s=e.i(14747);let r=null,n=!1;function a(){if(!n){for(let e of function(){let e=[s.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(s.default.delimiter))t&&e.push(s.default.join(t,"_anchor.js"));return e}())try{r=(0,t.createRequire)(e)("@spaces/teams");break}catch{}n=!0}return r}function i(){return null!==a()}e.s(["getTeams",()=>a,"hasTeams",()=>i])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.3",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),s="team"===t||"federation"===t,r="federation"===t,n=!s;function a(){let a="0.0.0";try{a=e.r(4730).version}catch{}return{tier:t,version:a,hasAuth:s,hasAdmin:s,hasCollaboration:s,hasNetwork:r,hasMultiuser:s,isDesktop:n,basePath:""}}e.s(["HAS_AUTH",0,s,"HAS_MULTIUSER",0,s,"getTierFlags",()=>a])},46786,(e,t,s)=>{t.exports=e.x("os",()=>require("os"))},85148,(e,t,s)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},7304,e=>{"use strict";var t=e.i(85148),s=e.i(15286),r=e.i(79832);let n=new Map;function a(){let a=(0,r.getCurrentUser)(),i=n.get(a);if(i)return i;(0,s.ensureUserSpacesDir)(a);let{dbPath:o}=(0,s.getUserPaths)(a),d=new t.default(o);return d.pragma("journal_mode = WAL"),d.pragma("synchronous = NORMAL"),d.pragma("foreign_keys = ON"),function(t){let s;t.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
name TEXT NOT NULL,
|
|
5
|
+
path TEXT NOT NULL,
|
|
6
|
+
claude_path TEXT NOT NULL,
|
|
7
|
+
session_count INTEGER DEFAULT 0,
|
|
8
|
+
last_activity TEXT
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
12
|
+
id TEXT PRIMARY KEY,
|
|
13
|
+
session_id TEXT NOT NULL,
|
|
14
|
+
project_id TEXT NOT NULL,
|
|
15
|
+
first_prompt TEXT,
|
|
16
|
+
summary TEXT,
|
|
17
|
+
message_count INTEGER DEFAULT 0,
|
|
18
|
+
created TEXT,
|
|
19
|
+
modified TEXT,
|
|
20
|
+
git_branch TEXT,
|
|
21
|
+
project_path TEXT,
|
|
22
|
+
full_path TEXT NOT NULL,
|
|
23
|
+
starred INTEGER DEFAULT 0,
|
|
24
|
+
custom_name TEXT,
|
|
25
|
+
notes TEXT,
|
|
26
|
+
FOREIGN KEY (project_id) REFERENCES projects(id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_created ON sessions(created);
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_modified ON sessions(modified);
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_starred ON sessions(starred);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
35
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
36
|
+
name TEXT NOT NULL,
|
|
37
|
+
description TEXT DEFAULT '',
|
|
38
|
+
color TEXT DEFAULT '#6366f1',
|
|
39
|
+
created TEXT DEFAULT (datetime('now'))
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
CREATE TABLE IF NOT EXISTS workspace_sessions (
|
|
43
|
+
workspace_id INTEGER NOT NULL,
|
|
44
|
+
session_id TEXT NOT NULL,
|
|
45
|
+
PRIMARY KEY (workspace_id, session_id),
|
|
46
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
47
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
51
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
52
|
+
name TEXT NOT NULL UNIQUE,
|
|
53
|
+
color TEXT DEFAULT '#8b5cf6'
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS session_tags (
|
|
57
|
+
session_id TEXT NOT NULL,
|
|
58
|
+
tag_id INTEGER NOT NULL,
|
|
59
|
+
PRIMARY KEY (session_id, tag_id),
|
|
60
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
61
|
+
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS sync_state (
|
|
65
|
+
file_path TEXT PRIMARY KEY,
|
|
66
|
+
mtime INTEGER,
|
|
67
|
+
byte_offset INTEGER DEFAULT 0,
|
|
68
|
+
last_synced TEXT DEFAULT (datetime('now'))
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS panes (
|
|
72
|
+
id TEXT PRIMARY KEY,
|
|
73
|
+
title TEXT NOT NULL DEFAULT 'Terminal',
|
|
74
|
+
color TEXT NOT NULL DEFAULT '#6366f1',
|
|
75
|
+
cwd TEXT NOT NULL,
|
|
76
|
+
claude_session_id TEXT,
|
|
77
|
+
grid_col INTEGER NOT NULL DEFAULT 0,
|
|
78
|
+
grid_row INTEGER NOT NULL DEFAULT 0,
|
|
79
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
shell TEXT,
|
|
81
|
+
created TEXT DEFAULT (datetime('now'))
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS totp (
|
|
85
|
+
username TEXT PRIMARY KEY,
|
|
86
|
+
secret TEXT NOT NULL,
|
|
87
|
+
enabled INTEGER DEFAULT 0,
|
|
88
|
+
created TEXT DEFAULT (datetime('now'))
|
|
89
|
+
);
|
|
90
|
+
`);let r=(e,s,r)=>{try{t.exec(`ALTER TABLE ${e} ADD COLUMN ${s} ${r}`)}catch{}};r("workspaces","is_active","INTEGER DEFAULT 0"),r("workspaces","updated","TEXT"),r("panes","workspace_id","INTEGER"),r("panes","is_popout","INTEGER DEFAULT 0"),r("panes","win_x","INTEGER"),r("panes","win_y","INTEGER"),r("panes","win_width","INTEGER DEFAULT 800"),r("panes","win_height","INTEGER DEFAULT 600"),r("panes","agent_type","TEXT DEFAULT 'shell'"),r("panes","custom_command","TEXT"),r("panes","node_id","TEXT"),r("sessions","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_type","TEXT DEFAULT 'claude'"),r("projects","agent_path","TEXT");try{t.exec("UPDATE projects SET agent_path = claude_path WHERE agent_path IS NULL AND claude_path IS NOT NULL")}catch{}r("workspaces","collaboration","INTEGER DEFAULT 0"),r("panes","is_collaborating","INTEGER DEFAULT 0");try{t.exec("CREATE INDEX IF NOT EXISTS idx_sessions_agent_type ON sessions(agent_type)")}catch{}try{t.exec("CREATE INDEX IF NOT EXISTS idx_projects_agent_type ON projects(agent_type)")}catch{}let n=t.prepare("SELECT id FROM workspaces WHERE name = 'Default'").get();n?(s=n.id,t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()||t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(s)):s=Number(t.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES ('Default', 'Default workspace', '#6366f1', 1)").run().lastInsertRowid);let a=t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();a&&t.prepare("UPDATE panes SET workspace_id = ? WHERE workspace_id IS NULL").run(a.id);try{t.exec(`
|
|
91
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
|
|
92
|
+
session_id,
|
|
93
|
+
content,
|
|
94
|
+
content_rowid='rowid'
|
|
95
|
+
);
|
|
96
|
+
`)}catch{}try{let{getTeams:s}=e.r(99944),r=s();r&&r.db.runMigrations(t)}catch{}}(d),n.set(a,d),d}e.s(["getDb",()=>a])},65836,e=>{"use strict";var t=e.i(7304),s=e.i(60569),r=e.i(79832),n=e.i(99944);let a=new Set,i=new Set,o=!1;async function d(){let d=(0,r.getCurrentUser)();if(!a.has(d)){if((0,t.getDb)(),a.add(d),!o){o=!0;let s=(0,n.getTeams)();if(s){let{sseManager:r}=await e.A(72354);s.init({getDb:t.getDb,sseManager:r})}}if(!i.has(d)){i.add(d);try{let e=await (0,s.fullSync)();console.log(`[spaces:${d}] Synced ${e.projects} projects, ${e.sessions} sessions`);let t=await (0,s.enrichMissingSessions)();t>0&&console.log(`[spaces:${d}] Enriched ${t} sessions from JSONL`),(0,s.buildFtsIndex)((e,t)=>{e%10==0&&console.log(`[spaces:${d}] FTS indexing: ${e}/${t}`)}).then(e=>{e>0&&console.log(`[spaces:${d}] FTS indexed ${e} sessions`)}).catch(e=>{console.error(`[spaces:${d}] FTS indexing error:`,e)})}catch(e){console.error(`[spaces:${d}] Sync error:`,e)}finally{i.delete(d)}}}}e.s(["ensureInitialized",()=>d])},77981,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),d=e.i(16795),c=e.i(87718),l=e.i(95169),E=e.i(47587),u=e.i(66012),p=e.i(70101),T=e.i(74838),f=e.i(10372),N=e.i(93695);e.i(52474);var R=e.i(220),h=e.i(89171),g=e.i(79832),A=e.i(65836),m=e.i(50837);async function I(e){let t=(0,g.getAuthUser)(e);return(0,g.withUser)(t,async()=>{await (0,A.ensureInitialized)();let e=(0,m.getAllProjects)();return h.NextResponse.json(e)})}e.s(["GET",()=>I],50364);var _=e.i(50364);let x=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:_}),{workAsyncStorage:S,workUnitAsyncStorage:y,serverHooks:L}=x;function w(){return(0,r.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:y})}async function U(e,t,r){x.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let h="/api/projects/route";h=h.replace(/\/index$/,"")||"/";let g=await x.prepare(e,t,{srcPage:h,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,params:m,nextConfig:I,parsedUrl:_,isDraftMode:S,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,_,!1):t.end("This page could not be found"),null);if(j&&!S){let e=!!y.routes[O],t=y.dynamicRoutes[C];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await b();throw new N.NoFallbackError}}let F=null;!j||x.isDev||S||(F="/index"===(F=O)?"/":F);let X=!0===x.isDev||!j,k=j&&!X;D&&v&&(0,i.setManifestsSingleton)({page:h,clientReferenceManifest:v,serverActionsManifest:D});let P=e.method||"GET",q=(0,a.getTracer)(),G=q.getActiveScopeSpan(),M={params:m,prerenderManifest:y,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:X,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,n)=>x.onRequestError(e,t,r,n,L)},sharedContext:{buildId:A}},H=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),Y=c.NextRequestAdapter.fromNodeNextRequest(H,(0,c.signalFromNodeResponse)(t));try{let i=async e=>x.handle(Y,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=q.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${P} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${P} ${h}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),d=async n=>{var a,d;let c=async({previousCacheEntry:s})=>{try{if(!o&&w&&U&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=M.renderOpts.fetchMetrics;let d=M.renderOpts.pendingWaitUntil;d&&r.waitUntil&&(r.waitUntil(d),d=void 0);let c=M.renderOpts.collectedTags;if(!j)return await (0,u.sendResponse)(H,$,a,M.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(a.headers);c&&(t[f.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,r=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:h,routeType:"route",revalidateReason:(0,E.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:w})},!1,L),t}},l=await x.handleResponse({req:e,nextConfig:I,cacheKey:F,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:w,revalidateOnlyGenerated:U,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:o});if(!j)return null;if((null==l||null==(a=l.value)?void 0:a.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",w?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let N=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return o&&j||N.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||N.get("Cache-Control")||N.set("Cache-Control",(0,T.getCacheControlHeader)(l.cacheControl)),await (0,u.sendResponse)(H,$,new Response(l.value.body,{headers:N,status:l.value.status||200})),null};G?await d(G):await q.withPropagatedContext(e.headers,()=>q.trace(l.BaseServerSpan.handleRequest,{spanName:`${P} ${h}`,kind:a.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},d))}catch(t){if(t instanceof N.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:C,routeType:"route",revalidateReason:(0,E.getRevalidateReason)({isStaticGeneration:k,isOnDemandRevalidate:w})},!1,L),j)throw t;return await (0,u.sendResponse)(H,$,new Response(null,{status:500})),null}}e.s(["handler",()=>U,"patchFetch",()=>w,"routeModule",()=>x,"serverHooks",()=>L,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>y],77981)},72354,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_events_sse_ts_1ad73980._.js"].map(t=>e.l(t))).then(()=>t(20776)))}];
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__142c2f41._.js.map
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
module.exports=[19668,(e,t,s)=>{t.exports=e.x("readline",()=>require("readline"))},60569,21150,50837,e=>{"use strict";var t=e.i(22734),s=e.i(14747),r=e.i(15286),a=e.i(79832),i=e.i(19668);function n(e){try{let s=t.default.readFileSync(e,"utf-8");return JSON.parse(s)}catch{return null}}async function o(e,s=0,r=50){return new Promise((a,n)=>{let o=[],p=0,d=0;if(!t.default.existsSync(e))return void a({messages:[],total:0,hasMore:!1});let l=t.default.createReadStream(e,{encoding:"utf-8"}),c=i.default.createInterface({input:l,crlfDelay:1/0});c.on("line",e=>{if(e.trim())try{let t=JSON.parse(e);("user"===t.type||"assistant"===t.type||"system"===t.type)&&(p>=s&&d<r&&(o.push(t),d++),p++)}catch{}}),c.on("close",()=>{a({messages:o,total:p,hasMore:p>s+r})}),c.on("error",n)})}async function p(e){return new Promise(s=>{let r=[];if(!t.default.existsSync(e))return void s("");let a=t.default.createReadStream(e,{encoding:"utf-8"}),n=i.default.createInterface({input:a,crlfDelay:1/0});n.on("line",e=>{if(e.trim())try{let t=JSON.parse(e);if("user"===t.type||"assistant"===t.type){let e=function(e){if("user"===e.type&&"message"in e){let t=e.message.content;return"string"==typeof t?t:""}if("assistant"===e.type&&"message"in e){let t=e.message.content;return Array.isArray(t)?t.filter(e=>"text"===e.type&&e.text).map(e=>e.text).join("\n"):""}return""}(t);e&&r.push(e)}}catch{}}),n.on("close",()=>{s(r.join("\n").slice(0,1e5))})})}function d(e){try{let s=t.default.readFileSync(e,"utf-8");return JSON.parse(s)}catch{return null}}async function l(e){return new Promise(s=>{let r="",a=0,n="",o="",p="",d="",l="";if(!t.default.existsSync(e))return void s(null);let c=t.default.createReadStream(e,{encoding:"utf-8"}),u=i.default.createInterface({input:c,crlfDelay:1/0});u.on("line",e=>{if(e.trim())try{let t=JSON.parse(e);if(("user"===t.type||"assistant"===t.type)&&(a++,t.timestamp&&(n||(n=t.timestamp),o=t.timestamp)),"user"===t.type&&!r){let e=t.message?.content;r="string"==typeof e?e.slice(0,200):"",p=t.gitBranch||"",d=t.cwd||""}"assistant"!==t.type||l||(l=t.message?.model||"")}catch{}}),u.on("close",()=>{s({firstPrompt:r,messageCount:a,created:n,modified:o,gitBranch:p,projectPath:d,model:l})})})}function c(e){try{return t.default.readdirSync(e)}catch{return[]}}function u(e){try{return t.default.statSync(e).isDirectory()}catch{return!1}}e.s(["extractAllText",()=>p,"parseSessionIndex",()=>n,"readMessages",()=>o,"readStatsCache",()=>d,"scanJSONLMetadata",()=>l],21150);var f=e.i(54799);let m="#### ";var E=e.i(7304);function g(e){(0,E.getDb)().prepare(`
|
|
2
|
+
INSERT INTO projects (id, name, path, claude_path, agent_path, agent_type)
|
|
3
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
4
|
+
ON CONFLICT(id) DO UPDATE SET name=excluded.name, path=excluded.path, claude_path=excluded.claude_path, agent_path=excluded.agent_path, agent_type=excluded.agent_type
|
|
5
|
+
`).run(e.id,e.name,e.path,e.claudePath,e.claudePath,e.agentType||"claude")}function h(){return(0,E.getDb)().prepare(`
|
|
6
|
+
SELECT p.id, p.name, p.path, p.claude_path as claudePath,
|
|
7
|
+
p.agent_type as agentType,
|
|
8
|
+
COUNT(s.id) as sessionCount,
|
|
9
|
+
MAX(s.modified) as lastActivity
|
|
10
|
+
FROM projects p
|
|
11
|
+
LEFT JOIN sessions s ON s.project_id = p.id
|
|
12
|
+
GROUP BY p.id
|
|
13
|
+
ORDER BY lastActivity DESC
|
|
14
|
+
`).all()}function _(e){(0,E.getDb)().prepare(`
|
|
15
|
+
INSERT INTO sessions (id, session_id, project_id, first_prompt, summary, message_count, created, modified, git_branch, project_path, full_path, agent_type)
|
|
16
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
17
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
18
|
+
first_prompt = CASE WHEN excluded.first_prompt != '' THEN excluded.first_prompt ELSE sessions.first_prompt END,
|
|
19
|
+
summary = CASE WHEN excluded.summary != '' THEN excluded.summary ELSE sessions.summary END,
|
|
20
|
+
message_count = CASE WHEN excluded.message_count > sessions.message_count THEN excluded.message_count ELSE sessions.message_count END,
|
|
21
|
+
modified = CASE WHEN excluded.modified != '' THEN excluded.modified ELSE sessions.modified END,
|
|
22
|
+
git_branch = CASE WHEN excluded.git_branch != '' THEN excluded.git_branch ELSE sessions.git_branch END,
|
|
23
|
+
full_path = CASE WHEN excluded.full_path != '' THEN excluded.full_path ELSE sessions.full_path END,
|
|
24
|
+
agent_type=excluded.agent_type
|
|
25
|
+
`).run(e.id,e.sessionId,e.projectId,e.firstPrompt,e.summary,e.messageCount,e.created,e.modified,e.gitBranch,e.projectPath,e.fullPath,e.agentType||"claude")}function S(e={}){let t=(0,E.getDb)(),{projectId:s,projectPath:r,starred:a,tagId:i,search:n,sortBy:o="modified",sortDir:p="DESC",offset:d=0,limit:l=50}=e,c=[],u=[];if(s&&(c.push("s.project_id = ?"),u.push(s)),r&&(c.push("s.project_path = ?"),u.push(r)),void 0!==a&&(c.push("s.starred = ?"),u.push(+!!a)),i&&(c.push("EXISTS (SELECT 1 FROM session_tags st WHERE st.session_id = s.id AND st.tag_id = ?)"),u.push(i)),n){c.push("(s.first_prompt LIKE ? OR s.summary LIKE ? OR s.custom_name LIKE ?)");let e=`%${n}%`;u.push(e,e,e)}e.agentType&&(c.push("s.agent_type = ?"),u.push(e.agentType));let f=c.length>0?`WHERE ${c.join(" AND ")}`:"",m=t.prepare(`SELECT COUNT(*) as total FROM sessions s ${f}`).get(...u),g=t.prepare(`
|
|
26
|
+
SELECT s.id, s.session_id as sessionId, s.project_id as projectId,
|
|
27
|
+
p.name as projectName, s.first_prompt as firstPrompt,
|
|
28
|
+
s.summary, s.message_count as messageCount,
|
|
29
|
+
s.created, s.modified, s.git_branch as gitBranch,
|
|
30
|
+
s.project_path as projectPath, s.full_path as fullPath,
|
|
31
|
+
s.starred, s.custom_name as customName, s.notes,
|
|
32
|
+
s.agent_type as agentType
|
|
33
|
+
FROM sessions s
|
|
34
|
+
LEFT JOIN projects p ON p.id = s.project_id
|
|
35
|
+
${f}
|
|
36
|
+
ORDER BY ${{created:"s.created",modified:"s.modified",messages:"s.message_count",name:"COALESCE(s.custom_name, s.summary, s.first_prompt)"}[o]||"s.modified"} ${"ASC"===p?"ASC":"DESC"}
|
|
37
|
+
LIMIT ? OFFSET ?
|
|
38
|
+
`).all(...u,l,d),h=t.prepare(`
|
|
39
|
+
SELECT t.name FROM tags t
|
|
40
|
+
JOIN session_tags st ON st.tag_id = t.id
|
|
41
|
+
WHERE st.session_id = ?
|
|
42
|
+
`),_=t.prepare(`
|
|
43
|
+
SELECT w.id, w.name, w.color FROM workspaces w
|
|
44
|
+
JOIN workspace_sessions ws ON ws.workspace_id = w.id
|
|
45
|
+
WHERE ws.session_id = ?
|
|
46
|
+
`);for(let e of g){let t=h.all(e.id);e.tags=t.map(e=>e.name),e.workspaces=_.all(e.id),e.starred=!!e.starred}return{sessions:g,total:m.total}}function T(e){let t=(0,E.getDb)(),s=t.prepare(`
|
|
47
|
+
SELECT s.id, s.session_id as sessionId, s.project_id as projectId,
|
|
48
|
+
p.name as projectName, s.first_prompt as firstPrompt,
|
|
49
|
+
s.summary, s.message_count as messageCount,
|
|
50
|
+
s.created, s.modified, s.git_branch as gitBranch,
|
|
51
|
+
s.project_path as projectPath, s.full_path as fullPath,
|
|
52
|
+
s.starred, s.custom_name as customName, s.notes,
|
|
53
|
+
s.agent_type as agentType
|
|
54
|
+
FROM sessions s
|
|
55
|
+
LEFT JOIN projects p ON p.id = s.project_id
|
|
56
|
+
WHERE s.id = ? OR s.session_id = ?
|
|
57
|
+
`).get(e,e);if(!s)return null;let r=t.prepare(`
|
|
58
|
+
SELECT t.name FROM tags t
|
|
59
|
+
JOIN session_tags st ON st.tag_id = t.id
|
|
60
|
+
WHERE st.session_id = ?
|
|
61
|
+
`).all(s.id);return s.tags=r.map(e=>e.name),s.starred=!!s.starred,s}function y(e){let t=(0,E.getDb)(),s=t.prepare("SELECT starred FROM sessions WHERE id = ? OR session_id = ?").get(e,e);if(!s)return!1;let r=+!s.starred;return t.prepare("UPDATE sessions SET starred = ? WHERE id = ? OR session_id = ?").run(r,e,e),!!r}function O(e,t){(0,E.getDb)().prepare("UPDATE sessions SET notes = ? WHERE id = ? OR session_id = ?").run(t,e,e)}function R(e,t,s){return{id:Number((0,E.getDb)().prepare("INSERT INTO workspaces (name, description, color) VALUES (?, ?, ?)").run(e,t||"",s||"#6366f1").lastInsertRowid),name:e,description:t||"",color:s||"#6366f1",created:new Date().toISOString()}}function w(e,t){(0,E.getDb)().prepare("INSERT OR IGNORE INTO workspace_sessions (workspace_id, session_id) VALUES (?, ?)").run(e,t)}function N(e,t){(0,E.getDb)().prepare("DELETE FROM workspace_sessions WHERE workspace_id = ? AND session_id = ?").run(e,t)}function I(e,t){return{id:Number((0,E.getDb)().prepare("INSERT OR IGNORE INTO tags (name, color) VALUES (?, ?)").run(e,t||"#8b5cf6").lastInsertRowid),name:e,color:t||"#8b5cf6"}}function j(){return(0,E.getDb)().prepare("SELECT * FROM tags ORDER BY name").all()}function D(e,t){let s=(0,E.getDb)(),r=s.prepare("SELECT id FROM tags WHERE name = ?").get(t);r||(r={id:Number(s.prepare("INSERT INTO tags (name) VALUES (?)").run(t).lastInsertRowid)}),s.prepare("INSERT OR IGNORE INTO session_tags (session_id, tag_id) VALUES (?, ?)").run(e,r.id)}function C(e,t){let s=(0,E.getDb)(),r=s.prepare("SELECT id FROM tags WHERE name = ?").get(t);r&&s.prepare("DELETE FROM session_tags WHERE session_id = ? AND tag_id = ?").run(e,r.id)}function P(e){let t=(0,E.getDb)();t.prepare("DELETE FROM session_tags WHERE tag_id = ?").run(e),t.prepare("DELETE FROM tags WHERE id = ?").run(e)}function L(e,t){(0,E.getDb)().prepare("UPDATE tags SET color = ? WHERE id = ?").run(t,e)}function b(e){return(0,E.getDb)().prepare(`
|
|
62
|
+
SELECT t.id, t.name, t.color FROM tags t
|
|
63
|
+
JOIN session_tags st ON st.tag_id = t.id
|
|
64
|
+
WHERE st.session_id = ?
|
|
65
|
+
ORDER BY t.name
|
|
66
|
+
`).all(e)}function W(e,t){(0,E.getDb)().prepare("UPDATE sessions SET custom_name = ? WHERE id = ? OR session_id = ?").run(t||null,e,e)}function A(e,t){let s=(0,E.getDb)();void 0!==t.name&&s.prepare("UPDATE workspaces SET name = ? WHERE id = ?").run(t.name,e),void 0!==t.description&&s.prepare("UPDATE workspaces SET description = ? WHERE id = ?").run(t.description,e),void 0!==t.color&&s.prepare("UPDATE workspaces SET color = ? WHERE id = ?").run(t.color,e),void 0!==t.collaboration&&s.prepare("UPDATE workspaces SET collaboration = ? WHERE id = ?").run(+!!t.collaboration,e)}function F(e){let t=(0,E.getDb)(),s=t.prepare(`
|
|
67
|
+
SELECT w.id, w.name, w.color FROM workspaces w
|
|
68
|
+
JOIN workspace_sessions ws ON ws.workspace_id = w.id
|
|
69
|
+
WHERE ws.session_id = ?
|
|
70
|
+
`).all(e);return s.length>0?s:t.prepare(`
|
|
71
|
+
SELECT DISTINCT w.id, w.name, w.color FROM workspaces w
|
|
72
|
+
JOIN panes p ON p.workspace_id = w.id
|
|
73
|
+
WHERE p.claude_session_id = ?
|
|
74
|
+
`).all(e)}function k(e){let t=(0,E.getDb)(),s=t.prepare(`
|
|
75
|
+
SELECT s.id, s.session_id as sessionId, s.project_id as projectId,
|
|
76
|
+
p.name as projectName, s.first_prompt as firstPrompt,
|
|
77
|
+
s.summary, s.message_count as messageCount,
|
|
78
|
+
s.created, s.modified, s.git_branch as gitBranch,
|
|
79
|
+
s.project_path as projectPath, s.full_path as fullPath,
|
|
80
|
+
s.starred, s.custom_name as customName, s.notes,
|
|
81
|
+
s.agent_type as agentType
|
|
82
|
+
FROM sessions s
|
|
83
|
+
JOIN workspace_sessions ws ON ws.session_id = s.id
|
|
84
|
+
LEFT JOIN projects p ON p.id = s.project_id
|
|
85
|
+
WHERE ws.workspace_id = ?
|
|
86
|
+
ORDER BY s.modified DESC
|
|
87
|
+
`).all(e),r=t.prepare("SELECT t.name FROM tags t JOIN session_tags st ON st.tag_id = t.id WHERE st.session_id = ?");for(let e of s)e.tags=r.all(e.id).map(e=>e.name),e.starred=!!e.starred;return s}function H(e){return(0,E.getDb)().prepare(`
|
|
88
|
+
SELECT w.id, w.name, w.description, w.color, w.created, w.collaboration
|
|
89
|
+
FROM workspaces w
|
|
90
|
+
JOIN workspace_sessions ws ON ws.workspace_id = w.id
|
|
91
|
+
WHERE ws.session_id = ?
|
|
92
|
+
`).all(e)}function M(e,t){let s=(0,E.getDb)(),r=s.prepare("SELECT id FROM tags WHERE name = ?").get(t);r||(r={id:Number(s.prepare("INSERT INTO tags (name) VALUES (?)").run(t).lastInsertRowid)});let a=s.prepare("INSERT OR IGNORE INTO session_tags (session_id, tag_id) VALUES (?, ?)");s.transaction(()=>{for(let t of e)a.run(t,r.id)})()}function x(e,t){let s=(0,E.getDb)(),r=s.prepare("INSERT OR IGNORE INTO workspace_sessions (workspace_id, session_id) VALUES (?, ?)");s.transaction(()=>{for(let s of e)r.run(t,s)})()}function v(e,t){let s=(0,E.getDb)(),r=s.prepare("UPDATE sessions SET starred = ? WHERE id = ?");s.transaction(()=>{for(let s of e)r.run(+!!t,s)})()}function U(e,t){let s=(0,E.getDb)();s.prepare("DELETE FROM sessions_fts WHERE session_id = ?").run(e),s.prepare("INSERT INTO sessions_fts (session_id, content) VALUES (?, ?)").run(e,t)}function B(e,t={}){let s=(0,E.getDb)(),{projectId:r,limit:a=20,offset:i=0}=t,n=`
|
|
93
|
+
SELECT f.session_id as sessionId, snippet(sessions_fts, 1, '<mark>', '</mark>', '...', 40) as snippet,
|
|
94
|
+
rank, p.name as projectName, s.first_prompt as firstPrompt, s.created
|
|
95
|
+
FROM sessions_fts f
|
|
96
|
+
JOIN sessions s ON s.id = f.session_id OR s.session_id = f.session_id
|
|
97
|
+
LEFT JOIN projects p ON p.id = s.project_id
|
|
98
|
+
WHERE sessions_fts MATCH ?
|
|
99
|
+
`,o=[e];r&&(n+=" AND s.project_id = ?",o.push(r)),n+=" ORDER BY rank LIMIT ? OFFSET ?",o.push(a,i);try{return s.prepare(n).all(...o)}catch{return s.prepare(`
|
|
100
|
+
SELECT s.id as sessionId, substr(s.first_prompt, 1, 200) as snippet,
|
|
101
|
+
0 as rank, p.name as projectName, s.first_prompt as firstPrompt, s.created
|
|
102
|
+
FROM sessions s
|
|
103
|
+
LEFT JOIN projects p ON p.id = s.project_id
|
|
104
|
+
WHERE s.first_prompt LIKE ? OR s.summary LIKE ?
|
|
105
|
+
LIMIT ? OFFSET ?
|
|
106
|
+
`).all(`%${e}%`,`%${e}%`,a,i)}}let J=`
|
|
107
|
+
id, title, color, cwd, claude_session_id as claudeSessionId,
|
|
108
|
+
agent_type as agentType, custom_command as customCommand,
|
|
109
|
+
grid_col as gridCol, grid_row as gridRow, sort_order as sortOrder,
|
|
110
|
+
shell, created, workspace_id as workspaceId,
|
|
111
|
+
is_popout as isPopout, win_x as winX, win_y as winY,
|
|
112
|
+
win_width as winWidth, win_height as winHeight,
|
|
113
|
+
node_id as nodeId,
|
|
114
|
+
is_collaborating as isCollaborating
|
|
115
|
+
`;function V(e){return{...e,isPopout:!!e.isPopout,isCollaborating:!!e.isCollaborating}}function Y(e){return(0,E.getDb)().prepare(`SELECT ${J} FROM panes WHERE workspace_id = ? ORDER BY sort_order, created`).all(e).map(V)}function $(){let e=(0,E.getDb)().prepare("SELECT id FROM workspaces WHERE is_active = 1").get();return e?Y(e.id):[]}function G(e){let t=(0,E.getDb)(),s=t.prepare("SELECT MAX(sort_order) as m FROM panes").get(),r=e.sortOrder??(s.m??-1)+1,a=e.workspaceId;if(void 0===a){let e=t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get();a=e?.id}return t.prepare(`
|
|
116
|
+
INSERT INTO panes (id, title, color, cwd, claude_session_id, agent_type, custom_command, sort_order, workspace_id, node_id, is_collaborating)
|
|
117
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
118
|
+
`).run(e.id,e.title,e.color,e.cwd,e.claudeSessionId||null,e.agentType||"shell",e.customCommand||null,r,a||null,e.nodeId||null,+!!e.isCollaborating),X(e.id)}function X(e){let t=(0,E.getDb)().prepare(`SELECT ${J} FROM panes WHERE id = ?`).get(e);return t?V(t):null}function K(e,t){let s=(0,E.getDb)(),r=[],a=[];void 0!==t.title&&(r.push("title = ?"),a.push(t.title)),void 0!==t.color&&(r.push("color = ?"),a.push(t.color)),void 0!==t.cwd&&(r.push("cwd = ?"),a.push(t.cwd)),void 0!==t.claudeSessionId&&(r.push("claude_session_id = ?"),a.push(t.claudeSessionId)),void 0!==t.agentType&&(r.push("agent_type = ?"),a.push(t.agentType)),void 0!==t.customCommand&&(r.push("custom_command = ?"),a.push(t.customCommand)),void 0!==t.gridCol&&(r.push("grid_col = ?"),a.push(t.gridCol)),void 0!==t.gridRow&&(r.push("grid_row = ?"),a.push(t.gridRow)),void 0!==t.sortOrder&&(r.push("sort_order = ?"),a.push(t.sortOrder)),void 0!==t.workspaceId&&(r.push("workspace_id = ?"),a.push(t.workspaceId)),void 0!==t.isPopout&&(r.push("is_popout = ?"),a.push(+!!t.isPopout)),void 0!==t.winX&&(r.push("win_x = ?"),a.push(t.winX)),void 0!==t.winY&&(r.push("win_y = ?"),a.push(t.winY)),void 0!==t.winWidth&&(r.push("win_width = ?"),a.push(t.winWidth)),void 0!==t.winHeight&&(r.push("win_height = ?"),a.push(t.winHeight)),void 0!==t.nodeId&&(r.push("node_id = ?"),a.push(t.nodeId)),void 0!==t.isCollaborating&&(r.push("is_collaborating = ?"),a.push(+!!t.isCollaborating)),0!==r.length&&(a.push(e),s.prepare(`UPDATE panes SET ${r.join(", ")} WHERE id = ?`).run(...a))}function q(e){(0,E.getDb)().prepare("DELETE FROM panes WHERE id = ?").run(e)}function z(){return(0,E.getDb)().prepare("SELECT id, name, description, color, created, is_active as isActive, collaboration FROM workspaces WHERE is_active = 1").get()}function Z(e){let t=(0,E.getDb)();t.prepare("UPDATE workspaces SET is_active = 0").run(),t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(e)}function Q(e,t,s){let r=(0,E.getDb)(),a=r.prepare("SELECT * FROM workspaces WHERE id = ?").get(e),i=Number(r.prepare("INSERT INTO workspaces (name, description, color, is_active) VALUES (?, ?, ?, 0)").run(t,a?.description||"",s||a?.color||"#6366f1").lastInsertRowid),n=r.prepare("SELECT * FROM panes WHERE workspace_id = ?").all(e),o=r.prepare(`
|
|
119
|
+
INSERT INTO panes (id, title, color, cwd, claude_session_id, agent_type, custom_command, grid_col, grid_row, sort_order, shell, workspace_id, is_popout, win_x, win_y, win_width, win_height)
|
|
120
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
121
|
+
`);return r.transaction(()=>{for(let e of n){let t=f.default.randomUUID();o.run(t,e.title,e.color,e.cwd,e.claude_session_id,e.agent_type||"shell",e.custom_command||null,e.grid_col,e.grid_row,e.sort_order,e.shell,i,0,e.win_x,e.win_y,e.win_width,e.win_height)}})(),{workspace:{id:i,name:t,description:a?.description||"",color:s||a?.color||"#6366f1",created:new Date().toISOString()},panes:Y(i)}}function ee(e){let t=(0,E.getDb)();if(t.prepare("DELETE FROM panes WHERE workspace_id = ?").run(e),t.prepare("DELETE FROM workspaces WHERE id = ?").run(e),!t.prepare("SELECT id FROM workspaces WHERE is_active = 1").get()){let e=t.prepare("SELECT id FROM workspaces ORDER BY id LIMIT 1").get();e&&t.prepare("UPDATE workspaces SET is_active = 1 WHERE id = ?").run(e.id)}}function et(){let e=(0,E.getDb)(),t=e.prepare(`
|
|
122
|
+
SELECT COUNT(*) as totalSessions, COALESCE(SUM(message_count), 0) as totalMessages
|
|
123
|
+
FROM sessions
|
|
124
|
+
`).get(),s=e.prepare("SELECT COUNT(*) as count FROM projects").get();return{totalSessions:t.totalSessions,totalMessages:t.totalMessages,totalProjects:s.count}}function es(e=30){return(0,E.getDb)().prepare(`
|
|
125
|
+
SELECT date(created) as date,
|
|
126
|
+
COUNT(*) as sessionCount,
|
|
127
|
+
COALESCE(SUM(message_count), 0) as messageCount,
|
|
128
|
+
0 as toolCallCount
|
|
129
|
+
FROM sessions
|
|
130
|
+
WHERE created >= date('now', ?)
|
|
131
|
+
GROUP BY date(created)
|
|
132
|
+
ORDER BY date(created)
|
|
133
|
+
`).all(`-${e} days`)}async function er(){let e=(0,a.getCurrentUser)(),i=(0,r.getUserPaths)(e),o=(0,E.getDb)(),p=0,d=0;return o.transaction(()=>{let a=function(e){if(!t.default.existsSync(e))return{projects:0,sessions:0};let r=t.default.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()),a=0,i=0;for(let o of r){let r=s.default.join(e,o.name),p=o.name,d=function(e){let t=e.split("--");if(t.length<2)return e;let s=t.slice(1).join("/"),r=s.split("-");return"projects"===r[0]&&r.length>1?r.slice(1).join("-"):s}(o.name),l=d,c=s.default.join(r,"sessions-index.json");if(t.default.existsSync(c)){let e=n(c);if(e?.entries){let n=e.entries.find(e=>e.projectPath);n?.projectPath&&(l=n.projectPath,d=s.default.basename(n.projectPath)),g({id:p,name:d,path:l,claudePath:r,agentType:"claude"}),a++;let o=new Set;for(let t of e.entries)o.add(t.sessionId),_({id:t.sessionId,sessionId:t.sessionId,projectId:p,firstPrompt:t.firstPrompt?.slice(0,500)||"",summary:t.summary||"",messageCount:t.messageCount||0,created:t.created||"",modified:t.modified||"",gitBranch:t.gitBranch||"",projectPath:t.projectPath||"",fullPath:t.fullPath||"",agentType:"claude"}),i++;for(let e of t.default.readdirSync(r).filter(e=>e.endsWith(".jsonl")&&!e.startsWith(".")&&!o.has(e.replace(".jsonl","")))){let t=s.default.join(r,e),a=e.replace(".jsonl","");_({id:a,sessionId:a,projectId:p,firstPrompt:"",summary:"",messageCount:0,created:"",modified:"",gitBranch:"",projectPath:"",fullPath:t,agentType:"claude"}),i++}continue}}for(let e of(g({id:p,name:d,path:l,claudePath:r,agentType:"claude"}),a++,t.default.readdirSync(r).filter(e=>e.endsWith(".jsonl")&&!e.startsWith(".")))){let t=s.default.join(r,e),a=e.replace(".jsonl","");_({id:a,sessionId:a,projectId:p,firstPrompt:"",summary:"",messageCount:0,created:"",modified:"",gitBranch:"",projectPath:"",fullPath:t,agentType:"claude"}),i++}}return{projects:a,sessions:i}}(i.claudeProjectsDir);p+=a.projects,d+=a.sessions;let l=function(e){let r=function(e){if(!e||!t.default.existsSync(e))return[];let r=function e(r){let a=[];try{for(let i of t.default.readdirSync(r,{withFileTypes:!0})){let t=s.default.join(r,i.name);i.isDirectory()?a.push(...e(t)):i.isFile()&&i.name.startsWith("rollout-")&&i.name.endsWith(".jsonl")&&a.push({filePath:t,filename:i.name})}}catch{}return a}(e),a=[];for(let{filePath:e,filename:s}of r){let r=function(e,s){try{let r,a,i=function(e,s){let r=null;try{r=t.default.openSync(e,"r");let s=Buffer.alloc(8192),a=t.default.readSync(r,s,0,8192,0);return s.toString("utf-8",0,a)}finally{null!==r&&t.default.closeSync(r)}}(e,0),n=t.default.statSync(e),o=i.split("\n").filter(e=>e.trim().length>0);if(0===o.length)return null;let p="",d="",l="",c="",u=0;for(let e=0;e<o.length;e++){let t;try{t=JSON.parse(o[e])}catch{continue}if(0===e||!p&&!d&&!l){let e=t.item;p=e?.id||t.id||t.session_id||"",d=e?.cwd||t.cwd||"",l=e?.timestamp||t.timestamp||e?.created_at||t.created_at||t.created||""}if(function(e){let t=e.payload,s=t?.type??e.type;return!!s&&new Set(["user_message","UserMessage","assistant_message","AssistantMessage","message","response","tool_call","ToolCall","tool_result","ToolResult"]).has(s)}(t)&&u++,!c){let e=function(e){for(let t of[e.payload,e]){if(!t||"object"!=typeof t)continue;let e=t.type;if("user_message"===e||"UserMessage"===e){if("string"==typeof t.text)return t.text;if("string"==typeof t.content)return t.content;let e=t.message;if(e&&"string"==typeof e.content)return e.content}}return null}(t);e&&(c=e.slice(0,500))}}if(p||(p=(a=(r=s.replace(/\.jsonl$/,"")).match(/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i))?a[1]:r.replace(/^rollout-/,"")),!l){let e=s.match(/^rollout-(\d+)/);if(e){let t=parseInt(e[1],10),s=new Date(t>1e12?t:1e3*t);isNaN(s.getTime())||(l=s.toISOString())}}return l||(l=n.mtime.toISOString()),{id:p,cwd:d,timestamp:l,firstPrompt:c,messageCount:u,modified:n.mtime.toISOString()}}catch{return null}}(e,s);r&&a.push(r)}return a.sort((e,t)=>e.timestamp&&t.timestamp?t.timestamp.localeCompare(e.timestamp):t.modified.localeCompare(e.modified)),a}(e);if(0===r.length)return{projects:0,sessions:0};let a=new Map;for(let e of r){let t=e.cwd||"unknown";a.has(t)||a.set(t,[]),a.get(t).push(e)}let i=0,n=0;for(let[e,t]of a){let r="codex-"+e.replace(/[^a-zA-Z0-9]/g,"-").slice(0,80);for(let a of(g({id:r,name:"unknown"!==e?s.default.basename(e):"Codex (unknown)",path:e,claudePath:"",agentType:"codex"}),i++,t))_({id:a.id,sessionId:a.id,projectId:r,firstPrompt:a.firstPrompt||"",summary:"",messageCount:a.messageCount,created:a.timestamp||"",modified:a.modified||"",gitBranch:"",projectPath:e,fullPath:"",agentType:"codex"}),n++}return{projects:i,sessions:n}}(i.codexSessionsDir);p+=l.projects,d+=l.sessions;let E=function(e,r){let a=function(e,r){let a=function(e){let s=new Map;try{if(!t.default.existsSync(e))return s;let r=t.default.readFileSync(e,"utf-8"),a=JSON.parse(r);if("object"!=typeof a||null===a)return s;for(let[e,t]of Object.entries(a))if(t&&"object"==typeof t&&"id"in t){let r=t.id;"string"==typeof r&&s.set(r,e)}}catch{}return s}(r),i=[];for(let r of c(e)){let n=s.default.join(e,r);if(!u(n))continue;let o=s.default.join(n,"chats");if(u(o))for(let e of c(o)){if(!e.startsWith("session-")||!e.endsWith(".json"))continue;let n=function(e,r,a){try{let i=t.default.readFileSync(e,"utf-8"),n=JSON.parse(i);if("object"!=typeof n||null===n)return null;let o=n.sessionId||s.default.basename(e,".json"),p=n.startTime||"",d=n.lastUpdated||"",l=n.summary||"",c=Array.isArray(n.messages)?n.messages:[],u=0,f="";for(let e of c){if(!e||"object"!=typeof e)continue;let t=e.role;if(("user"===t||"model"===t||"assistant"===t)&&u++,"user"===t&&!f){let t=e.content,s=function(e){if("string"==typeof e)return e;if(e&&"object"==typeof e){let t;if(Array.isArray(e)?t=e:"parts"in e&&Array.isArray(e.parts)&&(t=e.parts),t){let e=[];for(let s of t)if(s&&"object"==typeof s&&"text"in s){let t=s.text;"string"==typeof t&&e.push(t)}return e.join("\n")}}return""}(t);s&&(f=s.trim().slice(0,200))}}let m=a.get(r)||"";return{sessionId:o,projectSlug:r,projectPath:m,startTime:p,lastUpdated:d,firstPrompt:f,summary:l,messageCount:u,fullPath:e}}catch{return null}}(s.default.join(o,e),r,a);n&&i.push(n)}}return i}(e,r);if(0===a.length)return{projects:0,sessions:0};let i=new Map;for(let e of a){let t=e.projectSlug||"unknown";i.has(t)||i.set(t,[]),i.get(t).push(e)}let n=0,o=0;for(let[e,t]of i){let r="gemini-"+e,a=t.find(e=>e.projectPath),i=a?.projectPath||"";for(let a of(g({id:r,name:i?s.default.basename(i):e,path:i,claudePath:"",agentType:"gemini"}),n++,t))_({id:a.sessionId,sessionId:a.sessionId,projectId:r,firstPrompt:a.firstPrompt||"",summary:a.summary||"",messageCount:a.messageCount,created:a.startTime||"",modified:a.lastUpdated||"",gitBranch:"",projectPath:a.projectPath||"",fullPath:a.fullPath||"",agentType:"gemini"}),o++}return{projects:n,sessions:o}}(i.geminiChatsBaseDir,i.geminiProjectsRegistry);p+=E.projects,d+=E.sessions;let h=(0,r.readConfig)(e),S=o.prepare("SELECT DISTINCT project_path FROM sessions WHERE project_path != '' AND project_path IS NOT NULL").all().map(e=>e.project_path),T=function(e){let r=function(e){let r=new Set,a=[];for(let i of e){let e=s.default.resolve(i);if(r.has(e))continue;r.add(e);let n=function(e){let r,a,i=s.default.join(e,".aider.chat.history.md");if(!t.default.existsSync(i))return null;try{r=t.default.readFileSync(i,"utf-8")}catch{return null}let n=0,o="";for(let e of r.split("\n"))e.startsWith(m)&&(n++,o||(o=e.slice(m.length).trim().slice(0,200)));if(0===n)return null;try{a=t.default.statSync(i)}catch{return null}return{projectPath:e,firstPrompt:o,messageCount:n,modified:a.mtime.toISOString(),created:(a.birthtime&&a.birthtime.getTime()>0?a.birthtime:a.ctime).toISOString()}}(e);n&&a.push(n)}return a}(e);if(0===r.length)return{projects:0,sessions:0};let a=0,i=0;for(let e of r){var n,o;let t=(n=e.projectPath,"aider-proj-"+f.default.createHash("sha256").update(n).digest("hex").slice(0,12)),r=(o=e.projectPath,"aider-"+f.default.createHash("sha256").update(o).digest("hex").slice(0,16));g({id:t,name:s.default.basename(e.projectPath),path:e.projectPath,claudePath:"",agentType:"aider"}),a++,_({id:r,sessionId:r,projectId:t,firstPrompt:e.firstPrompt||"",summary:"",messageCount:e.messageCount,created:e.created||"",modified:e.modified||"",gitBranch:"",projectPath:e.projectPath,fullPath:s.default.join(e.projectPath,".aider.chat.history.md"),agentType:"aider"}),i++}return{projects:a,sessions:i}}([...new Set([...h.devDirectories||[],...S])]);p+=T.projects,d+=T.sessions})(),{projects:p,sessions:d}}async function ea(){let e=(0,E.getDb)(),s=e.prepare(`
|
|
134
|
+
SELECT id, full_path FROM sessions
|
|
135
|
+
WHERE ((first_prompt = '' OR first_prompt IS NULL) OR (message_count = 0 OR message_count IS NULL))
|
|
136
|
+
AND full_path != ''
|
|
137
|
+
`).all(),r=0;for(let a of s){if(!t.default.existsSync(a.full_path))continue;let s=await l(a.full_path);s&&(e.prepare(`
|
|
138
|
+
UPDATE sessions SET
|
|
139
|
+
first_prompt = ?, message_count = ?, created = ?, modified = ?,
|
|
140
|
+
git_branch = ?, project_path = ?
|
|
141
|
+
WHERE id = ?
|
|
142
|
+
`).run(s.firstPrompt,s.messageCount,s.created,s.modified,s.gitBranch,s.projectPath,a.id),r++)}return r}async function ei(e){let s=(0,E.getDb)().prepare(`
|
|
143
|
+
SELECT s.id, s.full_path FROM sessions s
|
|
144
|
+
LEFT JOIN sessions_fts f ON f.session_id = s.id
|
|
145
|
+
WHERE f.session_id IS NULL AND s.full_path != ''
|
|
146
|
+
`).all(),r=0;for(let a of s)if(t.default.existsSync(a.full_path)){try{let e=await p(a.full_path);e&&(U(a.id,e),r++)}catch{}e?.(r,s.length)}return r}e.s(["addSessionToWorkspace",()=>w,"addTagToSession",()=>D,"bulkAddTag",()=>M,"bulkAddToWorkspace",()=>x,"bulkStar",()=>v,"createPane",()=>G,"createTag",()=>I,"createWorkspace",()=>R,"deletePane",()=>q,"deleteTag",()=>P,"deleteWorkspaceFull",()=>ee,"duplicateWorkspace",()=>Q,"getActivePanes",()=>$,"getActiveWorkspace",()=>z,"getAllProjects",()=>h,"getAllTags",()=>j,"getAnalyticsOverview",()=>et,"getDailyActivity",()=>es,"getPaneById",()=>X,"getPanesByWorkspace",()=>Y,"getSessionById",()=>T,"getSessionTags",()=>b,"getSessionWorkspaces",()=>H,"getSessions",()=>S,"getWorkspaceSessions",()=>k,"getWorkspacesForSession",()=>F,"removeSessionFromWorkspace",()=>N,"removeTagFromSessionByName",()=>C,"renameSession",()=>W,"searchSessions",()=>B,"switchWorkspace",()=>Z,"toggleStar",()=>y,"updatePane",()=>K,"updateSessionNotes",()=>O,"updateTagColor",()=>L,"updateWorkspace",()=>A,"upsertFtsContent",()=>U,"upsertProject",()=>g,"upsertSession",()=>_],50837),e.s(["buildFtsIndex",()=>ei,"enrichMissingSessions",()=>ea,"fullSync",()=>er],60569)}];
|
|
147
|
+
|
|
148
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__160e7c73._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let n=null,a=!1;function s(){if(!a){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{n=(0,t.createRequire)(e)("@spaces/teams");break}catch{}a=!0}return n}function o(){return null!==s()}e.s(["getTeams",()=>s,"hasTeams",()=>o])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.1",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,a=!r;function s(){let s="0.0.0";try{s=e.r(4730).version}catch{}return{tier:t,version:s,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:a,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>s])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},93025,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(74838),m=e.i(10372),f=e.i(93695);e.i(52474);var v=e.i(220),g=e.i(89171),R=e.i(46786),y=e.i(17516),w=e.i(99944);async function E(e){if(!y.HAS_AUTH)return g.NextResponse.json({username:R.default.userInfo().username,role:"admin",displayName:R.default.userInfo().username});let t=(0,w.getTeams)();return t?t.auth.api.me.GET(e):Response.json({error:"Requires @spaces/teams"},{status:404})}e.s(["GET",()=>E],95399);var b=e.i(95399);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/me/route",pathname:"/api/auth/me",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/me/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:C,workUnitAsyncStorage:T,serverHooks:k}=A;function j(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:T})}async function q(e,t,n){A.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/auth/me/route";g=g.replace(/\/index$/,"")||"/";let R=await A.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:E,parsedUrl:b,isDraftMode:C,prerenderManifest:T,routerServerContext:k,isOnDemandRevalidate:j,revalidateOnlyGenerated:q,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:P}=R,S=(0,i.normalizeAppPath)(g),O=!!(T.dynamicRoutes[S]||T.routes[N]),I=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,b,!1):t.end("This page could not be found"),null);if(O&&!C){let e=!!T.routes[N],t=T.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new f.NoFallbackError}}let H=null;!O||A.isDev||C||(H="/index"===(H=N)?"/":H);let U=!0===A.isDev||!O,D=O&&!U;P&&_&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:_,serverActionsManifest:P});let M=e.method||"GET",L=(0,s.getTracer)(),F=L.getActiveScopeSpan(),$={params:w,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>A.onRequestError(e,t,n,a,k)},sharedContext:{buildId:y}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let o=async e=>A.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&j&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(a);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(K,B,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,k),t}},u=await A.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:q,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!O)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",j?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&O||f.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(K,B,new Response(u.value.body,{headers:f,status:u.value.status||200})),null};F?await l(F):await L.withPropagatedContext(e.headers,()=>L.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,k),O)throw t;return await (0,c.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>q,"patchFetch",()=>j,"routeModule",()=>A,"serverHooks",()=>k,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>T],93025)}];
|
|
1
|
+
module.exports=[24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},62562,(e,t,r)=>{t.exports=e.x("module",()=>require("module"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},99944,e=>{"use strict";var t=e.i(62562),r=e.i(14747);let n=null,a=!1;function s(){if(!a){for(let e of function(){let e=[r.default.join(process.cwd(),"package.json")];for(let t of(process.env.NODE_PATH||"").split(r.default.delimiter))t&&e.push(r.default.join(t,"_anchor.js"));return e}())try{n=(0,t.createRequire)(e)("@spaces/teams");break}catch{}a=!0}return n}function o(){return null!==s()}e.s(["getTeams",()=>s,"hasTeams",()=>o])},4730,e=>{e.v({name:"@jlongo78/agent-spaces",version:"0.5.3",description:"Agent workspace manager for Claude, Codex, Gemini, and more",bin:{spaces:"./bin/spaces.js"},files:["bin/",".next/standalone/"],engines:{node:">=20.9.0"},repository:{type:"git",url:"git+https://github.com/jlongo78/spaces.git"},keywords:["ai","agent","workspace","terminal","claude","codex","gemini"],homepage:"http://www.agentspaces.co",license:"AGPL-3.0-only",scripts:{start:"node bin/spaces.js",dev:"node bin/spaces-dev.js",build:"cross-env STANDALONE=1 next build && node -e \"const fs=require('fs');fs.cpSync('.next/static','.next/standalone/.next/static',{recursive:true});fs.cpSync('public','.next/standalone/public',{recursive:true})\" && node bin/fix-standalone-externals.js",prepublishOnly:"npm run build",setup:"node bin/spaces-setup.js","setup-admin":"node bin/setup-admin.js","server:build":"next build","server:start":"next start --port 3457",lint:"eslint"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","better-sqlite3":"^12.6.2","bonjour-service":"^1.3.0","node-pty":"^1.1.0",ws:"^8.19.0"},devDependencies:{"@tailwindcss/postcss":"^4","@tanstack/react-query":"^5.90.21","@types/better-sqlite3":"^7.6.13","@types/node":"^20","@types/qrcode":"^1.5.6","@types/react":"^19","@types/react-dom":"^19","@types/ws":"^8.18.1","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1","cross-env":"^10.1.0","date-fns":"^4.1.0",eslint:"^9","eslint-config-next":"16.1.6",geist:"^1.4.1","lucide-react":"^0.575.0",next:"16.1.6",otpauth:"^9.5.0","posthog-js":"^1.352.0","posthog-node":"^5.21.2",qrcode:"^1.5.4",react:"19.2.3","react-dom":"19.2.3","react-markdown":"^10.1.0",recharts:"^3.7.0","rehype-highlight":"^7.0.2","remark-gfm":"^4.0.1","tailwind-merge":"^3.5.0",tailwindcss:"^4",typescript:"^5",xterm:"^5.3.0"},optionalDependencies:{"@types/qrcode":"^1.5.6",otpauth:"^9.5.0",qrcode:"^1.5.4"}})},17516,e=>{"use strict";let t=process.env.SPACES_TIER||process.env.NEXT_PUBLIC_TIER||("server"===process.env.NEXT_PUBLIC_EDITION?"federation":"community"),r="team"===t||"federation"===t,n="federation"===t,a=!r;function s(){let s="0.0.0";try{s=e.r(4730).version}catch{}return{tier:t,version:s,hasAuth:r,hasAdmin:r,hasCollaboration:r,hasNetwork:n,hasMultiuser:r,isDesktop:a,basePath:""}}e.s(["HAS_AUTH",0,r,"HAS_MULTIUSER",0,r,"getTierFlags",()=>s])},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},93025,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(74838),m=e.i(10372),f=e.i(93695);e.i(52474);var v=e.i(220),g=e.i(89171),R=e.i(46786),y=e.i(17516),w=e.i(99944);async function E(e){if(!y.HAS_AUTH)return g.NextResponse.json({username:R.default.userInfo().username,role:"admin",displayName:R.default.userInfo().username});let t=(0,w.getTeams)();return t?t.auth.api.me.GET(e):Response.json({error:"Requires @spaces/teams"},{status:404})}e.s(["GET",()=>E],95399);var b=e.i(95399);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/me/route",pathname:"/api/auth/me",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/auth/me/route.ts",nextConfigOutput:"standalone",userland:b}),{workAsyncStorage:C,workUnitAsyncStorage:T,serverHooks:k}=A;function j(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:T})}async function q(e,t,n){A.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/auth/me/route";g=g.replace(/\/index$/,"")||"/";let R=await A.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:w,nextConfig:E,parsedUrl:b,isDraftMode:C,prerenderManifest:T,routerServerContext:k,isOnDemandRevalidate:j,revalidateOnlyGenerated:q,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:P}=R,S=(0,i.normalizeAppPath)(g),O=!!(T.dynamicRoutes[S]||T.routes[N]),I=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,b,!1):t.end("This page could not be found"),null);if(O&&!C){let e=!!T.routes[N],t=T.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new f.NoFallbackError}}let H=null;!O||A.isDev||C||(H="/index"===(H=N)?"/":H);let U=!0===A.isDev||!O,D=O&&!U;P&&_&&(0,o.setManifestsSingleton)({page:g,clientReferenceManifest:_,serverActionsManifest:P});let M=e.method||"GET",L=(0,s.getTracer)(),F=L.getActiveScopeSpan(),$={params:w,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>A.onRequestError(e,t,n,a,k)},sharedContext:{buildId:y}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let o=async e=>A.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${M} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&j&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(a);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(K,B,s,$.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,n=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,k),t}},u=await A.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:q,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:i});if(!O)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",j?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&O||f.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(K,B,new Response(u.value.body,{headers:f,status:u.value.status||200})),null};F?await l(F):await L.withPropagatedContext(e.headers,()=>L.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,k),O)throw t;return await (0,c.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>q,"patchFetch",()=>j,"routeModule",()=>A,"serverHooks",()=>k,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>T],93025)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__2861e096._.js.map
|