conductor-oss 0.2.15 → 0.2.16
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/node_modules/@conductor-oss/plugin-agent-amp/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-ccr/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-claude-code/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-codex/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-cursor-cli/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-droid/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-gemini/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-github-copilot/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-opencode/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-qwen-code/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-mcp-server/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-notifier-desktop/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-notifier-discord/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-runtime-tmux/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-scm-github/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-terminal-web/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-tracker-github/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-webhook/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-workspace-worktree/package.json +1 -1
- package/package.json +21 -21
- package/web/.next/standalone/packages/web/.env.example +16 -0
- package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +30 -0
- package/web/.next/standalone/packages/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/routes-manifest.json +204 -0
- package/web/.next/standalone/packages/web/.next/server/app/_global-error/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +4 -3
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js +8 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +12 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +12 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +12 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/auth/grant/route.js +4 -2
- package/web/.next/standalone/packages/web/.next/server/app/auth/grant/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/icon.svg/route.js +3 -1
- package/web/.next/standalone/packages/web/.next/server/app/icon.svg/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.rsc +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +30 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/43d70_next-internal_server_app_api_sessions_[id]_output_stream_route_actions_9bfa500e.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_filesystem_directory_route_actions_b1ce53b0.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_health_sessions_route_actions_0e6610db.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_actions_route_actions_e73b30eb.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_checks_route_actions_a3dedc1e.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_diff_route_actions_b95fa63b.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_feedback_route_actions_cb4b8489.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_files_route_actions_22820f6c.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_keys_route_actions_2c93e9dc.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_kill_route_actions_2b9b61d1.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_output_route_actions_e0641c75.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_restore_route_actions_41a4c356.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_send_route_actions_5c1d0b47.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_workspaces_branches_route_actions_324a72cd.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[externals]__f25f12d4._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__005aa909._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__008d962e._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__00cf28e7._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__03ff76ee._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__06365513._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__075f8697._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__097be5a7._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__09c3bdaf._.js +7 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0a0f0f01._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1003246b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__11918223._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__13ad088c._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1458f8ec._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__14b1d4a3._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1741fb8a._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1875f00e._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__9fa7727e._.js → [root-of-the-server]__1aa339ea._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1beced71._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ed2e6c1._.js +226 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1f626a16._.js +129 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2062aaab._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__206c3d8a._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__22f8f0d6._.js +129 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__23bebaf9._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2556a816._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__25788ed3._.js +54 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__29be362d._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2a83553a._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2c3f6397._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2c909fe3._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2ce39d51._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30921756._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__31eea08c._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3d7ad620._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3edd3509._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3f8b49ba._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3f8e82c2._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__44d59fd0._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__48875cbb._.js +7 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__49c6a20e._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4ac9d639._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4c3fb752._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4ca8b259._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4dab6a6a._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__544326ac._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__54a218f0._.js +54 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__55e337f7._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5661ca72._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5cd49624._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5e0533de._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5e161db4._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5ebcb223._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5fd609c9._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6023a748._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__60cf7bf4._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__60ee4897._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6559c1a4._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__659938b1._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6712f45a._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__69227de6._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6ab08a39._.js +129 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6cd54de1._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6ce2b5d7._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6cfd00d2._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6d62709d._.js +129 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6e08e4e4._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__749331b0._.js +54 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__74a53184._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7633d324._.js +4 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__76c16426._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__778e46a1._.js +129 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7a26e452._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7ba96fa5._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7e684560._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__848eb266._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8596d782._.js +7 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__85d8966b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__86aff2b8._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__879cf4d2._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__881858fa._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__885e3a00._.js +54 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__887ea436._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__893f6b3b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__89dfcd05._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8cc5826f._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__913af875._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__91b42119._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__93ce1b75._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__96633022._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__96951362._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__971fcc75._.js +9 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__98c6a6f3._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__99da6324._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9c1d09aa._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9f07930d._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9f36b7ec._.js +129 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9fd08bbc._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a05953cc._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a3766ac1._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a3bfaabf._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a420e374._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a4a33247._.js +54 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ac544bb5._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ad84d2e0._.js +54 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b3095e9d._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b59abfbd._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b9692a3c._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bcc08c70._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__be051d52._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bea07e07._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bf8faac8._.js +4 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c1759514._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c2ef2bfc._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c3c6a7bf._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c8618cb1._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ca8a18f8._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cafd7bb3._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cb112606._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cc74ea40._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cd3692a0._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cf3cdecd._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d09e7a99._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d40b50e7._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d4721d30._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d538c110._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d73ea818._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__db3d0133._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__dd0cf085._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__de0f2533._.js +7 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e113f6df._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e1a418bc._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e6c1d827._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ea69c4ce._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eac16890._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eb1dfcc6._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ee75d43a._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef773ea6._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f0d15920._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f15cbcfc._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f48eb2d4._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__fb6ab669._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__fe8419b5._.js +129 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__667a63ee._.js → node_modules_07d85415._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_f0726c19._.js +52 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__d94cee69._.js → node_modules_next_9a15df2c._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_79f1aee4._.js +6 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0e4dc4f7.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_dd27f857.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_e445b36c.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f375f3c4.js +28 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_f2da0d3e._.js +14 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_f5199d09._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_core_dist_index_cdd30418.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-amp_dist_index_bf3d8239.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-ccr_dist_index_69cbf726.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-claude-code_dist_index_31314e43.js +125 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-cursor-cli_dist_index_8d5cc426.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-droid_dist_index_f731227a.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-gemini_dist_index_b2d219e8.js +54 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-github-copilot_dist_index_9f80cb45.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-opencode_dist_index_7c7015da.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-qwen-code_dist_index_46dd8653.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_notifier-desktop_dist_index_ef3473f0.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_notifier-discord_dist_index_34257226.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_scm-github_dist_index_3b5a621e.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_terminal-web_dist_index_1e0706d3.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_tracker-github_dist_index_2d7af62f.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_access_route_actions_06740e99.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_attachments_route_actions_4dcb6bab.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_auth_session_route_actions_078c0ee4.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_boards_route_actions_160005aa.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_config_route_actions_ee96617d.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_context-files_route_actions_e0f9c4a1.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_events_route_actions_bde0da23.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_github_repos_route_actions_7eab8e08.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_health_boards_route_actions_7a65c06e.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_notifications_route_actions_c5e4154e.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_preferences_route_actions_858fa484.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_repositories_route_actions_0232075d.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_sessions_[id]_route_actions_6fdcb5a6.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_sessions_route_actions_c6df1747.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_spawn_route_actions_befa67f2.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_workspaces_route_actions_795ab8d9.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web_src_lib_13fee5eb._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web_src_lib_d64596cc._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__09178ceb._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__2b5e3ef2._.js → [root-of-the-server]__504277b5._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__b07a94f8._.js → [root-of-the-server]__525ee5d4._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__6622b514._.js +4 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__869d9ac0._.js +4 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__acdcadf9._.js → [root-of-the-server]__9726f664._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__b3463b25._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__ca05f4a0._.js +4 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__dd8d1ff5._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b6d31783._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_8a444735._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{node_modules_@clerk_nextjs_dist_esm_app-router_622c0d1e._.js → node_modules_@clerk_nextjs_dist_esm_app-router_bf11b471._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_f2ebd7a9._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{packages_web_src_components_9f3d5f00._.js → packages_web_src_components_dd296b40._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/middleware.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +8 -8
- package/web/.next/standalone/packages/web/.next/static/chunks/19d7d4e2cfe3261a.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{04f4c17a714eeae7.js → 86bce89c37cf6212.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{9b34f9af98cb77d6.js → ab8ef6c7dfc78082.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{8d30faf57f99d301.js → e8283780c26eaa91.js} +1 -1
- package/web/.next/{static/chunks/61ead0a3899b1761.js → standalone/packages/web/.next/static/chunks/e88fa6d41d743b9e.js} +2 -2
- package/web/.next/{static/chunks/c0b1f9af564807f3.css → standalone/packages/web/.next/static/chunks/fe557eb4039d8a8d.css} +1 -1
- package/web/.next/standalone/packages/web/next.config.ts +33 -0
- package/web/.next/standalone/packages/web/postcss.config.mjs +5 -0
- package/web/.next/standalone/packages/web/src/app/api/access/route.ts +214 -0
- package/web/.next/standalone/packages/web/src/app/api/agents/route.ts +223 -0
- package/web/.next/standalone/packages/web/src/app/api/attachments/route.ts +169 -0
- package/web/.next/standalone/packages/web/src/app/api/auth/session/route.ts +54 -0
- package/web/.next/standalone/packages/web/src/app/api/boards/route.ts +520 -0
- package/web/.next/standalone/packages/web/src/app/api/config/route.ts +81 -0
- package/web/.next/standalone/packages/web/src/app/api/context-files/route.ts +201 -0
- package/web/.next/standalone/packages/web/src/app/api/events/route.ts +125 -0
- package/web/.next/standalone/packages/web/src/app/api/filesystem/directory/route.ts +145 -0
- package/web/.next/standalone/packages/web/src/app/api/github/repos/route.ts +106 -0
- package/web/.next/standalone/packages/web/src/app/api/health/boards/route.ts +72 -0
- package/web/.next/standalone/packages/web/src/app/api/health/sessions/route.ts +77 -0
- package/web/.next/standalone/packages/web/src/app/api/notifications/route.ts +91 -0
- package/web/.next/standalone/packages/web/src/app/api/preferences/route.ts +194 -0
- package/web/.next/standalone/packages/web/src/app/api/repositories/route.ts +419 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/actions/route.ts +80 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/checks/route.ts +175 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/diff/route.ts +426 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/feedback/route.ts +47 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/files/route.ts +197 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/keys/route.ts +140 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/kill/route.ts +45 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/output/route.ts +262 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/output/stream/route.ts +111 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/restore/route.ts +49 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/route.ts +206 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/send/route.ts +58 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/route.ts +105 -0
- package/web/.next/standalone/packages/web/src/app/api/spawn/route.ts +216 -0
- package/web/.next/standalone/packages/web/src/app/api/workspaces/branches/route.ts +233 -0
- package/web/.next/standalone/packages/web/src/app/api/workspaces/route.ts +592 -0
- package/web/.next/standalone/packages/web/src/app/auth/grant/route.ts +37 -0
- package/web/.next/standalone/packages/web/src/app/globals.css +206 -0
- package/web/.next/standalone/packages/web/src/app/icon.svg +11 -0
- package/web/.next/standalone/packages/web/src/app/layout.tsx +65 -0
- package/web/.next/standalone/packages/web/src/app/page.tsx +4559 -0
- package/web/.next/standalone/packages/web/src/app/sessions/[id]/page.tsx +120 -0
- package/web/.next/standalone/packages/web/src/app/sign-in/[[...sign-in]]/page.tsx +11 -0
- package/web/.next/standalone/packages/web/src/app/unlock/UnlockForm.tsx +77 -0
- package/web/.next/standalone/packages/web/src/app/unlock/page.tsx +41 -0
- package/web/.next/standalone/packages/web/src/components/ActivityDot.tsx +93 -0
- package/web/.next/standalone/packages/web/src/components/AgentTileIcon.tsx +193 -0
- package/web/.next/standalone/packages/web/src/components/Dashboard.tsx +3444 -0
- package/web/.next/standalone/packages/web/src/components/EmptyState.tsx +58 -0
- package/web/.next/standalone/packages/web/src/components/SessionCard.tsx +377 -0
- package/web/.next/standalone/packages/web/src/components/TerminalView.tsx +184 -0
- package/web/.next/standalone/packages/web/src/components/ThemeProvider.tsx +55 -0
- package/web/.next/standalone/packages/web/src/components/agents/AgentGrid.tsx +95 -0
- package/web/.next/standalone/packages/web/src/components/board/WorkspaceKanban.tsx +1316 -0
- package/web/.next/standalone/packages/web/src/components/layout/AppShell.tsx +74 -0
- package/web/.next/standalone/packages/web/src/components/layout/EmptyState.tsx +53 -0
- package/web/.next/standalone/packages/web/src/components/layout/Sidebar.tsx +318 -0
- package/web/.next/standalone/packages/web/src/components/layout/TopBar.tsx +34 -0
- package/web/.next/standalone/packages/web/src/components/layout/WorkspaceSidebarPanel.tsx +93 -0
- package/web/.next/standalone/packages/web/src/components/sessions/ChatPanel.tsx +1559 -0
- package/web/.next/standalone/packages/web/src/components/sessions/SessionDetail.tsx +132 -0
- package/web/.next/standalone/packages/web/src/components/sessions/SessionDiff.tsx +1197 -0
- package/web/.next/standalone/packages/web/src/components/sessions/SessionOverview.tsx +314 -0
- package/web/.next/standalone/packages/web/src/components/ui/Badge.tsx +33 -0
- package/web/.next/standalone/packages/web/src/components/ui/Button.tsx +53 -0
- package/web/.next/standalone/packages/web/src/components/ui/Card.tsx +35 -0
- package/web/.next/standalone/packages/web/src/components/ui/RunningDots.tsx +22 -0
- package/web/.next/standalone/packages/web/src/components/ui/ScrollArea.tsx +43 -0
- package/web/.next/standalone/packages/web/src/components/ui/Separator.tsx +23 -0
- package/web/.next/standalone/packages/web/src/components/ui/StatusDot.tsx +30 -0
- package/web/.next/standalone/packages/web/src/components/ui/Tabs.tsx +48 -0
- package/web/.next/standalone/packages/web/src/components/ui/Tooltip.tsx +44 -0
- package/web/.next/standalone/packages/web/src/hooks/useAgents.ts +155 -0
- package/web/.next/standalone/packages/web/src/hooks/useConfig.ts +116 -0
- package/web/.next/standalone/packages/web/src/hooks/usePreferences.ts +95 -0
- package/web/.next/standalone/packages/web/src/hooks/useSession.ts +191 -0
- package/web/.next/standalone/packages/web/src/hooks/useSessionFeed.ts +265 -0
- package/web/.next/standalone/packages/web/src/hooks/useSessionOutputStream.ts +155 -0
- package/web/.next/standalone/packages/web/src/hooks/useSessions.ts +123 -0
- package/web/.next/standalone/packages/web/src/lib/accessControl.test.ts +46 -0
- package/web/.next/standalone/packages/web/src/lib/accessControl.ts +115 -0
- package/web/.next/standalone/packages/web/src/lib/agentUtils.ts +4 -0
- package/web/.next/standalone/packages/web/src/lib/auth.ts +457 -0
- package/web/.next/standalone/packages/web/src/lib/chatFeed.ts +196 -0
- package/web/.next/standalone/packages/web/src/lib/cn.ts +6 -0
- package/web/.next/standalone/packages/web/src/lib/edgeAuth.test.ts +91 -0
- package/web/.next/standalone/packages/web/src/lib/edgeAuth.ts +205 -0
- package/web/.next/standalone/packages/web/src/lib/editorLinks.ts +51 -0
- package/web/.next/standalone/packages/web/src/lib/event-bus-singleton.ts +50 -0
- package/web/.next/standalone/packages/web/src/lib/liveEvents.ts +49 -0
- package/web/.next/standalone/packages/web/src/lib/modelAccess.ts +40 -0
- package/web/.next/standalone/packages/web/src/lib/projectConfigSync.ts +144 -0
- package/web/.next/standalone/packages/web/src/lib/remoteAuth.ts +104 -0
- package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels.test.ts +78 -0
- package/web/.next/standalone/packages/web/src/lib/runtimeAgentModels.ts +788 -0
- package/web/.next/standalone/packages/web/src/lib/runtimeAgentModelsShared.ts +65 -0
- package/web/.next/standalone/packages/web/src/lib/serialize.ts +128 -0
- package/web/.next/standalone/packages/web/src/lib/services.ts +319 -0
- package/web/.next/standalone/packages/web/src/lib/types.ts +182 -0
- package/web/.next/standalone/packages/web/src/proxy.ts +141 -0
- package/web/.next/standalone/packages/web/tsconfig.json +42 -0
- package/web/.next/static/chunks/19d7d4e2cfe3261a.js +1 -0
- package/web/.next/static/chunks/{04f4c17a714eeae7.js → 86bce89c37cf6212.js} +1 -1
- package/web/.next/static/chunks/{9b34f9af98cb77d6.js → ab8ef6c7dfc78082.js} +1 -1
- package/web/.next/static/chunks/{8d30faf57f99d301.js → e8283780c26eaa91.js} +1 -1
- package/web/.next/{standalone/packages/web/.next/static/chunks/61ead0a3899b1761.js → static/chunks/e88fa6d41d743b9e.js} +2 -2
- package/web/.next/{standalone/packages/web/.next/static/chunks/c0b1f9af564807f3.css → static/chunks/fe557eb4039d8a8d.css} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[externals]__0d8e2e8d._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__273dc5fd._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30b98e6f._.js +0 -4
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bbaa7179._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f408c708._.js +0 -21
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__434b20a4._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__90837659._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__977a17ba._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__bce4b756._.js +0 -4
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__cb11b5eb._.js +0 -4
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__d1edf1ae._.js +0 -4
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_d6c6c559._.js +0 -3
- package/web/.next/standalone/packages/web/.next/static/chunks/2ddcd95a6de1ac4a.js +0 -1
- package/web/.next/static/chunks/2ddcd95a6de1ac4a.js +0 -1
- /package/web/.next/standalone/packages/web/.next/static/{fLVGQVTN7GT-GjBotJjTr → 7KQ5wRS3BC3qvrkz8yxuS}/_buildManifest.js +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{fLVGQVTN7GT-GjBotJjTr → 7KQ5wRS3BC3qvrkz8yxuS}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{fLVGQVTN7GT-GjBotJjTr → 7KQ5wRS3BC3qvrkz8yxuS}/_ssgManifest.js +0 -0
- /package/web/.next/static/{fLVGQVTN7GT-GjBotJjTr → 7KQ5wRS3BC3qvrkz8yxuS}/_buildManifest.js +0 -0
- /package/web/.next/static/{fLVGQVTN7GT-GjBotJjTr → 7KQ5wRS3BC3qvrkz8yxuS}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{fLVGQVTN7GT-GjBotJjTr → 7KQ5wRS3BC3qvrkz8yxuS}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
export function EmptyState() {
|
|
4
|
+
return (
|
|
5
|
+
<div className="flex flex-col items-center justify-center py-24 px-6 text-center">
|
|
6
|
+
{/* Illustrated icon */}
|
|
7
|
+
<div className="mb-6 flex items-center justify-center">
|
|
8
|
+
<div className="relative">
|
|
9
|
+
<svg
|
|
10
|
+
width="80"
|
|
11
|
+
height="80"
|
|
12
|
+
viewBox="0 0 80 80"
|
|
13
|
+
fill="none"
|
|
14
|
+
className="opacity-30"
|
|
15
|
+
>
|
|
16
|
+
<rect
|
|
17
|
+
x="12"
|
|
18
|
+
y="16"
|
|
19
|
+
width="56"
|
|
20
|
+
height="48"
|
|
21
|
+
rx="6"
|
|
22
|
+
stroke="var(--color-text-tertiary)"
|
|
23
|
+
strokeWidth="2"
|
|
24
|
+
strokeDasharray="4 3"
|
|
25
|
+
/>
|
|
26
|
+
<path
|
|
27
|
+
d="M28 36L36 44L52 28"
|
|
28
|
+
stroke="var(--color-accent)"
|
|
29
|
+
strokeWidth="2.5"
|
|
30
|
+
strokeLinecap="round"
|
|
31
|
+
strokeLinejoin="round"
|
|
32
|
+
className="opacity-60"
|
|
33
|
+
/>
|
|
34
|
+
<circle
|
|
35
|
+
cx="40"
|
|
36
|
+
cy="36"
|
|
37
|
+
r="20"
|
|
38
|
+
stroke="var(--color-text-muted)"
|
|
39
|
+
strokeWidth="1.5"
|
|
40
|
+
strokeDasharray="3 4"
|
|
41
|
+
className="opacity-40"
|
|
42
|
+
/>
|
|
43
|
+
</svg>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<h3 className="text-[15px] font-semibold text-[var(--color-text-primary)] mb-2">
|
|
48
|
+
No sessions yet
|
|
49
|
+
</h3>
|
|
50
|
+
<p className="text-[13px] text-[var(--color-text-secondary)] max-w-sm leading-relaxed mb-4">
|
|
51
|
+
Write a task in your <code className="rounded bg-[var(--color-bg-elevated)] px-1.5 py-0.5 text-[12px] font-mono text-[var(--color-accent)]">CONDUCTOR.md</code> to get started.
|
|
52
|
+
</p>
|
|
53
|
+
<p className="text-[11px] text-[var(--color-text-muted)]">
|
|
54
|
+
Sessions will appear here once agents begin working.
|
|
55
|
+
</p>
|
|
56
|
+
</div>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
// DEPRECATED: Old session card. New UI uses components/sessions/
|
|
3
|
+
"use client";
|
|
4
|
+
|
|
5
|
+
import { useEffect, useState } from "react";
|
|
6
|
+
import type { DashboardSession, AttentionLevel } from "@/lib/types";
|
|
7
|
+
import { getAttentionLevel } from "@/lib/types";
|
|
8
|
+
import { TERMINAL_STATUSES } from "@conductor-oss/core/types";
|
|
9
|
+
import { ActivityDot } from "./ActivityDot";
|
|
10
|
+
import { AgentTileIcon } from "./AgentTileIcon";
|
|
11
|
+
|
|
12
|
+
interface SessionCardProps {
|
|
13
|
+
session: DashboardSession;
|
|
14
|
+
onSend?: (sessionId: string, message: string) => void;
|
|
15
|
+
onKill?: (sessionId: string, isTerminalSession: boolean) => void;
|
|
16
|
+
onRestore?: (sessionId: string) => void;
|
|
17
|
+
onOpenTerminal?: (sessionId: string) => void;
|
|
18
|
+
actionBusy?: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const PROJECT_PALETTE = [
|
|
22
|
+
{ bg: "rgba(59, 130, 246, 0.12)", text: "#60a5fa" },
|
|
23
|
+
{ bg: "rgba(139, 92, 246, 0.12)", text: "#a78bfa" },
|
|
24
|
+
{ bg: "rgba(16, 185, 129, 0.12)", text: "#34d399" },
|
|
25
|
+
{ bg: "rgba(245, 158, 11, 0.12)", text: "#fbbf24" },
|
|
26
|
+
{ bg: "rgba(244, 63, 94, 0.12)", text: "#fb7185" },
|
|
27
|
+
{ bg: "rgba(6, 182, 212, 0.12)", text: "#22d3ee" },
|
|
28
|
+
{ bg: "rgba(99, 102, 241, 0.12)", text: "#818cf8" },
|
|
29
|
+
{ bg: "rgba(236, 72, 153, 0.12)", text: "#f472b6" },
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
function getProjectColor(projectId: string): { bg: string; text: string } {
|
|
33
|
+
let hash = 0;
|
|
34
|
+
for (const char of projectId) {
|
|
35
|
+
hash = (hash * 31 + char.charCodeAt(0)) | 0;
|
|
36
|
+
}
|
|
37
|
+
return PROJECT_PALETTE[Math.abs(hash) % PROJECT_PALETTE.length]!;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const STATUS_DOT_COLORS: Record<AttentionLevel, string> = {
|
|
41
|
+
working: "var(--color-status-working)",
|
|
42
|
+
pending: "var(--color-status-attention)",
|
|
43
|
+
review: "var(--color-accent-orange)",
|
|
44
|
+
respond: "var(--color-status-error)",
|
|
45
|
+
merge: "var(--color-status-ready)",
|
|
46
|
+
done: "var(--color-status-done)",
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
function formatAge(isoDate: string, now = Date.now()): string {
|
|
50
|
+
const diffMs = now - new Date(isoDate).getTime();
|
|
51
|
+
const minutes = Math.floor(diffMs / 60_000);
|
|
52
|
+
if (minutes < 1) return "now";
|
|
53
|
+
if (minutes < 60) return `${minutes}m`;
|
|
54
|
+
const hours = Math.floor(minutes / 60);
|
|
55
|
+
if (hours < 24) return `${hours}h`;
|
|
56
|
+
const days = Math.floor(hours / 24);
|
|
57
|
+
return `${days}d`;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function formatDuration(createdAt: string, lastActivityAt: string): string {
|
|
61
|
+
const ms = new Date(lastActivityAt).getTime() - new Date(createdAt).getTime();
|
|
62
|
+
if (ms < 0) return "-";
|
|
63
|
+
const secs = Math.floor(ms / 1000);
|
|
64
|
+
if (secs < 60) return `${secs}s`;
|
|
65
|
+
const mins = Math.floor(secs / 60);
|
|
66
|
+
if (mins < 60) return `${mins}m`;
|
|
67
|
+
const hours = Math.floor(mins / 60);
|
|
68
|
+
return `${hours}h ${mins % 60}m`;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
interface CostInfo {
|
|
72
|
+
inputTokens?: number;
|
|
73
|
+
outputTokens?: number;
|
|
74
|
+
estimatedCostUsd?: number;
|
|
75
|
+
totalUSD?: number;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function parseCost(meta: Record<string, string>): CostInfo | null {
|
|
79
|
+
const raw = meta["cost"];
|
|
80
|
+
if (!raw) return null;
|
|
81
|
+
try {
|
|
82
|
+
return JSON.parse(raw) as CostInfo;
|
|
83
|
+
} catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export function SessionCard({
|
|
89
|
+
session,
|
|
90
|
+
onSend,
|
|
91
|
+
onKill,
|
|
92
|
+
onRestore,
|
|
93
|
+
onOpenTerminal,
|
|
94
|
+
actionBusy = false,
|
|
95
|
+
}: SessionCardProps) {
|
|
96
|
+
const [expanded, setExpanded] = useState(false);
|
|
97
|
+
const [messageInput, setMessageInput] = useState("");
|
|
98
|
+
const [sending, setSending] = useState(false);
|
|
99
|
+
const [isHydrated, setIsHydrated] = useState(false);
|
|
100
|
+
const [ageNow, setAgeNow] = useState(() => Date.now());
|
|
101
|
+
|
|
102
|
+
const level = getAttentionLevel(session);
|
|
103
|
+
const isTerminal = TERMINAL_STATUSES.has(session.status);
|
|
104
|
+
const isRestorable = isTerminal && session.status !== "merged";
|
|
105
|
+
const projectColor = getProjectColor(session.projectId);
|
|
106
|
+
const cost = parseCost(session.metadata);
|
|
107
|
+
const estimatedCost = cost?.estimatedCostUsd ?? cost?.totalUSD;
|
|
108
|
+
const dotColor = STATUS_DOT_COLORS[level];
|
|
109
|
+
|
|
110
|
+
const handleSendMessage = async () => {
|
|
111
|
+
const msg = messageInput.trim();
|
|
112
|
+
if (!msg) return;
|
|
113
|
+
setSending(true);
|
|
114
|
+
onSend?.(session.id, msg);
|
|
115
|
+
setMessageInput("");
|
|
116
|
+
setTimeout(() => setSending(false), 1500);
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
setIsHydrated(true);
|
|
121
|
+
}, []);
|
|
122
|
+
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
if (!isHydrated) return;
|
|
125
|
+
setAgeNow(Date.now());
|
|
126
|
+
const timer = window.setInterval(() => {
|
|
127
|
+
setAgeNow(Date.now());
|
|
128
|
+
}, 60_000);
|
|
129
|
+
return () => window.clearInterval(timer);
|
|
130
|
+
}, [isHydrated]);
|
|
131
|
+
|
|
132
|
+
return (
|
|
133
|
+
<div
|
|
134
|
+
className="session-card cursor-pointer"
|
|
135
|
+
onClick={(e) => {
|
|
136
|
+
if ((e.target as HTMLElement).closest("a, button, textarea, input")) return;
|
|
137
|
+
setExpanded(!expanded);
|
|
138
|
+
}}
|
|
139
|
+
>
|
|
140
|
+
{/* Row 1: Session ID + Project badge */}
|
|
141
|
+
<div className="flex items-center gap-2 px-4 pt-3.5 pb-1">
|
|
142
|
+
<span className="text-[11px] font-mono font-medium text-[var(--color-text-secondary)] truncate">
|
|
143
|
+
{session.id}
|
|
144
|
+
</span>
|
|
145
|
+
<span
|
|
146
|
+
className="shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium"
|
|
147
|
+
style={{ background: projectColor.bg, color: projectColor.text }}
|
|
148
|
+
>
|
|
149
|
+
{session.projectId || "default"}
|
|
150
|
+
</span>
|
|
151
|
+
<div className="flex-1" />
|
|
152
|
+
<span className="text-[10px] text-[var(--color-text-muted)]">
|
|
153
|
+
{isHydrated ? formatAge(session.createdAt, ageNow) : "—"}
|
|
154
|
+
</span>
|
|
155
|
+
</div>
|
|
156
|
+
|
|
157
|
+
{/* Row 2: Status dot + status text + agent badge */}
|
|
158
|
+
<div className="flex items-center gap-2 px-4 pb-2">
|
|
159
|
+
<span
|
|
160
|
+
className={`inline-block h-2 w-2 shrink-0 rounded-full ${
|
|
161
|
+
level === "working" ? "animate-[activity-pulse_2s_ease-in-out_infinite]" : ""
|
|
162
|
+
}`}
|
|
163
|
+
style={{ background: dotColor }}
|
|
164
|
+
/>
|
|
165
|
+
<span className="text-[11px] font-medium text-[var(--color-text-secondary)] capitalize">
|
|
166
|
+
{session.status.replace(/_/g, " ")}
|
|
167
|
+
</span>
|
|
168
|
+
{session.metadata?.agent && (
|
|
169
|
+
<span className="inline-flex items-center gap-1.5 rounded bg-[var(--color-accent-subtle)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--color-accent)]">
|
|
170
|
+
<AgentTileIcon seed={{ label: session.metadata.agent }} className="h-6 w-6" />
|
|
171
|
+
<span>{session.metadata.agent}</span>
|
|
172
|
+
</span>
|
|
173
|
+
)}
|
|
174
|
+
</div>
|
|
175
|
+
|
|
176
|
+
{/* Row 3: Summary / activity text */}
|
|
177
|
+
{session.summary && (
|
|
178
|
+
<div className="px-4 pb-2.5">
|
|
179
|
+
<p className="text-[12px] leading-relaxed text-[var(--color-text-tertiary)] line-clamp-2">
|
|
180
|
+
{session.summary}
|
|
181
|
+
</p>
|
|
182
|
+
</div>
|
|
183
|
+
)}
|
|
184
|
+
|
|
185
|
+
{/* Row 4: PR link */}
|
|
186
|
+
{session.pr && (
|
|
187
|
+
<div className="flex items-center gap-1.5 px-4 pb-2.5">
|
|
188
|
+
<svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" className="text-[var(--color-text-muted)] shrink-0">
|
|
189
|
+
<path d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z" />
|
|
190
|
+
</svg>
|
|
191
|
+
<a
|
|
192
|
+
href={session.pr.url}
|
|
193
|
+
target="_blank"
|
|
194
|
+
rel="noopener noreferrer"
|
|
195
|
+
onClick={(e) => e.stopPropagation()}
|
|
196
|
+
className="text-[11px] text-[var(--color-accent)] hover:underline truncate"
|
|
197
|
+
>
|
|
198
|
+
PR #{session.pr.number}
|
|
199
|
+
{session.pr.title ? ` — ${session.pr.title}` : ""}
|
|
200
|
+
</a>
|
|
201
|
+
{session.pr.isDraft && (
|
|
202
|
+
<span className="rounded bg-[rgba(245,158,11,0.1)] px-1 py-0.5 text-[9px] text-[var(--color-status-attention)]">
|
|
203
|
+
draft
|
|
204
|
+
</span>
|
|
205
|
+
)}
|
|
206
|
+
</div>
|
|
207
|
+
)}
|
|
208
|
+
|
|
209
|
+
{/* Row 5: Meta row (cost, duration, actions) */}
|
|
210
|
+
<div className="flex items-center gap-3 border-t border-[var(--color-border-subtle)] px-4 py-2.5">
|
|
211
|
+
{estimatedCost != null && (
|
|
212
|
+
<span className="text-[10px] text-[var(--color-text-muted)] font-mono">
|
|
213
|
+
${estimatedCost.toFixed(2)}
|
|
214
|
+
</span>
|
|
215
|
+
)}
|
|
216
|
+
<span className="text-[10px] text-[var(--color-text-muted)]">
|
|
217
|
+
{formatDuration(session.createdAt, session.lastActivityAt)}
|
|
218
|
+
</span>
|
|
219
|
+
<div className="flex-1" />
|
|
220
|
+
</div>
|
|
221
|
+
|
|
222
|
+
{/* Expanded panel */}
|
|
223
|
+
{expanded && (
|
|
224
|
+
<div className="border-t border-[var(--color-border-subtle)] px-4 py-3 animate-[slide-up_0.15s_ease]">
|
|
225
|
+
{/* Activity */}
|
|
226
|
+
<div className="mb-3 flex items-center gap-2">
|
|
227
|
+
<ActivityDot activity={session.activity} />
|
|
228
|
+
{session.branch && (
|
|
229
|
+
<span className="text-[10px] text-[var(--color-text-muted)] font-mono truncate max-w-[160px]">
|
|
230
|
+
{session.branch}
|
|
231
|
+
</span>
|
|
232
|
+
)}
|
|
233
|
+
</div>
|
|
234
|
+
|
|
235
|
+
{/* PR details */}
|
|
236
|
+
{session.pr && (
|
|
237
|
+
<div className="mb-3 space-y-1.5">
|
|
238
|
+
<div className="text-[10px] font-semibold uppercase tracking-wider text-[var(--color-text-muted)]">Pull Request</div>
|
|
239
|
+
|
|
240
|
+
{/* CI Status badge */}
|
|
241
|
+
<div className="flex items-center gap-2 flex-wrap">
|
|
242
|
+
<CIBadge status={session.pr.ciStatus} prUrl={session.pr.url} />
|
|
243
|
+
<ReviewBadge decision={session.pr.reviewDecision} />
|
|
244
|
+
{session.pr.state !== "open" && (
|
|
245
|
+
<span className="rounded px-1.5 py-0.5 text-[9px] font-medium bg-[rgba(163,113,247,0.15)] text-[var(--color-accent-violet)]">
|
|
246
|
+
{session.pr.state}
|
|
247
|
+
</span>
|
|
248
|
+
)}
|
|
249
|
+
</div>
|
|
250
|
+
|
|
251
|
+
{/* Preview URL */}
|
|
252
|
+
{session.pr.previewUrl && (
|
|
253
|
+
<a href={session.pr.previewUrl} target="_blank" rel="noopener noreferrer"
|
|
254
|
+
onClick={(e) => e.stopPropagation()}
|
|
255
|
+
className="flex items-center gap-1 text-[10px] text-[var(--color-accent)] hover:underline">
|
|
256
|
+
<svg width="10" height="10" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
|
|
257
|
+
Preview Deploy
|
|
258
|
+
</a>
|
|
259
|
+
)}
|
|
260
|
+
|
|
261
|
+
{/* GitHub PR link */}
|
|
262
|
+
<a href={session.pr.url} target="_blank" rel="noopener noreferrer"
|
|
263
|
+
onClick={(e) => e.stopPropagation()}
|
|
264
|
+
className="flex items-center gap-1 text-[10px] text-[var(--color-text-secondary)] hover:underline hover:text-[var(--color-text-primary)]">
|
|
265
|
+
Open on GitHub ↗
|
|
266
|
+
</a>
|
|
267
|
+
</div>
|
|
268
|
+
)}
|
|
269
|
+
|
|
270
|
+
{/* Send message */}
|
|
271
|
+
{!isTerminal && (
|
|
272
|
+
<div className="mb-3">
|
|
273
|
+
<div className="flex gap-2">
|
|
274
|
+
<input
|
|
275
|
+
type="text"
|
|
276
|
+
value={messageInput}
|
|
277
|
+
onChange={(e) => setMessageInput(e.target.value)}
|
|
278
|
+
onKeyDown={(e) => {
|
|
279
|
+
if (e.key === "Enter") {
|
|
280
|
+
e.preventDefault();
|
|
281
|
+
void handleSendMessage();
|
|
282
|
+
}
|
|
283
|
+
}}
|
|
284
|
+
placeholder="Message agent..."
|
|
285
|
+
className="flex-1 rounded-md border border-[var(--color-border-default)] bg-[var(--color-bg-base)] px-2.5 py-1.5 text-[11px] text-[var(--color-text-primary)] placeholder-[var(--color-text-muted)] outline-none focus:border-[var(--color-accent)]"
|
|
286
|
+
onClick={(e) => e.stopPropagation()}
|
|
287
|
+
/>
|
|
288
|
+
<button
|
|
289
|
+
onClick={(e) => {
|
|
290
|
+
e.stopPropagation();
|
|
291
|
+
void handleSendMessage();
|
|
292
|
+
}}
|
|
293
|
+
disabled={sending || messageInput.trim().length === 0}
|
|
294
|
+
className="rounded-md bg-[var(--color-accent)] px-2.5 py-1.5 text-[10px] font-medium text-white transition-colors hover:opacity-90 disabled:opacity-40"
|
|
295
|
+
>
|
|
296
|
+
{sending ? "Sent" : "Send"}
|
|
297
|
+
</button>
|
|
298
|
+
</div>
|
|
299
|
+
</div>
|
|
300
|
+
)}
|
|
301
|
+
|
|
302
|
+
{/* Actions */}
|
|
303
|
+
<div className="flex gap-2">
|
|
304
|
+
<a
|
|
305
|
+
href={`/sessions/${encodeURIComponent(session.id)}`}
|
|
306
|
+
onClick={(e) => e.stopPropagation()}
|
|
307
|
+
className="rounded-md border border-[var(--color-border-default)] px-2.5 py-1 text-[10px] font-medium text-[var(--color-text-secondary)] transition-colors hover:border-[var(--color-border-strong)] hover:text-[var(--color-text-primary)] hover:no-underline"
|
|
308
|
+
>
|
|
309
|
+
View details
|
|
310
|
+
</a>
|
|
311
|
+
{isTerminal && (
|
|
312
|
+
<button
|
|
313
|
+
onClick={(e) => {
|
|
314
|
+
e.stopPropagation();
|
|
315
|
+
onOpenTerminal?.(session.id);
|
|
316
|
+
}}
|
|
317
|
+
className="rounded-md border border-[var(--color-accent)] px-2.5 py-1 text-[10px] font-medium text-[var(--color-accent)] transition-colors hover:bg-[var(--color-accent-subtle)]"
|
|
318
|
+
>
|
|
319
|
+
Open terminal
|
|
320
|
+
</button>
|
|
321
|
+
)}
|
|
322
|
+
{isRestorable && (
|
|
323
|
+
<button
|
|
324
|
+
onClick={(e) => {
|
|
325
|
+
e.stopPropagation();
|
|
326
|
+
onRestore?.(session.id);
|
|
327
|
+
}}
|
|
328
|
+
className="rounded-md border border-[var(--color-border-default)] px-2.5 py-1 text-[10px] font-medium text-[var(--color-accent)] transition-colors hover:bg-[var(--color-accent-subtle)]"
|
|
329
|
+
>
|
|
330
|
+
Restore
|
|
331
|
+
</button>
|
|
332
|
+
)}
|
|
333
|
+
<button
|
|
334
|
+
onClick={(e) => {
|
|
335
|
+
e.stopPropagation();
|
|
336
|
+
onKill?.(session.id, isTerminal);
|
|
337
|
+
}}
|
|
338
|
+
disabled={actionBusy}
|
|
339
|
+
className={`rounded-md border border-[rgba(239,68,68,0.3)] px-2.5 py-1 text-[10px] font-medium text-[var(--color-status-error)] transition-colors hover:bg-[rgba(239,68,68,0.08)] ${
|
|
340
|
+
actionBusy
|
|
341
|
+
? "cursor-wait opacity-50 hover:bg-transparent"
|
|
342
|
+
: ""
|
|
343
|
+
}`}
|
|
344
|
+
>
|
|
345
|
+
{actionBusy ? (isTerminal ? "Cleaning..." : "Killing...") : isTerminal ? "Cleanup" : "Kill"}
|
|
346
|
+
</button>
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
349
|
+
)}
|
|
350
|
+
</div>
|
|
351
|
+
);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
function CIBadge({ status, prUrl }: { status: string; prUrl: string }) {
|
|
355
|
+
const color = status === "passing" ? "rgba(63,185,80,0.15)" : status === "failing" ? "rgba(248,81,73,0.15)" : "rgba(139,148,158,0.15)";
|
|
356
|
+
const textColor = status === "passing" ? "var(--color-status-ready)" : status === "failing" ? "var(--color-status-error)" : "var(--color-text-muted)";
|
|
357
|
+
const dot = status === "passing" ? "\u{1F7E2}" : status === "failing" ? "\u{1F534}" : "\u{1F7E1}";
|
|
358
|
+
return (
|
|
359
|
+
<a href={`${prUrl}/checks`} target="_blank" rel="noopener noreferrer" onClick={(e) => e.stopPropagation()}
|
|
360
|
+
className="rounded px-1.5 py-0.5 text-[9px] font-medium hover:opacity-80"
|
|
361
|
+
style={{ background: color, color: textColor }}>
|
|
362
|
+
{dot} CI: {status || "pending"}
|
|
363
|
+
</a>
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
function ReviewBadge({ decision }: { decision: string }) {
|
|
368
|
+
const approved = decision === "approved";
|
|
369
|
+
const changes = decision === "changes_requested";
|
|
370
|
+
const color = approved ? "rgba(63,185,80,0.15)" : changes ? "rgba(248,81,73,0.15)" : "rgba(139,148,158,0.15)";
|
|
371
|
+
const textColor = approved ? "var(--color-status-ready)" : changes ? "var(--color-status-error)" : "var(--color-text-muted)";
|
|
372
|
+
return (
|
|
373
|
+
<span className="rounded px-1.5 py-0.5 text-[9px] font-medium" style={{ background: color, color: textColor }}>
|
|
374
|
+
{approved ? "\u2705 Approved" : changes ? "\u{1F504} Changes requested" : "\u{1F440} Review: " + (decision || "pending")}
|
|
375
|
+
</span>
|
|
376
|
+
);
|
|
377
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef } from "react";
|
|
4
|
+
import type { FitAddon as XFitAddon } from "@xterm/addon-fit";
|
|
5
|
+
import type { ITerminalOptions, Terminal as XTerminal } from "@xterm/xterm";
|
|
6
|
+
import { useSessionOutputStream } from "@/hooks/useSessionOutputStream";
|
|
7
|
+
|
|
8
|
+
interface TerminalViewProps {
|
|
9
|
+
sessionId: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function getTerminalTheme(): NonNullable<ITerminalOptions["theme"]> {
|
|
13
|
+
const isLight = document.documentElement.classList.contains("light");
|
|
14
|
+
|
|
15
|
+
if (isLight) {
|
|
16
|
+
return {
|
|
17
|
+
background: "#f8fbff",
|
|
18
|
+
foreground: "#1f2a3a",
|
|
19
|
+
cursor: "#ea580c",
|
|
20
|
+
selectionBackground: "rgba(234,88,12,0.25)",
|
|
21
|
+
black: "#4b5563",
|
|
22
|
+
red: "#dc2626",
|
|
23
|
+
green: "#15803d",
|
|
24
|
+
yellow: "#b45309",
|
|
25
|
+
blue: "#2563eb",
|
|
26
|
+
magenta: "#7e22ce",
|
|
27
|
+
cyan: "#0e7490",
|
|
28
|
+
white: "#334155",
|
|
29
|
+
brightBlack: "#64748b",
|
|
30
|
+
brightRed: "#ef4444",
|
|
31
|
+
brightGreen: "#22c55e",
|
|
32
|
+
brightYellow: "#f59e0b",
|
|
33
|
+
brightBlue: "#3b82f6",
|
|
34
|
+
brightMagenta: "#a855f7",
|
|
35
|
+
brightCyan: "#06b6d4",
|
|
36
|
+
brightWhite: "#0f172a",
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
background: "#0a0f16",
|
|
42
|
+
foreground: "#d0d8e5",
|
|
43
|
+
cursor: "#f97316",
|
|
44
|
+
selectionBackground: "rgba(249,115,22,0.26)",
|
|
45
|
+
black: "#1f2937",
|
|
46
|
+
red: "#ef4444",
|
|
47
|
+
green: "#22c55e",
|
|
48
|
+
yellow: "#f59e0b",
|
|
49
|
+
blue: "#38bdf8",
|
|
50
|
+
magenta: "#c084fc",
|
|
51
|
+
cyan: "#06b6d4",
|
|
52
|
+
white: "#cbd5e1",
|
|
53
|
+
brightBlack: "#475569",
|
|
54
|
+
brightRed: "#f87171",
|
|
55
|
+
brightGreen: "#4ade80",
|
|
56
|
+
brightYellow: "#fbbf24",
|
|
57
|
+
brightBlue: "#7dd3fc",
|
|
58
|
+
brightMagenta: "#e9d5ff",
|
|
59
|
+
brightCyan: "#67e8f9",
|
|
60
|
+
brightWhite: "#f8fafc",
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function TerminalView({ sessionId }: TerminalViewProps) {
|
|
65
|
+
const containerRef = useRef<HTMLDivElement>(null);
|
|
66
|
+
const termRef = useRef<XTerminal | null>(null);
|
|
67
|
+
const fitRef = useRef<XFitAddon | null>(null);
|
|
68
|
+
const lastRenderedOutputRef = useRef<string>("");
|
|
69
|
+
|
|
70
|
+
const { output, connected, error } = useSessionOutputStream(sessionId, {
|
|
71
|
+
lines: 1200,
|
|
72
|
+
pollIntervalMs: 1300,
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
let term: XTerminal | null = null;
|
|
77
|
+
let fit: XFitAddon | null = null;
|
|
78
|
+
let resizeObserver: ResizeObserver | null = null;
|
|
79
|
+
let mounted = true;
|
|
80
|
+
|
|
81
|
+
async function init() {
|
|
82
|
+
if (!containerRef.current || !mounted) return;
|
|
83
|
+
|
|
84
|
+
const [xtermMod, fitMod] = await Promise.all([
|
|
85
|
+
import("@xterm/xterm"),
|
|
86
|
+
import("@xterm/addon-fit"),
|
|
87
|
+
]);
|
|
88
|
+
|
|
89
|
+
if (!mounted || !containerRef.current) return;
|
|
90
|
+
|
|
91
|
+
const isMobile = window.innerWidth < 640;
|
|
92
|
+
term = new xtermMod.Terminal({
|
|
93
|
+
cursorBlink: false,
|
|
94
|
+
cursorStyle: "underline",
|
|
95
|
+
disableStdin: true,
|
|
96
|
+
scrollback: 5000,
|
|
97
|
+
fontSize: isMobile ? 11 : 12,
|
|
98
|
+
fontFamily: "'IBM Plex Mono', 'JetBrains Mono', 'SF Mono', monospace",
|
|
99
|
+
lineHeight: 1.25,
|
|
100
|
+
convertEol: true,
|
|
101
|
+
theme: getTerminalTheme(),
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
fit = new fitMod.FitAddon();
|
|
105
|
+
term.loadAddon(fit);
|
|
106
|
+
term.open(containerRef.current);
|
|
107
|
+
fit.fit();
|
|
108
|
+
|
|
109
|
+
termRef.current = term;
|
|
110
|
+
fitRef.current = fit;
|
|
111
|
+
|
|
112
|
+
resizeObserver = new ResizeObserver(() => {
|
|
113
|
+
if (!fit || !mounted) return;
|
|
114
|
+
try {
|
|
115
|
+
fit.fit();
|
|
116
|
+
} catch {
|
|
117
|
+
// Container may be hidden while switching tabs.
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
resizeObserver.observe(containerRef.current);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
void init();
|
|
125
|
+
|
|
126
|
+
return () => {
|
|
127
|
+
mounted = false;
|
|
128
|
+
if (resizeObserver) resizeObserver.disconnect();
|
|
129
|
+
if (term) term.dispose();
|
|
130
|
+
termRef.current = null;
|
|
131
|
+
fitRef.current = null;
|
|
132
|
+
lastRenderedOutputRef.current = "";
|
|
133
|
+
};
|
|
134
|
+
}, [sessionId]);
|
|
135
|
+
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
if (!termRef.current) return;
|
|
138
|
+
if (output === lastRenderedOutputRef.current) return;
|
|
139
|
+
|
|
140
|
+
lastRenderedOutputRef.current = output;
|
|
141
|
+
const term = termRef.current;
|
|
142
|
+
term.reset();
|
|
143
|
+
|
|
144
|
+
const normalized = output.replace(/\r?\n/g, "\r\n");
|
|
145
|
+
term.write(normalized, () => {
|
|
146
|
+
term.scrollToBottom();
|
|
147
|
+
fitRef.current?.fit();
|
|
148
|
+
});
|
|
149
|
+
}, [output]);
|
|
150
|
+
|
|
151
|
+
return (
|
|
152
|
+
<div className="flex h-full min-h-0 flex-col">
|
|
153
|
+
<div className="flex items-center gap-2 border-b border-[var(--border-soft)] bg-[var(--bg-panel)] px-3 py-1.5">
|
|
154
|
+
<div
|
|
155
|
+
className={`h-2 w-2 rounded-full ${
|
|
156
|
+
connected
|
|
157
|
+
? "bg-[var(--status-ready)]"
|
|
158
|
+
: error
|
|
159
|
+
? "bg-[var(--status-error)] animate-pulse"
|
|
160
|
+
: "bg-[var(--text-faint)]"
|
|
161
|
+
}`}
|
|
162
|
+
/>
|
|
163
|
+
<span
|
|
164
|
+
className={`text-[11px] ${
|
|
165
|
+
connected
|
|
166
|
+
? "text-[var(--status-ready)]"
|
|
167
|
+
: error
|
|
168
|
+
? "text-[var(--status-error)]"
|
|
169
|
+
: "text-[var(--text-faint)]"
|
|
170
|
+
}`}
|
|
171
|
+
>
|
|
172
|
+
{connected
|
|
173
|
+
? "Live"
|
|
174
|
+
: error?.includes("not found") || error?.includes("404")
|
|
175
|
+
? "No terminal (session ended)"
|
|
176
|
+
: error ?? "Connecting"}
|
|
177
|
+
</span>
|
|
178
|
+
<span className="ml-auto truncate font-mono text-[10px] text-[var(--text-faint)]">{sessionId}</span>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<div ref={containerRef} className="min-h-0 flex-1 overflow-hidden px-1 py-2" />
|
|
182
|
+
</div>
|
|
183
|
+
);
|
|
184
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useState, type ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
type Theme = "dark" | "light";
|
|
6
|
+
|
|
7
|
+
interface ThemeContextValue {
|
|
8
|
+
theme: Theme;
|
|
9
|
+
toggleTheme: () => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const ThemeContext = createContext<ThemeContextValue>({
|
|
13
|
+
theme: "dark",
|
|
14
|
+
toggleTheme: () => {},
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
function applyTheme(theme: Theme) {
|
|
18
|
+
const root = document.documentElement;
|
|
19
|
+
root.classList.remove("dark", "light");
|
|
20
|
+
root.classList.add(theme);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function ThemeProvider({ children }: { children: ReactNode }) {
|
|
24
|
+
const [theme, setTheme] = useState<Theme>("dark");
|
|
25
|
+
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
const stored = localStorage.getItem("conductor-theme");
|
|
28
|
+
if (stored === "light" || stored === "dark") {
|
|
29
|
+
setTheme(stored);
|
|
30
|
+
applyTheme(stored);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
applyTheme("dark");
|
|
35
|
+
}, []);
|
|
36
|
+
|
|
37
|
+
const toggleTheme = useCallback(() => {
|
|
38
|
+
setTheme((prev) => {
|
|
39
|
+
const next: Theme = prev === "dark" ? "light" : "dark";
|
|
40
|
+
localStorage.setItem("conductor-theme", next);
|
|
41
|
+
applyTheme(next);
|
|
42
|
+
return next;
|
|
43
|
+
});
|
|
44
|
+
}, []);
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<ThemeContext.Provider value={{ theme, toggleTheme }}>
|
|
48
|
+
{children}
|
|
49
|
+
</ThemeContext.Provider>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function useTheme(): ThemeContextValue {
|
|
54
|
+
return useContext(ThemeContext);
|
|
55
|
+
}
|