@alexjbarnes/cockpit 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +28 -3
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +147 -3
- package/.next/react-loadable-manifest.json +19 -3
- package/.next/required-server-files.js +3 -0
- package/.next/required-server-files.json +3 -0
- package/.next/routes-manifest.json +162 -0
- package/.next/server/app/(app)/agents/[name]/page.js +3 -3
- package/.next/server/app/(app)/agents/[name]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/agents/[name]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/agents/page.js +2 -2
- package/.next/server/app/(app)/agents/page.js.nft.json +1 -1
- package/.next/server/app/(app)/agents/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/changes/page.js +2 -2
- package/.next/server/app/(app)/changes/page.js.nft.json +1 -1
- package/.next/server/app/(app)/changes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/claude-md/edit/page.js +2 -2
- package/.next/server/app/(app)/claude-md/edit/page.js.nft.json +1 -1
- package/.next/server/app/(app)/claude-md/edit/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/claude-md/page.js +2 -2
- package/.next/server/app/(app)/claude-md/page.js.nft.json +1 -1
- package/.next/server/app/(app)/claude-md/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/commands/[name]/page.js +3 -3
- package/.next/server/app/(app)/commands/[name]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/commands/[name]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/commands/page.js +2 -2
- package/.next/server/app/(app)/commands/page.js.nft.json +1 -1
- package/.next/server/app/(app)/commands/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/files/page.js +2 -2
- package/.next/server/app/(app)/files/page.js.nft.json +1 -1
- package/.next/server/app/(app)/files/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/hooks/[event]/page.js +3 -3
- package/.next/server/app/(app)/hooks/[event]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/hooks/[event]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/hooks/page.js +2 -2
- package/.next/server/app/(app)/hooks/page.js.nft.json +1 -1
- package/.next/server/app/(app)/hooks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/inbox/[id]/page.js +2 -0
- package/.next/server/app/(app)/inbox/[id]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/inbox/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/inbox/page.js +2 -0
- package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
- package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/jobs/[id]/edit/page.js +2 -2
- package/.next/server/app/(app)/jobs/[id]/edit/page.js.nft.json +1 -1
- package/.next/server/app/(app)/jobs/[id]/edit/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/jobs/[id]/page.js +2 -2
- package/.next/server/app/(app)/jobs/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/jobs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js +2 -2
- package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/jobs/page.js +2 -2
- package/.next/server/app/(app)/jobs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/jobs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/mcp-servers/[name]/page.js +2 -2
- package/.next/server/app/(app)/mcp-servers/[name]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/mcp-servers/[name]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/mcp-servers/page.js +2 -2
- package/.next/server/app/(app)/mcp-servers/page.js.nft.json +1 -1
- package/.next/server/app/(app)/mcp-servers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/page.js +2 -2
- package/.next/server/app/(app)/page.js.nft.json +1 -1
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js +6 -6
- package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js +2 -2
- package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reviews/[owner]/[repo]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reviews/page.js +2 -2
- package/.next/server/app/(app)/reviews/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reviews/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/sessions/[id]/page.js +2 -2
- package/.next/server/app/(app)/sessions/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/appearance/page.js +2 -0
- package/.next/server/app/(app)/settings/appearance/page.js.nft.json +1 -0
- package/.next/server/app/(app)/settings/appearance/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/settings/notifications/page.js +2 -0
- package/.next/server/app/(app)/settings/notifications/page.js.nft.json +1 -0
- package/.next/server/app/(app)/settings/notifications/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/settings/page.js +2 -2
- package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/providers/[id]/page.js +2 -0
- package/.next/server/app/(app)/settings/providers/[id]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/settings/providers/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/settings/providers/new/page.js +2 -0
- package/.next/server/app/(app)/settings/providers/new/page.js.nft.json +1 -0
- package/.next/server/app/(app)/settings/providers/new/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/settings/providers/page.js +2 -0
- package/.next/server/app/(app)/settings/providers/page.js.nft.json +1 -0
- package/.next/server/app/(app)/settings/providers/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/settings/session/page.js +2 -0
- package/.next/server/app/(app)/settings/session/page.js.nft.json +1 -0
- package/.next/server/app/(app)/settings/session/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/skills/[name]/page.js +3 -3
- package/.next/server/app/(app)/skills/[name]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/skills/[name]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/skills/page.js +2 -2
- package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
- package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/agents.html +1 -1
- package/.next/server/app/agents.rsc +4 -4
- package/.next/server/app/agents.segments/!KGFwcCk/agents/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/agents.segments/!KGFwcCk/agents.segment.rsc +1 -1
- package/.next/server/app/agents.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/agents.segments/_full.segment.rsc +4 -4
- package/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/agents/[name]/route.js +1 -1
- package/.next/server/app/api/agents/route.js +1 -1
- package/.next/server/app/api/auth/check/route.js +1 -1
- package/.next/server/app/api/auth/login/route.js +1 -1
- package/.next/server/app/api/auth/setup/route.js +1 -1
- package/.next/server/app/api/auth/ws-token/route.js +1 -1
- package/.next/server/app/api/btw/route.js +2 -2
- package/.next/server/app/api/claude-md/route.js +1 -1
- package/.next/server/app/api/commands/[name]/route.js +1 -1
- package/.next/server/app/api/commands/route.js +1 -1
- package/.next/server/app/api/defaults/route.js +1 -1
- package/.next/server/app/api/filesystem/browse/route.js +1 -1
- package/.next/server/app/api/filesystem/files/route.js +1 -1
- package/.next/server/app/api/filesystem/mkdir/route.js +1 -1
- package/.next/server/app/api/filesystem/read/route.js +1 -1
- package/.next/server/app/api/git/clone/route.js +1 -1
- package/.next/server/app/api/git/commit/route.js +1 -1
- package/.next/server/app/api/git/diff/route.js +1 -1
- package/.next/server/app/api/git/discard/route.js +1 -1
- package/.next/server/app/api/git/generate-message/route.js +2 -2
- package/.next/server/app/api/git/push/route.js +1 -1
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/github/file-content/route.js +1 -1
- package/.next/server/app/api/github/orgs/route.js +1 -1
- package/.next/server/app/api/github/prs/checks/route.js +1 -1
- package/.next/server/app/api/github/prs/diff/route.js +1 -1
- package/.next/server/app/api/github/prs/review/route.js +1 -1
- package/.next/server/app/api/github/prs/route.js +1 -1
- package/.next/server/app/api/github/prs/view/route.js +1 -1
- package/.next/server/app/api/github/repos/route.js +1 -1
- package/.next/server/app/api/github/review-session/route.js +1 -1
- package/.next/server/app/api/github/review-session/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js +1 -1
- package/.next/server/app/api/hooks/route.js +1 -1
- package/.next/server/app/api/inbox/[id]/route.js +5 -0
- package/.next/server/app/api/inbox/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/inbox/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/inbox/route.js +5 -0
- package/.next/server/app/api/inbox/route.js.nft.json +1 -0
- package/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/jobs/[id]/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/[id]/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/runs/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/trigger/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/trigger/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/mcp-discover/route.js +1 -1
- package/.next/server/app/api/jobs/mcp-discover/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/route.js +1 -1
- package/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/status/route.js +1 -1
- package/.next/server/app/api/mcp-servers/[name]/route.js +1 -1
- package/.next/server/app/api/mcp-servers/[name]/test/route.js +1 -1
- package/.next/server/app/api/mcp-servers/route.js +1 -1
- package/.next/server/app/api/notifications/route.js +1 -0
- package/.next/server/app/api/notifications/route.js.nft.json +1 -0
- package/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/notifications/test/route.js +5 -0
- package/.next/server/app/api/notifications/test/route.js.nft.json +1 -0
- package/.next/server/app/api/notifications/test/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/providers/[id]/route.js +1 -0
- package/.next/server/app/api/providers/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/providers/route.js +1 -0
- package/.next/server/app/api/providers/route.js.nft.json +1 -0
- package/.next/server/app/api/providers/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/reviews/pinned/route.js +1 -0
- package/.next/server/app/api/reviews/pinned/route.js.nft.json +1 -0
- package/.next/server/app/api/reviews/pinned/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/mcp/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/search/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/tabs/route.js +1 -0
- package/.next/server/app/api/sessions/[id]/tabs/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/tabs/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/bulk-delete/route.js +1 -0
- package/.next/server/app/api/sessions/bulk-delete/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/bulk-delete/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/by-ids/route.js +1 -0
- package/.next/server/app/api/sessions/by-ids/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/by-ids/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/group/route.js +1 -0
- package/.next/server/app/api/sessions/group/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/group/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/pinned/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -0
- package/.next/server/app/api/sessions/search/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sessions/thinking/route.js +1 -0
- package/.next/server/app/api/sessions/thinking/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/thinking/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/skills/[name]/route.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/route.js +1 -0
- package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/terminal/route.js +1 -0
- package/.next/server/app/api/terminal/route.js.nft.json +1 -0
- package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/usage/route.js +1 -1
- package/.next/server/app/api/version/changelog/route.js +1 -0
- package/.next/server/app/api/version/changelog/route.js.nft.json +1 -0
- package/.next/server/app/api/version/changelog/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/version/cockpit/changelog/route.js +1 -0
- package/.next/server/app/api/version/cockpit/changelog/route.js.nft.json +1 -0
- package/.next/server/app/api/version/cockpit/changelog/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/version/cockpit/route.js +1 -1
- package/.next/server/app/api/version/route.js +2 -2
- package/.next/server/app/changes.html +1 -1
- package/.next/server/app/changes.rsc +4 -4
- package/.next/server/app/changes.segments/!KGFwcCk/changes/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/changes.segments/!KGFwcCk/changes.segment.rsc +1 -1
- package/.next/server/app/changes.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/changes.segments/_full.segment.rsc +4 -4
- package/.next/server/app/changes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/changes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/changes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/claude-md/edit.html +1 -1
- package/.next/server/app/claude-md/edit.rsc +4 -4
- package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit.segment.rsc +1 -1
- package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
- package/.next/server/app/claude-md/edit.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/claude-md/edit.segments/_full.segment.rsc +4 -4
- package/.next/server/app/claude-md/edit.segments/_head.segment.rsc +1 -1
- package/.next/server/app/claude-md/edit.segments/_index.segment.rsc +2 -2
- package/.next/server/app/claude-md/edit.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/claude-md.html +1 -1
- package/.next/server/app/claude-md.rsc +4 -4
- package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
- package/.next/server/app/claude-md.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/claude-md.segments/_full.segment.rsc +4 -4
- package/.next/server/app/claude-md.segments/_head.segment.rsc +1 -1
- package/.next/server/app/claude-md.segments/_index.segment.rsc +2 -2
- package/.next/server/app/claude-md.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/commands.html +1 -1
- package/.next/server/app/commands.rsc +4 -4
- package/.next/server/app/commands.segments/!KGFwcCk/commands/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/commands.segments/!KGFwcCk/commands.segment.rsc +1 -1
- package/.next/server/app/commands.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/commands.segments/_full.segment.rsc +4 -4
- package/.next/server/app/commands.segments/_head.segment.rsc +1 -1
- package/.next/server/app/commands.segments/_index.segment.rsc +2 -2
- package/.next/server/app/commands.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/files.html +1 -1
- package/.next/server/app/files.rsc +4 -4
- package/.next/server/app/files.segments/!KGFwcCk/files/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/files.segments/!KGFwcCk/files.segment.rsc +1 -1
- package/.next/server/app/files.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/files.segments/_full.segment.rsc +4 -4
- package/.next/server/app/files.segments/_head.segment.rsc +1 -1
- package/.next/server/app/files.segments/_index.segment.rsc +2 -2
- package/.next/server/app/files.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/hooks.html +1 -1
- package/.next/server/app/hooks.rsc +4 -4
- package/.next/server/app/hooks.segments/!KGFwcCk/hooks/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/hooks.segments/!KGFwcCk/hooks.segment.rsc +1 -1
- package/.next/server/app/hooks.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/hooks.segments/_full.segment.rsc +4 -4
- package/.next/server/app/hooks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/hooks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/hooks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/inbox.html +1 -0
- package/.next/server/app/inbox.meta +16 -0
- package/.next/server/app/inbox.rsc +23 -0
- package/.next/server/app/inbox.segments/!KGFwcCk/inbox/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/inbox.segments/!KGFwcCk/inbox.segment.rsc +5 -0
- package/.next/server/app/inbox.segments/!KGFwcCk.segment.rsc +7 -0
- package/.next/server/app/inbox.segments/_full.segment.rsc +23 -0
- package/.next/server/app/inbox.segments/_head.segment.rsc +6 -0
- package/.next/server/app/inbox.segments/_index.segment.rsc +5 -0
- package/.next/server/app/inbox.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/jobs.html +1 -1
- package/.next/server/app/jobs.rsc +4 -4
- package/.next/server/app/jobs.segments/!KGFwcCk/jobs/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/jobs.segments/!KGFwcCk/jobs.segment.rsc +1 -1
- package/.next/server/app/jobs.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/jobs.segments/_full.segment.rsc +4 -4
- package/.next/server/app/jobs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/jobs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/jobs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login/page.js +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/mcp-servers.html +1 -1
- package/.next/server/app/mcp-servers.rsc +4 -4
- package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers.segment.rsc +1 -1
- package/.next/server/app/mcp-servers.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/mcp-servers.segments/_full.segment.rsc +4 -4
- package/.next/server/app/mcp-servers.segments/_head.segment.rsc +1 -1
- package/.next/server/app/mcp-servers.segments/_index.segment.rsc +2 -2
- package/.next/server/app/mcp-servers.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/reviews.html +1 -1
- package/.next/server/app/reviews.rsc +4 -4
- package/.next/server/app/reviews.segments/!KGFwcCk/reviews/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/reviews.segments/!KGFwcCk/reviews.segment.rsc +1 -1
- package/.next/server/app/reviews.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/reviews.segments/_full.segment.rsc +4 -4
- package/.next/server/app/reviews.segments/_head.segment.rsc +1 -1
- package/.next/server/app/reviews.segments/_index.segment.rsc +2 -2
- package/.next/server/app/reviews.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/appearance.html +1 -0
- package/.next/server/app/settings/appearance.meta +17 -0
- package/.next/server/app/settings/appearance.rsc +23 -0
- package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance.segment.rsc +5 -0
- package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings.segment.rsc +5 -0
- package/.next/server/app/settings/appearance.segments/!KGFwcCk.segment.rsc +7 -0
- package/.next/server/app/settings/appearance.segments/_full.segment.rsc +23 -0
- package/.next/server/app/settings/appearance.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/appearance.segments/_index.segment.rsc +5 -0
- package/.next/server/app/settings/appearance.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings/notifications.html +1 -0
- package/.next/server/app/settings/notifications.meta +17 -0
- package/.next/server/app/settings/notifications.rsc +23 -0
- package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications.segment.rsc +5 -0
- package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings.segment.rsc +5 -0
- package/.next/server/app/settings/notifications.segments/!KGFwcCk.segment.rsc +7 -0
- package/.next/server/app/settings/notifications.segments/_full.segment.rsc +23 -0
- package/.next/server/app/settings/notifications.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/notifications.segments/_index.segment.rsc +5 -0
- package/.next/server/app/settings/notifications.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings/providers/new.html +1 -0
- package/.next/server/app/settings/providers/new.meta +18 -0
- package/.next/server/app/settings/providers/new.rsc +23 -0
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new.segment.rsc +5 -0
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers.segment.rsc +5 -0
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings.segment.rsc +5 -0
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk.segment.rsc +7 -0
- package/.next/server/app/settings/providers/new.segments/_full.segment.rsc +23 -0
- package/.next/server/app/settings/providers/new.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/providers/new.segments/_index.segment.rsc +5 -0
- package/.next/server/app/settings/providers/new.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings/providers.html +1 -0
- package/.next/server/app/settings/providers.meta +17 -0
- package/.next/server/app/settings/providers.rsc +23 -0
- package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers.segment.rsc +5 -0
- package/.next/server/app/settings/providers.segments/!KGFwcCk/settings.segment.rsc +5 -0
- package/.next/server/app/settings/providers.segments/!KGFwcCk.segment.rsc +7 -0
- package/.next/server/app/settings/providers.segments/_full.segment.rsc +23 -0
- package/.next/server/app/settings/providers.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/providers.segments/_index.segment.rsc +5 -0
- package/.next/server/app/settings/providers.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings/session.html +1 -0
- package/.next/server/app/settings/session.meta +17 -0
- package/.next/server/app/settings/session.rsc +23 -0
- package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session.segment.rsc +5 -0
- package/.next/server/app/settings/session.segments/!KGFwcCk/settings.segment.rsc +5 -0
- package/.next/server/app/settings/session.segments/!KGFwcCk.segment.rsc +7 -0
- package/.next/server/app/settings/session.segments/_full.segment.rsc +23 -0
- package/.next/server/app/settings/session.segments/_head.segment.rsc +6 -0
- package/.next/server/app/settings/session.segments/_index.segment.rsc +5 -0
- package/.next/server/app/settings/session.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +4 -4
- package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/!KGFwcCk/settings.segment.rsc +1 -1
- package/.next/server/app/settings.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/skills.html +1 -1
- package/.next/server/app/skills.rsc +4 -4
- package/.next/server/app/skills.segments/!KGFwcCk/skills/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/skills.segments/!KGFwcCk/skills.segment.rsc +1 -1
- package/.next/server/app/skills.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/skills.segments/_full.segment.rsc +4 -4
- package/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/.next/server/app/skills.segments/_index.segment.rsc +2 -2
- package/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/.next/server/app-paths-manifest.json +28 -3
- package/.next/server/chunks/1002.js +18 -0
- package/.next/server/chunks/1011.js +1 -0
- package/.next/server/chunks/1979.js +2 -2
- package/.next/server/chunks/{9012.js → 3006.js} +3 -3
- package/.next/server/chunks/3108.js +1 -0
- package/.next/server/chunks/3434.js +1 -0
- package/.next/server/chunks/{6142.js → 4342.js} +1 -1
- package/.next/server/chunks/4352.js +1 -0
- package/.next/server/chunks/4445.js +1 -1
- package/.next/server/chunks/5965.js +1 -1
- package/.next/server/chunks/7782.js +6 -0
- package/.next/server/chunks/8148.js +1 -0
- package/.next/server/chunks/9599.js +11 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{35922.5bdf78a760129504.js → 13541.056c34ca7fde6869.js} +1 -1
- package/.next/static/chunks/26126-97874904b42befb8.js +1 -0
- package/.next/static/chunks/{22086-756d490e3320ad15.js → 31010-6e87f77b97544424.js} +1 -1
- package/.next/static/chunks/3765-d323c6675307a63e.js +20 -0
- package/.next/static/chunks/41487-d802643f4a8fad3c.js +199 -0
- package/.next/static/chunks/48273-bbd15bac6733dfc4.js +6 -0
- package/.next/static/chunks/{80392.bca860d8b5972706.js → 58011.3de5770e8b0d8759.js} +1 -1
- package/.next/static/chunks/63606.a387b0261d6523ab.js +1 -0
- package/.next/static/chunks/6935-f436a624267529fb.js +1 -0
- package/.next/static/chunks/{69427.755a0a4013596f7a.js → 69427.a0b463c808aa54c8.js} +1 -1
- package/.next/static/chunks/86939-dfc6f8eb395caa89.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[name]/page-8bdd0359043537d4.js +8 -0
- package/.next/static/chunks/app/(app)/agents/page-6fcfd7ab6781814e.js +1 -0
- package/.next/static/chunks/app/(app)/changes/page-4549a5bd72d77e3e.js +1 -0
- package/.next/static/chunks/app/(app)/claude-md/edit/page-08e6e120e71979f4.js +1 -0
- package/.next/static/chunks/app/(app)/claude-md/page-cd9e2176a12ba241.js +1 -0
- package/.next/static/chunks/app/(app)/commands/[name]/page-7cdfdef29ded0aa0.js +6 -0
- package/.next/static/chunks/app/(app)/commands/page-f126b608b04747ac.js +1 -0
- package/.next/static/chunks/app/(app)/files/page-f526eb95821e000e.js +1 -0
- package/.next/static/chunks/app/(app)/hooks/[event]/page-28038323fd29adfa.js +6 -0
- package/.next/static/chunks/app/(app)/hooks/page-f1f39284e53c0344.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/[id]/page-bc1ff3a0db0114a4.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-82e03870103ce9bd.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-7fb788f772ff2129.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/page-a5856b9ae967ff59.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-b7c513402db11db6.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/page-e9bbd6c116b9699f.js +1 -0
- package/.next/static/chunks/app/(app)/layout-ce9e1be301c60fe5.js +1 -0
- package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-d6d805a27ec0b0c0.js +1 -0
- package/.next/static/chunks/app/(app)/mcp-servers/page-4b7276d43451cd43.js +1 -0
- package/.next/static/chunks/app/(app)/page-027a5382da30ddb9.js +1 -0
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-9ab2955c455bb5fa.js +13 -0
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/page-c5fd013309ab3eba.js +1 -0
- package/.next/static/chunks/app/(app)/reviews/page-47530d93bb9d4a76.js +1 -0
- package/.next/static/chunks/app/(app)/sessions/[id]/page-94f891e1b54fd05f.js +1 -0
- package/.next/static/chunks/app/(app)/settings/appearance/page-95902da748ac5f1e.js +1 -0
- package/.next/static/chunks/app/(app)/settings/notifications/page-229f1db6beb1d19c.js +1 -0
- package/.next/static/chunks/app/(app)/settings/page-8ed16a66fdde10cd.js +1 -0
- package/.next/static/chunks/app/(app)/settings/providers/[id]/page-13654263246617b3.js +1 -0
- package/.next/static/chunks/app/(app)/settings/providers/new/page-e1798e321ccbc6df.js +1 -0
- package/.next/static/chunks/app/(app)/settings/providers/page-0bb4c1db2ee35b3d.js +1 -0
- package/.next/static/chunks/app/(app)/settings/session/page-ab216a8fa37a0f76.js +1 -0
- package/.next/static/chunks/app/(app)/skills/[name]/page-8ab85d5090967ee4.js +6 -0
- package/.next/static/chunks/app/(app)/skills/page-c52773eacb27c04e.js +1 -0
- package/.next/static/chunks/app/_global-error/page-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/agents/[name]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/agents/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/auth/check/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/auth/setup/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/auth/ws-token/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/btw/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/claude-md/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/commands/[name]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/commands/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/defaults/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/filesystem/browse/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/filesystem/files/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/filesystem/mkdir/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/filesystem/read/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/git/clone/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/git/commit/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/git/discard/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/git/generate-message/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/git/push/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/file-content/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/orgs/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/checks/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/diff/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/review/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/view/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/repos/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/github/review-session/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/health/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/hooks/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/inbox/[id]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/inbox/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/trigger/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/jobs/mcp-discover/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/jobs/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/jobs/status/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/[name]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/notifications/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/notifications/test/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/providers/[id]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/providers/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/reviews/pinned/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/mcp/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/search/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/tabs/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/bulk-delete/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/by-ids/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/group/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/pinned/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/sessions/thinking/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/skills/[name]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/skills/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/usage/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/version/changelog/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/version/cockpit/changelog/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/version/cockpit/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/app/api/version/route-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/e868780c.f24b6da08e62c7b2.js +18 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fc747760bd4c8a4b.js +1 -0
- package/.next/static/chunks/webpack-e31bb45fa59caed8.js +1 -0
- package/.next/static/css/3f8af4ae6f812d5c.css +1 -0
- package/.next/static/zr8XZzqb74eHitdlkpo-C/_buildManifest.js +1 -0
- package/README.md +14 -4
- package/bin/cockpit-hook-bridge.mjs +101 -0
- package/dist/server.js +49 -2
- package/dist/src/lib/models.js +48 -7
- package/dist/src/server/auth.js +32 -10
- package/dist/src/server/claude-settings.js +153 -0
- package/dist/src/server/cli-init-fetch.js +86 -0
- package/dist/src/server/cron-utils.js +16 -5
- package/dist/src/server/debug-logger.js +2 -2
- package/dist/src/server/defaults.js +18 -7
- package/dist/src/server/fs-watcher.js +50 -0
- package/dist/src/server/hook-bridge-path.js +34 -0
- package/dist/src/server/hook-event-translator.js +211 -0
- package/dist/src/server/hook-router.js +150 -0
- package/dist/src/server/inbox.js +136 -0
- package/dist/src/server/job-lock.js +103 -0
- package/dist/src/server/job-scheduler.js +170 -43
- package/dist/src/server/job-storage.js +32 -20
- package/dist/src/server/notification-settings.js +43 -0
- package/dist/src/server/notifications.js +125 -0
- package/dist/src/server/paths.js +23 -0
- package/dist/src/server/plans.js +8 -5
- package/dist/src/server/providers.js +128 -0
- package/dist/src/server/pty-runtime.js +324 -0
- package/dist/src/server/pty-session.js +178 -0
- package/dist/src/server/session-manager.js +838 -152
- package/dist/src/server/session-prefs.js +33 -8
- package/dist/src/server/singleton.js +18 -0
- package/dist/src/server/stream-processor.js +61 -48
- package/dist/src/server/terminal-manager.js +153 -0
- package/dist/src/server/todo-watcher.js +178 -0
- package/dist/src/server/transcript-watcher.js +91 -0
- package/dist/src/server/transcript.js +444 -13
- package/dist/src/server/ws-handler.js +251 -74
- package/next.config.ts +1 -0
- package/package.json +10 -3
- package/public/fonts/symbols-nerd-font-mono.woff2 +0 -0
- package/.next/server/chunks/1941.js +0 -9
- package/.next/server/chunks/2444.js +0 -6
- package/.next/server/chunks/8346.js +0 -1
- package/.next/static/V2EfPtTUC96VYyF12K0om/_buildManifest.js +0 -1
- package/.next/static/chunks/30120-1535e9064b17ce74.js +0 -20
- package/.next/static/chunks/66997-652baf5596173fea.js +0 -199
- package/.next/static/chunks/93273-c5cb6dcedef67c81.js +0 -6
- package/.next/static/chunks/app/(app)/agents/[name]/page-44c5691c80f17d38.js +0 -8
- package/.next/static/chunks/app/(app)/agents/page-4ce7a715bc0145dc.js +0 -1
- package/.next/static/chunks/app/(app)/changes/page-84cf4cd3ca347d98.js +0 -1
- package/.next/static/chunks/app/(app)/claude-md/edit/page-fb7117171d0f94d2.js +0 -1
- package/.next/static/chunks/app/(app)/claude-md/page-9503f1415e660911.js +0 -1
- package/.next/static/chunks/app/(app)/commands/[name]/page-6ef571e73b105248.js +0 -6
- package/.next/static/chunks/app/(app)/commands/page-e8a506da73d1c280.js +0 -1
- package/.next/static/chunks/app/(app)/files/page-67a95d351a685d79.js +0 -1
- package/.next/static/chunks/app/(app)/hooks/[event]/page-03f85595561b068a.js +0 -6
- package/.next/static/chunks/app/(app)/hooks/page-5578c83ad353e307.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-51d784c59737778c.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/[id]/page-7d00e7a01c70a261.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-665191da233fde19.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/page-8b4ee1166a53d5e1.js +0 -1
- package/.next/static/chunks/app/(app)/layout-8dad55d6ce637a01.js +0 -1
- package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-c30f0d78daf7719e.js +0 -1
- package/.next/static/chunks/app/(app)/mcp-servers/page-737b87d338afdb49.js +0 -1
- package/.next/static/chunks/app/(app)/page-40052655d2a9a84f.js +0 -1
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-1d9179bf5a4de7a4.js +0 -13
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/page-d8a9ee39e7cc056a.js +0 -1
- package/.next/static/chunks/app/(app)/reviews/page-098e6e6fe3123e02.js +0 -1
- package/.next/static/chunks/app/(app)/sessions/[id]/page-a74f7fe8322678ba.js +0 -1
- package/.next/static/chunks/app/(app)/settings/page-1fa46b8ac8e22927.js +0 -1
- package/.next/static/chunks/app/(app)/skills/[name]/page-e6572062a6ad90df.js +0 -6
- package/.next/static/chunks/app/(app)/skills/page-8fca8814aa818ae6.js +0 -1
- package/.next/static/chunks/app/_global-error/page-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/agents/[name]/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/agents/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/auth/check/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/auth/setup/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/auth/ws-token/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/btw/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/claude-md/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/commands/[name]/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/commands/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/defaults/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/filesystem/browse/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/filesystem/files/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/filesystem/mkdir/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/filesystem/read/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/git/clone/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/git/commit/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/git/discard/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/git/generate-message/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/git/push/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/file-content/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/orgs/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/prs/checks/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/prs/diff/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/prs/review/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/prs/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/prs/view/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/repos/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/github/review-session/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/health/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/hooks/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/runs/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/trigger/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/jobs/mcp-discover/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/jobs/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/jobs/status/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/mcp-servers/[name]/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/mcp-servers/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/mcp/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/search/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/sessions/pinned/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/skills/[name]/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/skills/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/usage/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/version/cockpit/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/app/api/version/route-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b277aba73f9e0212.js +0 -1
- package/.next/static/chunks/webpack-2a5835e108df6f34.js +0 -1
- package/.next/static/css/1e1239c76b265910.css +0 -1
- /package/.next/static/{V2EfPtTUC96VYyF12K0om → zr8XZzqb74eHitdlkpo-C}/_ssgManifest.js +0 -0
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[30120],{513:(e,t,s)=>{s.d(t,{s:()=>I});var n=s(95155),r=s(92571),a=s(76721),l=s(12363),i=s(36483),o=s(9107),c=s(5045),d=s(12115),u=s(18189),m=s(64233),x=s(42763),h=s(22317),f=s(40980),p=s(52750),g=s(53972),j=s(30120),v=s(57594),b=s(89723);function w(e,t){let s=e.toLowerCase();return("write"===s||"edit"===s)&&(t.includes("/.claude/plans/")||t.startsWith("~/.claude/plans/"))&&t.endsWith(".md")}function y({tool:e,expandedToolIds:t}){let s=function(){let[e,t]=(0,d.useState)(!1);return(0,d.useEffect)(()=>{let e=()=>{t(document.documentElement.classList.contains("dark"))};e();let s=new MutationObserver(e);return s.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>s.disconnect()},[]),e}(),{backgroundTasks:l}=(0,j.E2)(),{settings:i,loaded:o}=(0,h.t)(),c=(0,d.useMemo)(()=>(function(e){if(!e)return{};try{return JSON.parse(e)}catch{return{}}})(e.input),[e.input]),[m,x]=(0,d.useState)(()=>t?.current?.has(e.id)??!1),[g,v]=(0,d.useState)(!1),C=(0,d.useRef)(t?.current?.has(e.id)??!1);(0,d.useEffect)(()=>{var t;let s;o&&!C.current&&x((t=e.name,"read"===(s=t.toLowerCase())?i.readExpanded:"edit"===s?i.editExpanded:i.toolCallsExpanded))},[o,e.name,i]);let S=c.file_path||e.filePath||"",E=w(e.name,S),$=c.content||"",A=E&&("Write"===e.name||"write"===e.name)&&$;(0,d.useEffect)(()=>{let t=e.name;if(("Read"===t||"read"===t)&&e.output){let t=c.file_path||e.filePath||"",n=t?(0,u.WG)(t):void 0;n&&(0,u.Ik)(e.output,n,s)}else if(("Write"===t||"write"===t)&&c.content){let t=c.file_path||e.filePath||"",n=t?(0,u.WG)(t):void 0;n&&(0,u.Ik)(c.content,n,s)}},[e.name,e.output,e.filePath,c,s]);let T="EnterPlanMode"!==e.name&&"ExitPlanMode"!==e.name&&"TaskCreate"!==e.name&&"TaskUpdate"!==e.name&&"TaskList"!==e.name&&"TaskGet"!==e.name&&"TodoWrite"!==e.name&&(e.input||e.output),_=(0,d.useMemo)(()=>({current:!1}),[]),R=(0,d.useCallback)(e=>{e&&_.current&&(_.current=!1,requestAnimationFrame(()=>{let t=e.closest("[tabindex]");if(!t)return;let s=t.getBoundingClientRect();e.getBoundingClientRect().bottom>s.bottom&&e.scrollIntoView({block:"nearest",behavior:"smooth"})}))},[_]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"rounded border border-border bg-card text-card-foreground text-xs overflow-hidden",children:[(0,n.jsxs)("button",{onClick:()=>{if(A)return void v(!0);if(!T)return;let s=!m;_.current=s,C.current=!0,x(s),t?.current&&(s?t.current.add(e.id):t.current.delete(e.id))},className:(0,f.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left",T&&"cursor-pointer hover:bg-muted/50",!T&&"cursor-default"),children:[A?(0,n.jsx)(p.A,{className:"h-3 w-3 shrink-0 text-blue-500"}):(0,n.jsx)(a.A,{className:(0,f.cn)("h-3 w-3 shrink-0 text-muted-foreground transition-transform",m&&"rotate-90")}),(0,n.jsx)("span",{className:"font-mono font-medium",children:e.name}),"Agent"===e.name&&("running"===e.status||l.some(t=>t.toolUseId===e.id&&"running"===t.status))&&(0,n.jsx)(r.A,{className:"h-3 w-3 shrink-0 animate-spin text-muted-foreground"}),(0,n.jsx)(N,{tool:e,input:c})]}),m&&T&&(0,n.jsx)("div",{ref:R,className:"border-t border-border px-3 py-2 space-y-2",children:(0,n.jsx)(k,{tool:e,input:c,dark:s,expandedToolIds:t})})]}),A&&(0,n.jsx)(b.G,{open:g,onOpenChange:v,content:$,filePath:S})]})}function N({tool:e,input:t}){let s=e.name;if("Edit"===s||"edit"===s){let r=t.file_path||e.filePath||"";if(!r)return null;let a=w(s,r);return(0,n.jsxs)("span",{className:"text-muted-foreground truncate",children:[(0,g._1)(r),a?" (plan edit)":""]})}if("Write"===s||"write"===s){let r=t.file_path||e.filePath||"";if(!r)return null;let a=t.content||"";return w(s,r)&&a?(0,n.jsx)("span",{className:"text-blue-500 truncate",children:"View plan"}):(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:(0,g._1)(r)})}if("Read"===s||"read"===s){let s=t.file_path||e.filePath||"";return s?(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:(0,g._1)(s)}):null}if("Bash"===s||"bash"===s){let e=t.command||"",s=e.length>60?e.slice(0,60)+"...":e;return s?(0,n.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:s}):null}if("Grep"===s||"grep"===s){let e=t.pattern||"";return e?(0,n.jsxs)("span",{className:"font-mono text-muted-foreground truncate",children:["/",e,"/"]}):null}if("Glob"===s||"glob"===s){let e=t.pattern||"";return e?(0,n.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:e}):null}if("Agent"===s){let e=t.description||t.prompt||"",s=e.length>60?e.slice(0,60)+"...":e,r=t.model,a=[t.subagent_type,r].filter(Boolean);return(0,n.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[s&&(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:s}),a.map(e=>(0,n.jsx)("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:e},e))]})}if("EnterPlanMode"===s)return(0,n.jsx)("span",{className:"text-muted-foreground",children:"Entering plan mode"});if("ExitPlanMode"===s)return(0,n.jsx)("span",{className:"text-muted-foreground",children:"Exiting plan mode"});if("TaskCreate"===s){let e=t.subject||t.content||"";return e?(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:e}):null}if("TaskUpdate"===s){let e=t.taskId||"",s=t.status||"";return e?(0,n.jsxs)("span",{className:"text-muted-foreground truncate",children:["#",e," ",s]}):null}if("TaskList"===s)return(0,n.jsx)("span",{className:"text-muted-foreground",children:"Listing tasks"});if("TaskGet"===s){let e=t.taskId||"";return e?(0,n.jsxs)("span",{className:"text-muted-foreground",children:["#",e]}):null}return null}function k({tool:e,input:t,dark:s,expandedToolIds:r}){let a=e.name;return"Edit"===a||"edit"===a?(0,n.jsx)(C,{input:t,tool:e,dark:s}):"Write"===a||"write"===a?(0,n.jsx)(S,{input:t,tool:e,dark:s}):"Read"===a||"read"===a?(0,n.jsx)(E,{input:t,tool:e,dark:s}):"Bash"===a||"bash"===a?(0,n.jsx)($,{input:t,tool:e}):"Grep"===a||"grep"===a||"Glob"===a||"glob"===a?(0,n.jsx)(A,{input:t,tool:e}):"Agent"===a?(0,n.jsx)(T,{input:t,tool:e,dark:s,expandedToolIds:r}):(0,n.jsx)(_,{input:t,tool:e})}function C({input:e,tool:t,dark:s}){let r=e.file_path||t.filePath||"file",a=e.old_string||"",l=e.new_string||"";return a||l?(0,n.jsx)(v.Mh,{filePath:r,oldString:a,newString:l,dark:s}):(0,n.jsx)(_,{input:e,tool:t})}function S({input:e,tool:t,dark:s}){let r=e.file_path||t.filePath||"",a=e.content||"",l=r?(0,u.WG)(r):void 0;return(0,n.jsxs)("div",{className:"space-y-1",children:[r&&(0,n.jsx)("div",{className:"font-mono text-muted-foreground",children:r}),a&&(0,n.jsx)(u.NG,{code:a,language:l,dark:s}),t.output&&(0,n.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto text-muted-foreground",children:t.output})]})}function E({input:e,tool:t,dark:s}){let r=e.file_path||t.filePath||"",a=r?(0,u.WG)(r):void 0;return(0,n.jsxs)("div",{className:"space-y-1",children:[r&&(0,n.jsx)("div",{className:"font-mono text-muted-foreground",children:r}),t.output&&(0,n.jsx)(u.NG,{code:t.output,language:a,dark:s})]})}function $({input:e,tool:t}){let s=e.command||"";return(0,n.jsxs)("div",{className:"space-y-1",children:[s&&(0,n.jsxs)("div",{className:"font-mono text-muted-foreground",children:[(0,n.jsx)("span",{className:"text-foreground/60",children:"$"})," ",s]}),t.output&&(0,n.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-64 overflow-y-auto",children:t.output})]})}function A({input:e,tool:t}){let s=e.pattern||"",r=e.path||"";return(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsxs)("div",{className:"font-mono text-muted-foreground",children:[s&&(0,n.jsxs)("span",{children:["/",s,"/"]}),r&&(0,n.jsxs)("span",{children:[" in ",(0,g._1)(r)]})]}),t.output&&(0,n.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-64 overflow-y-auto",children:t.output})]})}function T({input:e,tool:t,expandedToolIds:s}){let r=e.prompt||"",a=t.children||[];return(0,n.jsxs)("div",{className:"space-y-2",children:[r&&(0,n.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto text-muted-foreground",children:r}),a.length>0&&(0,n.jsx)("div",{className:"pl-3 border-l-2 border-border space-y-1",children:a.map(e=>(0,n.jsx)(y,{tool:e,expandedToolIds:s},e.id))}),t.output&&(0,n.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto text-muted-foreground",children:t.output})]})}function _({input:e,tool:t}){let s=Object.keys(e).length>0;return(0,n.jsxs)("div",{className:"space-y-1",children:[s&&(0,n.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto",children:JSON.stringify(e,null,2)}),t.output&&(0,n.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto text-muted-foreground",children:t.output})]})}let R=/<(?:task-notification|local-command-caveat|local-command-stdout|command-name|system-reminder)[^>]*>[\s\S]*?<\/(?:task-notification|local-command-caveat|local-command-stdout|command-name|system-reminder)>[\s\S]*/g;function z(e){return e.replace(R,"").trim()}let I=(0,d.memo)(function({message:e,collapsedByDefault:t=!1,expandedToolIds:s,selectionMode:o=!1,selected:c=!1,onEnterSelection:u,onToggleSelect:h}){let[p,g]=(0,d.useState)(t),[j,v]=(0,d.useState)(null),b="user"===e.role,w="system"===e.role,N=!w,k=new Set(["AskUserQuestion","TodoWrite"]),C=e.blocks?.filter(e=>!("tool_use"===e.type&&k.has(e.toolUse.name)))||[],S=C.length>0,E=(0,d.useRef)(!1),$=(0,d.useRef)(null),A=(0,d.useCallback)(t=>{E.current||o&&(t.preventDefault(),N&&h?.(e.id))},[N,o,e.id,h]),T=(0,d.useCallback)(()=>{E.current=!0},[]),_=(0,d.useCallback)(()=>{E.current=!1},[]),R=(0,d.useCallback)(t=>{if(o){N&&h?.(e.id);return}if(!N)return;let s=Date.now(),n=$.current;if(n&&s-n.time<300){let s=t.clientX-n.x,r=t.clientY-n.y;if(s*s+r*r<400){$.current=null,window.getSelection()?.removeAllRanges(),u?.(e.id);return}}$.current={time:s,x:t.clientX,y:t.clientY}},[o,N,e.id,h,u]);if(w){let t="__compacting__"===e.content,s="__compacted__"===e.content;return t||s?(0,n.jsxs)("div",{className:"flex w-full items-center gap-3 py-2",children:[(0,n.jsx)("div",{className:"flex-1 border-t border-border"}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground uppercase tracking-wider",children:[t&&(0,n.jsx)(r.A,{className:"h-3 w-3 animate-spin"}),t?"Compacting...":"Compacted"]}),(0,n.jsx)("div",{className:"flex-1 border-t border-border"})]}):"__context_reset__"===e.content?(0,n.jsxs)("div",{className:"flex w-full items-center gap-3 py-2",children:[(0,n.jsx)("div",{className:"flex-1 border-t border-border"}),(0,n.jsx)("div",{className:"text-[10px] text-muted-foreground uppercase tracking-wider",children:"Context cleared"}),(0,n.jsx)("div",{className:"flex-1 border-t border-border"})]}):(0,n.jsx)("div",{className:"flex w-full justify-center",children:(0,n.jsx)("div",{className:"text-xs text-muted-foreground whitespace-pre-wrap py-1",children:e.content})})}return!b&&!w&&!S&&!e.content&&e.toolUses.every(e=>k.has(e.name))||b&&e.content.startsWith("[Request interrupted")?null:p?(e.content.slice(0,80).replace(/\n/g," "),(0,n.jsx)("div",{className:"flex w-full justify-start",children:(0,n.jsx)("button",{onClick:()=>g(!1),className:"max-w-[85%] rounded-lg px-4 py-2 bg-muted text-foreground text-left overflow-hidden",children:(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,n.jsx)(a.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{className:"font-medium",children:"Compaction summary"})]})})})):(0,n.jsxs)("div",{className:(0,f.cn)("flex w-full",b&&!t?"justify-end":"justify-start",o&&"cursor-pointer select-none"),onContextMenu:A,onTouchStart:T,onMouseDown:_,onClick:R,children:[(0,n.jsxs)("div",{className:(0,f.cn)("max-w-[85%] rounded-lg px-4 py-2 overflow-hidden transition-colors",b&&!t?"bg-primary text-primary-foreground":"bg-muted text-foreground",c&&"ring-2 ring-blue-500"),children:[t&&(0,n.jsxs)("button",{onClick:()=>g(!0),className:"flex items-center gap-1 text-xs text-muted-foreground mb-2 hover:text-foreground",children:[(0,n.jsx)(l.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{className:"font-medium",children:"Compaction summary"})]}),b?(0,n.jsxs)(n.Fragment,{children:[e.images&&e.images.length>0&&(0,n.jsx)("div",{className:"flex gap-2 flex-wrap mb-2",children:e.images.map((e,t)=>(0,n.jsx)("img",{src:`data:${e.mediaType};base64,${e.data}`,className:"max-h-60 rounded border border-primary-foreground/20 object-contain cursor-pointer",alt:"",onClick:t=>{t.stopPropagation(),v(`data:${e.mediaType};base64,${e.data}`)}},t))}),e.documents&&e.documents.length>0&&(0,n.jsx)("div",{className:"flex gap-2 flex-wrap mb-2",children:e.documents.map((e,t)=>(0,n.jsxs)("div",{className:"flex items-center gap-1.5 rounded border border-primary-foreground/20 px-2 py-1 text-xs",children:[(0,n.jsx)(i.A,{className:"h-3.5 w-3.5"}),(0,n.jsx)("span",{children:e.name})]},t))}),e.textFiles&&e.textFiles.length>0&&(0,n.jsx)("div",{className:"space-y-1.5 mb-2",children:e.textFiles.map((e,t)=>(0,n.jsx)(P,{name:e.name,content:e.content},t))}),e.content&&(0,n.jsx)("p",{className:"whitespace-pre-wrap break-words text-base leading-relaxed",children:e.content})]}):S?(0,n.jsx)("div",{className:"space-y-2",children:C.map((e,t)=>"tool_use"===e.type?(0,n.jsx)(y,{tool:e.toolUse,expandedToolIds:s},e.toolUse.id):"thinking"===e.type?(0,n.jsx)(L,{text:e.text,tokens:e.tokens,durationMs:e.durationMs,redacted:e.redacted},`thinking-${t}`):(0,n.jsx)(m.Y,{content:z(e.text)},`text-${t}`))}):(0,n.jsxs)(n.Fragment,{children:[e.toolUses.filter(e=>!k.has(e.name)).length>0&&(0,n.jsx)("div",{className:"mb-2 space-y-1",children:e.toolUses.filter(e=>!k.has(e.name)).map(e=>(0,n.jsx)(y,{tool:e,expandedToolIds:s},e.id))}),(0,n.jsx)(m.Y,{content:z(e.content)})]})]}),(0,n.jsx)(x.lG,{open:null!==j,onOpenChange:()=>v(null),className:"max-w-3xl",children:(0,n.jsx)(x.Cf,{className:"max-h-[80vh] overflow-auto",onClose:()=>v(null),children:j&&(0,n.jsx)("img",{src:j,className:"w-full rounded object-contain",alt:""})})})]})});function P({name:e,content:t}){let[s,r]=(0,d.useState)(!1),a=t.split(/\r?\n/).length;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),r(!0)},className:"flex w-full items-center gap-1.5 rounded border border-blue-500/20 bg-blue-500/5 px-3 py-1.5 text-xs text-blue-400 hover:text-blue-300",children:[(0,n.jsx)(o.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{className:"font-medium",children:e}),(0,n.jsxs)("span",{className:"text-muted-foreground ml-1",children:[a," lines"]})]}),(0,n.jsx)(x.lG,{open:s,onOpenChange:r,className:"max-w-3xl",children:(0,n.jsxs)(x.Cf,{className:"max-h-[80vh] flex flex-col",onClose:()=>r(!1),children:[(0,n.jsxs)("div",{className:"text-sm font-medium px-1 pb-2 border-b border-border flex items-center gap-1.5",children:[(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 text-blue-400"}),e]}),(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-auto",children:(0,n.jsx)(u.NG,{code:t,language:(0,u.WG)(e),dark:!0,fullHeight:!0})})]})})]})}function L({text:e,tokens:t,durationMs:s}){let{settings:r}=(0,h.t)(),[i,o]=(0,d.useState)(null),u=i??r.thinkingExpanded,m=e.length>0,x=null!=s?`${Math.max(1,Math.round(s/1e3))}s`:null!=t?`${t.toLocaleString()} token${1===t?"":"s"}`:m?`${e.length.toLocaleString()} chars`:null;return(0,n.jsxs)("div",{className:"rounded border border-purple-500/20 bg-purple-500/5",children:[(0,n.jsxs)("button",{onClick:()=>m&&o(!u),disabled:!m,className:"flex w-full items-center gap-1.5 px-3 py-1.5 text-xs text-purple-400 hover:text-purple-300 disabled:cursor-default disabled:hover:text-purple-400",children:[(0,n.jsx)(c.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{className:"font-medium",children:"Thinking"}),x&&(0,n.jsx)("span",{className:"text-muted-foreground ml-1",children:x}),m&&(u?(0,n.jsx)(l.A,{className:"h-3 w-3 ml-auto"}):(0,n.jsx)(a.A,{className:"h-3 w-3 ml-auto"}))]}),m&&u&&(0,n.jsx)("div",{className:"border-t border-purple-500/20 px-3 py-2 text-xs text-muted-foreground whitespace-pre-wrap max-h-60 overflow-y-auto",children:e})]})}},18189:(e,t,s)=>{s.d(t,{NG:()=>x,WG:()=>i,Ik:()=>m});var n=s(95155),r=s(12115),a=s(53972);let l={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",py:"python",rb:"ruby",rs:"rust",go:"go",java:"java",kt:"kotlin",swift:"swift",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",css:"css",scss:"scss",html:"html",vue:"vue",svelte:"svelte",json:"json",yaml:"yaml",yml:"yaml",toml:"toml",xml:"xml",sql:"sql",sh:"bash",bash:"bash",zsh:"bash",fish:"fish",ps1:"powershell",md:"markdown",mdx:"mdx",graphql:"graphql",gql:"graphql",dockerfile:"dockerfile",tf:"hcl",lua:"lua",r:"r",php:"php",scala:"scala",ex:"elixir",exs:"elixir",erl:"erlang",hs:"haskell",ml:"ocaml",zig:"zig"};function i(e){let t=(0,a.uk)(e)||"",s=t.toLowerCase();if("dockerfile"===s)return"dockerfile";if("makefile"===s)return"makefile";let n=t.includes(".")?t.split(".").pop()?.toLowerCase():void 0;if(n)return l[n]}function o(e){let t=e.split(/\r?\n/),s=/^\s*(\d+)\u2192(.*)$/,n=t[0]?.match(s);if(!n)return{code:e,startLine:1};let r=parseInt(n[1],10);return{code:t.map(e=>{let t=e.match(s);return t?t[2]:e}).join("\n"),startLine:r}}async function c(e,t,n){try{let r=await s.e(69427).then(s.bind(s,69427));return await r.codeToHtml(e,{lang:t,theme:n})}catch{return null}}let d=new Map;function u(e,t,s){return`${s}:${t}:${e}`}function m(e,t,s){let{code:n}=o(e),r=s?"github-dark":"github-light",a=u(n,t,r);d.has(a)||c(n,t,r).then(e=>{e&&d.set(a,e)})}function x({code:e,language:t,dark:s,fullHeight:a,wrap:l}){let{code:i,startLine:m}=o(e),h=s?"github-dark":"github-light",f=t?u(i,t,h):"",[p,g]=(0,r.useState)(t?d.get(f)??null:null);(0,r.useEffect)(()=>{if(!t)return void g(null);let e=d.get(f);if(e)return void g(e);let s=!1;return c(i,t,h).then(e=>{e&&d.set(f,e),s||g(e)}),()=>{s=!0}},[i,t,h,f]);let j=`
|
|
2
|
-
.code-block-lines code {
|
|
3
|
-
counter-reset: line ${m-1};
|
|
4
|
-
}
|
|
5
|
-
.code-block-lines code .line::before {
|
|
6
|
-
counter-increment: line;
|
|
7
|
-
content: counter(line);
|
|
8
|
-
display: inline-block;
|
|
9
|
-
width: 3ch;
|
|
10
|
-
margin-right: 1.5ch;
|
|
11
|
-
text-align: right;
|
|
12
|
-
color: var(--line-number-color, rgba(115,138,148,0.4));
|
|
13
|
-
user-select: none;
|
|
14
|
-
}${l?`
|
|
15
|
-
.code-block-lines.code-block-wrap code .line {
|
|
16
|
-
display: block;
|
|
17
|
-
padding-left: 4.5ch;
|
|
18
|
-
text-indent: -4.5ch;
|
|
19
|
-
}`:""}
|
|
20
|
-
`,v=l?"overflow-x-hidden":"overflow-x-auto",b=l?" code-block-wrap [&_pre]:whitespace-pre-wrap [&_pre]:[overflow-wrap:anywhere]":"",w=l?" whitespace-pre-wrap [overflow-wrap:anywhere]":"",y=l&&p?p.replace(/\n/g,""):p;return p?(0,n.jsxs)("div",{className:`code-block-lines ${v} rounded text-[11px] leading-relaxed overflow-y-auto [&_pre]:!bg-transparent [&_pre]:p-2 [&_pre]:m-0${b}${a?"":" max-h-64"}`,children:[(0,n.jsx)("style",{children:j}),(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:y??""}})]}):(0,n.jsx)("pre",{className:`${v} rounded bg-muted/50 p-2 text-[11px] leading-relaxed overflow-y-auto${w}${a?"":" max-h-64"}`,children:i})}},20108:(e,t,s)=>{s.d(t,{t:()=>m});var n=s(95155),r=s(15480),a=s(95660),l=s(92571),i=s(12115),o=s(89239),c=s(42763),d=s(60529),u=s(41158);function m({open:e,onOpenChange:t,onSubmit:s}){let[x,h]=(0,i.useState)("session"),[f,p]=(0,i.useState)(""),[g,j]=(0,i.useState)(""),[v,b]=(0,i.useState)(!1),[w,y]=(0,i.useState)(""),[N,k]=(0,i.useState)(""),[C,S]=(0,i.useState)(""),[E,$]=(0,i.useState)(!1),[A,T]=(0,i.useState)(!1),[_,R]=(0,i.useState)(""),z=()=>{p(""),j(""),b(!1),y(""),k(""),S(""),$(!1),T(!1),R("")},I=async e=>{if(e.preventDefault(),w.trim()&&N.trim()){T(!0),R("");try{let e=await fetch("/api/git/clone",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:w.trim(),parentPath:N.trim(),folderName:C.trim()||void 0})}),n=await e.json();if(!e.ok)return void R(n.error||"Clone failed");s(n.path,g.trim()),z(),t(!1)}catch{R("Failed to connect")}finally{T(!1)}}};return(0,n.jsx)(c.lG,{open:e,onOpenChange:e=>{e||z(),t(e)},children:(0,n.jsxs)(c.Cf,{onClose:()=>{z(),t(!1)},children:[(0,n.jsx)(c.c7,{children:(0,n.jsx)(c.L3,{children:"New Session"})}),(0,n.jsxs)("div",{className:"flex gap-1 border-b mt-2",children:[(0,n.jsx)("button",{type:"button",onClick:()=>h("session"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors ${"session"===x?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"Open Directory"}),(0,n.jsxs)("button",{type:"button",onClick:()=>h("clone"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors flex items-center gap-1.5 ${"clone"===x?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,n.jsx)(r.A,{className:"h-3.5 w-3.5"}),"Clone Repo"]})]}),"session"===x&&(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault(),f.trim()&&(s(f.trim(),g.trim()),z(),t(!1))},className:"space-y-4 mt-2",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Working Directory"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(d.p,{value:f,onChange:e=>p(e.target.value),placeholder:"/home/user/project",required:!0}),(0,n.jsx)(o.$,{type:"button",variant:"outline",size:"icon",onClick:()=>b(!v),title:"Browse directories",children:(0,n.jsx)(a.A,{className:"h-4 w-4"})})]})]}),v&&(0,n.jsx)(u.K,{onSelect:e=>{p(e),b(!1)},onCancel:()=>b(!1)}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Name (optional)"}),(0,n.jsx)(d.p,{value:g,onChange:e=>j(e.target.value),placeholder:"My Project"})]}),(0,n.jsx)(o.$,{type:"submit",className:"w-full",disabled:!f.trim(),children:"Create Session"})]}),"clone"===x&&(0,n.jsxs)("form",{onSubmit:I,className:"space-y-4 mt-2",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Repository URL"}),(0,n.jsx)(d.p,{value:w,onChange:e=>y(e.target.value),placeholder:"https://github.com/user/repo.git",required:!0})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Clone Into"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(d.p,{value:N,onChange:e=>k(e.target.value),placeholder:"/home/user/projects",required:!0}),(0,n.jsx)(o.$,{type:"button",variant:"outline",size:"icon",onClick:()=>$(!E),title:"Browse directories",children:(0,n.jsx)(a.A,{className:"h-4 w-4"})})]})]}),E&&(0,n.jsx)(u.K,{onSelect:e=>{k(e),$(!1)},onCancel:()=>$(!1)}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Folder Name (optional)"}),(0,n.jsx)(d.p,{value:C,onChange:e=>S(e.target.value),placeholder:"Defaults to repository name"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Session Name (optional)"}),(0,n.jsx)(d.p,{value:g,onChange:e=>j(e.target.value),placeholder:"My Project"})]}),_&&(0,n.jsx)("p",{className:"text-sm text-destructive",children:_}),(0,n.jsx)(o.$,{type:"submit",className:"w-full",disabled:!w.trim()||!N.trim()||A,children:A?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.A,{className:"h-4 w-4 animate-spin mr-2"}),"Cloning..."]}):"Clone & Create Session"})]})]})})}},22317:(e,t,s)=>{s.d(t,{t:()=>a});var n=s(12115);let r={diffStyle:"split",dismissKeyboardOnSend:!0,thinkingLevel:"high",bypassAllPermissions:!1,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,model:"sonnet"};function a(){let[e,t]=(0,n.useState)(r),[s,a]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{fetch("/api/defaults").then(e=>e.json()).then(e=>{t({...r,...e}),a(!0)}).catch(()=>a(!0))},[]),{settings:e,updateSetting:(0,n.useCallback)((e,s)=>{t(t=>{let n={...t,[e]:s};return fetch("/api/defaults",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({[e]:s})}).catch(()=>{}),n})},[]),loaded:s}}},30120:(e,t,s)=>{s.d(t,{GV:()=>er,si:()=>Q,E2:()=>Z,mq:()=>ee,tB:()=>et});var n=s(95155),r=s(95660),a=s(96304),l=s(5772),i=s(73321),o=s(12115);let c=!1;function d({children:e}){let t=(0,i.useRouter)(),[s,r]=(0,o.useState)(c);return((0,o.useEffect)(()=>{c||fetch("/api/auth/check").then(e=>{e.ok?(c=!0,r(!0)):t.replace("/login")}).catch(()=>{t.replace("/login")})},[t]),s)?(0,n.jsx)(n.Fragment,{children:e}):null}var u=s(44354),m=s(83212),x=s(19257),h=s(797),f=s(15480),p=s(9005),g=s(92571),j=s(2125),v=s(36565),b=s(1275),w=s(89239);function y({cwd:e}){let t=(0,i.useRouter)(),s=(0,i.usePathname)(),[r,a]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(!r)return;let e=e=>{"Escape"===e.key&&a(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[r]);let[l,c]=(0,o.useState)(null),[d,N]=(0,o.useState)(!1),[k,C]=(0,o.useState)(null),S=(0,o.useCallback)(()=>{e&&(N(!0),C(null),c(null),fetch(`/api/git/status?cwd=${encodeURIComponent(e)}`).then(e=>{if(!e.ok)throw Error("Failed to fetch");return e.json()}).then(e=>c(e)).catch(()=>C("Not a git repository")).finally(()=>N(!1)))},[e]);(0,o.useEffect)(()=>{c(null),C(null)},[]),(0,o.useEffect)(()=>{r&&S()},[r,S]);let E=l?.files.reduce((e,t)=>e+t.additions,0)??0,$=l?.files.reduce((e,t)=>e+t.deletions,0)??0;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>{c(null),C(null),a(!0)},title:"Git status",disabled:!e,children:(0,n.jsx)(f.A,{className:"h-4 w-4"})}),r&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:e=>{e.target===e.currentTarget&&a(!1)},children:(0,n.jsxs)("div",{className:"w-full max-w-lg mx-4 rounded-lg border bg-background p-5 shadow-lg max-h-[80vh] flex flex-col",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(f.A,{className:"h-4 w-4"}),(0,n.jsx)("h2",{className:"text-base font-semibold",children:"Git Status"})]}),(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>a(!1),children:(0,n.jsx)(p.A,{className:"h-4 w-4"})})]}),d&&(0,n.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,n.jsx)(g.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),!d&&k&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:k}),!d&&l&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-3 px-1",children:[(0,n.jsx)("span",{className:"text-sm text-muted-foreground",children:"Branch:"}),(0,n.jsx)("span",{className:"font-mono text-sm font-bold",children:l.branch})]}),0===l.files.length?(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"Working tree clean"}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex items-center gap-3 mb-2 px-1 text-xs text-muted-foreground",children:[(0,n.jsxs)("span",{children:[l.files.length," file",1!==l.files.length?"s":""," changed"]}),E>0&&(0,n.jsxs)("span",{className:"flex items-center gap-0.5 text-green-500",children:[(0,n.jsx)(j.A,{className:"h-3 w-3"}),E]}),$>0&&(0,n.jsxs)("span",{className:"flex items-center gap-0.5 text-red-500",children:[(0,n.jsx)(v.A,{className:"h-3 w-3"}),$]})]}),(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto border rounded",children:l.files.map(e=>(0,n.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 text-sm border-b last:border-b-0 hover:bg-muted/50",children:[function(e){switch(e){case"added":case"untracked":return(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 text-green-500"});case"deleted":return(0,n.jsx)(m.A,{className:"h-3.5 w-3.5 text-red-500"});case"renamed":return(0,n.jsx)(x.A,{className:"h-3.5 w-3.5 text-blue-500"});default:return(0,n.jsx)(h.A,{className:"h-3.5 w-3.5 text-yellow-500"})}}(e.status),(0,n.jsx)("span",{className:"font-mono text-xs truncate flex-1 min-w-0",children:e.path}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0 text-xs",children:[e.additions>0&&(0,n.jsxs)("span",{className:"text-green-500",children:["+",e.additions]}),e.deletions>0&&(0,n.jsxs)("span",{className:"text-red-500",children:["-",e.deletions]})]})]},e.path))}),(0,n.jsxs)(w.$,{variant:"outline",size:"sm",className:"mt-3 gap-1.5",onClick:()=>{a(!1);let n=s.match(/^\/sessions\/([^/?]+)/),r=n?`&sessionId=${encodeURIComponent(n[1])}`:"";t.push(`/changes?cwd=${encodeURIComponent(e)}${r}`)},children:[(0,n.jsx)(b.A,{className:"h-3.5 w-3.5"}),"View changes"]})]})]})]})})]})}var N=s(64577),k=s(99314),C=s(65377),S=s(45160),E=s(81477),$=s(513);function A({timestamp:e,onClose:t}){let{sessionId:s,cwd:r}=Z(),[a,l]=(0,o.useState)([]),[i,c]=(0,o.useState)(""),[d,u]=(0,o.useState)(!0),[m,x]=(0,o.useState)(null),h=(0,o.useRef)(null),f=(0,o.useRef)(new Set);(0,o.useEffect)(()=>{let t=new URLSearchParams({timestamp:String(e)});r&&t.set("cwd",r),fetch(`/api/sessions/${s}/context?${t}`).then(e=>{if(!e.ok)throw Error("Failed to load context");return e.json()}).then(e=>{l(e.messages),c(e.targetMessageId),u(!1)}).catch(e=>{x(e.message),u(!1)})},[s,r,e]),(0,o.useEffect)(()=>{!d&&h.current&&h.current.scrollIntoView({block:"center"})},[d]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t())};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[t]);let j=(0,o.useCallback)(e=>{e.target===e.currentTarget&&t()},[t]);return(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:j,children:(0,n.jsxs)(E.Zp,{className:"w-full max-w-3xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b shrink-0",children:[(0,n.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:"Message context"}),(0,n.jsx)(w.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:t,children:(0,n.jsx)(p.A,{className:"h-4 w-4"})})]}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[d&&(0,n.jsx)("div",{className:"flex justify-center py-12",children:(0,n.jsx)(g.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),m&&(0,n.jsx)("div",{className:"text-center text-sm text-red-500 py-12",children:m}),!d&&a.map(e=>(0,n.jsx)("div",{ref:e.id===i?h:void 0,className:e.id===i?"ring-2 ring-primary/50 rounded-lg":void 0,children:(0,n.jsx)($.s,{message:e,expandedToolIds:f})},e.id))]})]})})}function T({preview:e,matchStart:t,matchLength:s}){let r=e.slice(0,t),a=e.slice(t,t+s),l=e.slice(t+s);return(0,n.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-pre-wrap break-words select-text",children:[r,(0,n.jsx)("mark",{className:"bg-yellow-300/30 text-foreground rounded-sm px-0.5",children:a}),l]})}function _({text:e}){let[t,s]=(0,o.useState)(!1),r=(0,o.useCallback)(t=>{t.stopPropagation(),navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),1500)},[e]);return(0,n.jsx)(w.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:r,title:"Copy full message",children:t?(0,n.jsx)(N.A,{className:"h-3 w-3"}):(0,n.jsx)(k.A,{className:"h-3 w-3"})})}function R({onClose:e}){let{sessionId:t,cwd:s}=Z(),[r,a]=(0,o.useState)(""),[l,i]=(0,o.useState)([]),[c,d]=(0,o.useState)(!1),[u,m]=(0,o.useState)(!1),[x,h]=(0,o.useState)(null),f=(0,o.useRef)(null),j=(0,o.useRef)(null);(0,o.useEffect)(()=>{f.current?.focus()},[]),(0,o.useEffect)(()=>{if(r.length<2){i([]),m(!1);return}let e=setTimeout(()=>{j.current?.abort();let e=new AbortController;j.current=e,d(!0);let n=new URLSearchParams({q:r});s&&n.set("cwd",s),fetch(`/api/sessions/${t}/search?${n}`,{signal:e.signal}).then(e=>e.json()).then(t=>{e.signal.aborted||(i(t.results||[]),m(!0),d(!1))}).catch(e=>{"AbortError"!==e.name&&(d(!1),m(!0))})},300);return()=>{clearTimeout(e)}},[r,t,s]),(0,o.useEffect)(()=>()=>{j.current?.abort()},[]);let v=(0,o.useCallback)(e=>{h(e)},[]),b=(0,o.useCallback)(t=>{t.target===t.currentTarget&&e()},[e]);return((0,o.useEffect)(()=>{let t=t=>{"Escape"===t.key&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[e]),null!==x)?(0,n.jsx)(A,{timestamp:x,onClose:()=>h(null)}):(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:b,children:(0,n.jsxs)(E.Zp,{className:"w-full max-w-2xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 p-4 border-b",children:[(0,n.jsx)(C.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,n.jsx)("input",{ref:f,value:r,onChange:e=>a(e.target.value),placeholder:"Search messages...",className:"flex-1 bg-transparent outline-none text-sm"}),c&&(0,n.jsx)(g.A,{className:"h-4 w-4 animate-spin text-muted-foreground shrink-0"}),(0,n.jsx)(w.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:e,children:(0,n.jsx)(p.A,{className:"h-4 w-4"})})]}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[u&&0===l.length&&(0,n.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:"No results"}),l.map((e,t)=>(0,n.jsxs)("button",{onClick:()=>v(e.timestamp),className:"w-full text-left p-4 border-b last:border-b-0 hover:bg-muted/50 transition-colors cursor-pointer",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,n.jsx)(S.E,{variant:"user"===e.role?"default":"secondary",className:"text-[10px] px-1.5 py-0",children:"user"===e.role?"User":"Assistant"}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground select-text",children:new Date(e.timestamp).toLocaleString()}),(0,n.jsx)("div",{className:"ml-auto",children:(0,n.jsx)(_,{text:e.fullContent})})]}),(0,n.jsx)(T,{preview:e.preview,matchStart:e.matchStart,matchLength:e.matchLength})]},`${e.messageId}-${t}`))]})]})})}function z(){let{sessionId:e}=Z(),[t,s]=(0,o.useState)(!1);return((0,o.useEffect)(()=>{let t=t=>{(t.metaKey||t.ctrlKey)&&"f"===t.key&&e&&(t.preventDefault(),s(!0))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e]),e)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>s(!0),title:"Search messages (Ctrl+F)",children:(0,n.jsx)(C.A,{className:"h-4 w-4"})}),t&&(0,n.jsx)(R,{onClose:()=>s(!1)})]}):null}var I=s(93034),P=s(36338),L=s(64962);function F({tasks:e}){let[t,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&s(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let r=e.filter(e=>"running"===e.status);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(w.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>s(!0),title:`${r.length} background task${1!==r.length?"s":""}`,children:[(0,n.jsx)(P.A,{className:"h-4 w-4"}),r.length>0&&(0,n.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground",children:r.length})]}),t&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:e=>{e.target===e.currentTarget&&s(!1)},children:(0,n.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsx)("h2",{className:"text-base font-semibold",children:"Background Tasks"}),(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>s(!1),children:(0,n.jsx)(p.A,{className:"h-4 w-4"})})]}),0===e.length?(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No background tasks"}):(0,n.jsx)("div",{className:"space-y-2 max-h-64 overflow-y-auto",children:e.map(e=>(0,n.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border px-3 py-2.5",children:["completed"===e.status?(0,n.jsx)(L.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):(0,n.jsx)(g.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-muted-foreground"}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"text-sm truncate",children:e.title||e.description}),e.activity&&e.activity!==(e.title||e.description)&&(0,n.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:e.activity}),"completed"===e.status&&e.summary&&(0,n.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:e.summary})]})]},e.taskId))})]})})]})}var M=s(8143),D=s(67401);function O({todos:e}){let[t,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&s(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let r=(0,o.useMemo)(()=>e.filter(e=>"completed"!==e.status).length,[e]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(w.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>s(!0),title:`${r} todo${1!==r?"s":""}`,children:[(0,n.jsx)(M.A,{className:"h-4 w-4"}),r>0&&(0,n.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground",children:r})]}),t&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:e=>{e.target===e.currentTarget&&s(!1)},children:(0,n.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsx)("h2",{className:"text-base font-semibold",children:"Todo"}),(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>s(!1),children:(0,n.jsx)(p.A,{className:"h-4 w-4"})})]}),0===e.length?(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No todo items"}):(0,n.jsx)("div",{className:"space-y-1 max-h-80 overflow-y-auto",children:e.map((e,t)=>(0,n.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md px-3 py-2",children:[(0,n.jsx)(W,{status:e.status}),(0,n.jsx)("div",{className:`min-w-0 flex-1 text-sm ${"completed"===e.status?"text-muted-foreground line-through":""}`,children:"in_progress"===e.status&&e.activeForm?e.activeForm:e.content})]},t))})]})})]})}function W({status:e}){return"completed"===e?(0,n.jsx)(L.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):"in_progress"===e?(0,n.jsx)(g.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-blue-500"}):(0,n.jsx)(D.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-muted-foreground"})}var U=s(94774),G=s(82749);let B=null,J=0,H=null;async function q(e=!1){let t=Date.now();return!e&&B&&t-J<3e4?B:H||(H=(async()=>{try{let e=await fetch("/api/usage");if(!e.ok)return null;let t=await e.json();return B=t,J=Date.now(),t}catch{return null}finally{H=null}})())}function K({label:e,limit:t}){let s=Math.round(t.utilization),r=s>80?"#ef4444":s>50?"#f97316":"#22c55e";return(0,n.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,n.jsxs)("div",{className:"flex justify-between text-sm mb-1",children:[(0,n.jsx)("span",{children:e}),(0,n.jsxs)("span",{className:"text-muted-foreground",children:[s,"% \xb7 resets in ",function(e){let t=new Date(e).getTime()-Date.now();if(t<=0)return"now";let s=Math.floor(t/6e4),n=Math.floor(s/60),r=Math.floor(n/24);return r>0?`${r}d ${n%24}h`:n>0?`${n}h ${s%60}m`:`${s}m`}(t.resets_at)]})]}),(0,n.jsx)("div",{className:"h-2.5 rounded-full bg-muted overflow-hidden",children:(0,n.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${Math.min(s,100)}%`,backgroundColor:r}})})]})}function V(){let[e,t]=(0,o.useState)(!1),{usage:s,loading:r,error:a,refresh:l}=function(){let[e,t]=(0,o.useState)(B),[s,n]=(0,o.useState)(null===B),[r,a]=(0,o.useState)(null),l=(0,o.useRef)(!0),i=(0,o.useCallback)(async(e=!1)=>{e&&n(!0);let s=await q(e);l.current&&(s?(t(s),a(null)):B||a("Failed to load usage data"),n(!1))},[]);return(0,o.useEffect)(()=>{l.current=!0,i();let e=setInterval(i,3e5);return()=>{l.current=!1,clearInterval(e)}},[i]),{usage:e,loading:s,error:r,refresh:i}}();(0,o.useEffect)(()=>{if(!e)return;let s=e=>{"Escape"===e.key&&t(!1)};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e]);let i=s?.seven_day&&s.seven_day.utilization>=100?100:s?.five_hour?.utilization??0;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>t(!0),title:"Account usage",children:(0,n.jsx)(U.A,{className:`h-4 w-4 ${s?i>80?"text-red-500":i>50?"text-orange-500":"text-green-500":""}`})}),e&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},children:(0,n.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsx)("h2",{className:"text-base font-semibold",children:"Account Usage"}),(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>l(!0),disabled:r,title:"Refresh usage",children:(0,n.jsx)(G.A,{className:`h-4 w-4 ${r?"animate-spin":""}`})}),(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>t(!1),children:(0,n.jsx)(p.A,{className:"h-4 w-4"})})]})]}),r&&!s&&(0,n.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,n.jsx)(g.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),a&&!s&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:a}),s&&(0,n.jsxs)(n.Fragment,{children:[s.five_hour&&(0,n.jsx)(K,{label:"5-hour limit",limit:s.five_hour}),s.seven_day&&(0,n.jsx)(K,{label:"7-day limit",limit:s.seven_day}),s.seven_day_sonnet&&(0,n.jsx)(K,{label:"7-day Sonnet",limit:s.seven_day_sonnet}),s.seven_day_opus&&(0,n.jsx)(K,{label:"7-day Opus",limit:s.seven_day_opus}),s.extra_usage?.enabled&&(0,n.jsx)("div",{className:"mt-4 pt-3 border-t text-sm",children:(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:"Extra usage credits"}),(0,n.jsxs)("span",{className:"font-medium",children:["$",s.extra_usage.remaining_credits.toFixed(2)," remaining"]})]})})]})]})})]})}var X=s(89323);let Y=(0,o.createContext)({setHeader:()=>{},cwd:void 0,setCwd:()=>{},sessionId:void 0,setSessionId:()=>{},backgroundTasks:[],setBackgroundTasks:()=>{},todos:[],setTodos:()=>{},initData:null,setInitData:()=>{},sidebarContent:null,setSidebarContent:()=>{},closeSidebar:()=>{}});function Z(){return(0,o.useContext)(Y)}function Q(e){let{setHeader:t}=Z();(0,o.useEffect)(()=>{t({title:e})},[e,t])}function ee(e){let{setCwd:t}=Z();(0,o.useEffect)(()=>(t(e),()=>t(void 0)),[e,t])}function et(e){let{setSessionId:t}=Z();(0,o.useEffect)(()=>(t(e),()=>t(void 0)),[e,t])}function es({cwd:e}){let t=(0,i.useRouter)();return(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:()=>t.push(`/files?cwd=${encodeURIComponent(e)}`),title:"Browse files",children:(0,n.jsx)(r.A,{className:"h-4 w-4"})})}function en({title:e,onRename:t}){let[s,r]=(0,o.useState)(!1),[a,l]=(0,o.useState)(e),i=(0,o.useRef)(null);if((0,o.useEffect)(()=>{l(e)},[e]),(0,o.useEffect)(()=>{s&&i.current?.select()},[s]),!t)return(0,n.jsx)("span",{className:"text-sm font-bold truncate",children:e});if(!s)return(0,n.jsx)("button",{onClick:()=>r(!0),className:"text-sm font-bold truncate hover:text-muted-foreground transition-colors text-left",title:"Click to rename",children:e});let c=()=>{let s=a.trim();s&&s!==e&&t(s),r(!1)};return(0,n.jsx)("input",{ref:i,value:a,onChange:e=>l(e.target.value),onBlur:c,onKeyDown:t=>{"Enter"===t.key&&c(),"Escape"===t.key&&(l(e),r(!1))},className:"text-sm font-bold bg-transparent border-b border-primary outline-none w-40"})}function er({children:e}){let t=(0,o.useRef)(null),[s,r]=(0,o.useState)({title:"Cockpit"}),[i,c]=(0,o.useState)(void 0),[u,m]=(0,o.useState)(void 0),[x,h]=(0,o.useState)([]),[f,p]=(0,o.useState)([]),[g,j]=(0,o.useState)(null),[v,b]=(0,o.useState)(null),N=(0,o.useCallback)(e=>{b(e)},[]),k=(0,o.useCallback)(e=>{r(e)},[]),C=(0,o.useCallback)(e=>{c(e)},[]),S=(0,o.useCallback)(e=>{m(e)},[]),E=(0,o.useCallback)(()=>{t.current?.toggle()},[]),$=(0,o.useCallback)(()=>{t.current?.close()},[]);return(0,o.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"b"===e.key&&(e.preventDefault(),E())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[E]),(0,n.jsx)(d,{children:(0,n.jsx)(X.f,{children:(0,n.jsx)(Y.Provider,{value:{setHeader:k,cwd:i,setCwd:C,sessionId:u,setSessionId:S,backgroundTasks:x,setBackgroundTasks:h,todos:f,setTodos:p,initData:g,setInitData:j,sidebarContent:v,setSidebarContent:N,closeSidebar:$},children:(0,n.jsxs)("div",{className:"fixed inset-0 flex",children:[(0,n.jsx)(I.Bx,{ref:t}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:[(0,n.jsxs)("header",{className:"shrink-0 flex items-center gap-2 border-b px-4 py-2 bg-background",children:[(0,n.jsx)(w.$,{variant:"ghost",size:"icon",onClick:E,title:"Toggle sidebar (Ctrl+B)",className:"md:hidden",children:(0,n.jsx)(a.A,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{className:"hidden md:flex items-center gap-2 min-w-0 flex-1 overflow-hidden",children:[(0,n.jsx)(l.default,{src:"/icon-192.png",alt:"",width:22,height:22,className:"shrink-0 dark:invert"}),(0,n.jsx)(en,{title:s.title,onRename:s.onRename})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-auto",children:[(0,n.jsx)(z,{}),i&&(0,n.jsx)(O,{todos:f}),i&&(0,n.jsx)(F,{tasks:x}),i&&(0,n.jsx)(V,{}),i&&(0,n.jsx)(y,{cwd:i}),i&&(0,n.jsx)(es,{cwd:i})]})]}),(0,n.jsx)("main",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:e})]})]})})})})}},40980:(e,t,s)=>{s.d(t,{cn:()=>a});var n=s(29722),r=s(622);function a(...e){return(0,r.QP)((0,n.$)(e))}},41158:(e,t,s)=>{s.d(t,{K:()=>m});var n=s(95155),r=s(76721),a=s(92571),l=s(14225),i=s(30600),o=s(12115),c=s(89239),d=s(60529),u=s(53972);function m({onSelect:e,onCancel:t}){let[s,x]=(0,o.useState)(""),[h,f]=(0,o.useState)([]),[p,g]=(0,o.useState)(!0),[j,v]=(0,o.useState)(""),[b,w]=(0,o.useState)(!1),[y,N]=(0,o.useState)(""),[k,C]=(0,o.useState)(""),S=(0,o.useCallback)(async e=>{g(!0),v("");let t=new URLSearchParams;e&&t.set("path",e);try{let e=await fetch(`/api/filesystem/browse?${t}`);if(!e.ok){let t=await e.json().catch(()=>({error:"Failed to browse"}));v(t.error||"Failed to browse"),f([]);return}let s=await e.json();x(s.path),f(s.entries)}catch{v("Failed to connect"),f([])}finally{g(!1)}},[]);(0,o.useEffect)(()=>{S()},[S]);let E=async()=>{let e=y.trim();if(e){C("");try{let t=await fetch("/api/filesystem/mkdir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({parentPath:s,name:e})});if(!t.ok){let e=await t.json().catch(()=>({error:"Failed to create folder"}));C(e.error||"Failed to create folder");return}let n=await t.json();w(!1),N(""),S(n.path)}catch{C("Failed to connect")}}},$=(0,u.cs)(s),A=/^[a-zA-Z]:[/\\]/.test(s),T=A?s.slice(0,3):"/",_=A?s.slice(0,3):"/",R=A?$.slice(1):$;return(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 text-xs font-mono overflow-x-auto",children:[(0,n.jsx)("button",{type:"button",onClick:()=>S(_),className:"shrink-0 text-muted-foreground hover:text-foreground",children:T}),R.map((e,t)=>{let s=_+R.slice(0,t+1).join("/"),a=t===R.length-1;return(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)(r.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),a?(0,n.jsx)("span",{className:"text-foreground font-medium",children:e}):(0,n.jsx)("button",{type:"button",onClick:()=>S(s),className:"text-muted-foreground hover:text-foreground",children:e})]},s)})]}),(0,n.jsxs)("div",{className:"border rounded-md max-h-56 overflow-y-auto",children:[p&&(0,n.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,n.jsx)(a.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),j&&(0,n.jsx)("div",{className:"px-3 py-4 text-sm text-destructive",children:j}),!p&&!j&&0===h.length&&!b&&(0,n.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"No subdirectories"}),!p&&!j&&h.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>S(e.path),className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left",children:[(0,n.jsx)(l.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,n.jsx)("span",{className:"truncate",children:e.name})]},e.path)),b&&(0,n.jsxs)("div",{className:"px-3 py-1.5 space-y-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(i.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,n.jsx)(d.p,{value:y,onChange:e=>N(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),E()),"Escape"===e.key&&(w(!1),N(""),C(""))},placeholder:"Folder name",className:"h-7 text-sm",autoFocus:!0}),(0,n.jsx)(c.$,{type:"button",size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:E,children:"Create"})]}),k&&(0,n.jsx)("p",{className:"text-xs text-destructive pl-6",children:k})]})]}),(0,n.jsxs)("div",{className:"flex gap-2 justify-end",children:[!b&&(0,n.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{w(!0),C("")},disabled:!s,children:[(0,n.jsx)(i.A,{className:"h-3.5 w-3.5 mr-1.5"}),"New Folder"]}),(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)(c.$,{type:"button",variant:"outline",size:"sm",onClick:t,children:"Cancel"}),(0,n.jsxs)(c.$,{type:"button",size:"sm",disabled:!s,onClick:()=>e(s),children:["Select ",s?(0,u.uk)(s)||"/":""]})]})]})}},42763:(e,t,s)=>{s.d(t,{Cf:()=>c,L3:()=>u,c7:()=>d,lG:()=>o});var n=s(95155),r=s(9005),a=s(65738),l=s(12115),i=s(40980);function o({open:e,onOpenChange:t,children:s,className:r}){return(l.useEffect(()=>{if(!e)return;let s=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t(!1))};return window.addEventListener("keydown",s,!0),()=>window.removeEventListener("keydown",s,!0)},[e,t]),e)?(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/80 flex items-center justify-center px-4 py-12",onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},children:(0,n.jsx)("div",{className:(0,i.cn)("w-full max-h-full flex flex-col",r||"max-w-lg"),children:s})}):null}function c({className:e,children:t,...s}){return(0,n.jsxs)("div",{className:(0,i.cn)("relative rounded-lg border bg-background text-foreground p-6 shadow-lg overflow-y-auto",e),...s,children:[(s.onClose||s.onDelete)&&(0,n.jsxs)("div",{className:"sticky top-0 z-10 flex justify-between -mx-2 -mt-2 mb-2",children:[s.onClose?(0,n.jsx)("button",{className:"rounded-sm opacity-70 hover:opacity-100",onClick:s.onClose,children:(0,n.jsx)(r.A,{className:"h-4 w-4"})}):(0,n.jsx)("span",{}),s.onDelete&&(0,n.jsx)("button",{className:"rounded-sm opacity-70 hover:opacity-100 text-destructive",onClick:s.onDelete,children:(0,n.jsx)(a.A,{className:"h-4 w-4"})})]}),t]})}function d({className:e,...t}){return(0,n.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...t})}function u({className:e,...t}){return(0,n.jsx)("h2",{className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",e),...t})}},45160:(e,t,s)=>{s.d(t,{E:()=>i});var n=s(95155),r=s(18460);s(12115);var a=s(40980);let l=(0,r.F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-white",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i({className:e,variant:t,...s}){return(0,n.jsx)("div",{className:(0,a.cn)(l({variant:t}),e),...s})}},53972:(e,t,s)=>{function n(e){let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t<0?e:e.slice(t+1)}function r(e){let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t<0?"":e.slice(0,t)}function a(e,t=3){let s=e.split(/[/\\]/);return s.length<=t?e:".../"+s.slice(-2).join("/")}function l(e){return e.split(/[/\\]/).filter(Boolean)}s.d(t,{_1:()=>a,cs:()=>l,uk:()=>n,ww:()=>r})},57594:(e,t,s)=>{s.d(t,{Mh:()=>d,j8:()=>c,sU:()=>o});var n=s(95155),r=s(89811),a=s(49199),l=s(12115),i=s(22317);class o extends l.Component{static getDerivedStateFromError(){return{error:!0}}render(){return this.state.error?this.props.fallback||(0,n.jsx)("pre",{className:"p-3 text-xs text-muted-foreground",children:"Unable to render diff"}):this.props.children}constructor(...e){super(...e),this.state={error:!1}}}let c="[data-column-content] { user-select: text; -webkit-user-select: text; }";function d({filePath:e,oldString:t,newString:s,dark:u}){let{settings:m}=(0,i.t)(),x=(0,l.useMemo)(()=>(0,a.ss)(`a/${e}`,`b/${e}`,t,s,"","",{context:3}),[e,t,s]);return(0,n.jsx)("div",{className:"overflow-x-auto rounded text-xs",children:(0,n.jsx)(o,{children:(0,n.jsx)(r.C,{patch:x,options:{theme:{dark:"pierre-dark",light:"pierre-light"},themeType:u?"dark":"light",disableFileHeader:!0,overflow:"wrap",diffStyle:m.diffStyle,unsafeCSS:c}})})})}},60529:(e,t,s)=>{s.d(t,{p:()=>l});var n=s(95155),r=s(12115),a=s(40980);let l=r.forwardRef(({className:e,type:t,...s},r)=>(0,n.jsx)("input",{type:t,className:(0,a.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...s}));l.displayName="Input"},64233:(e,t,s)=>{s.d(t,{Y:()=>x});var n=s(95155),r=s(57966),a=s(98076),l=s(44605),i=s(64577),o=s(99314),c=s(12115);function d(e){let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();try{return document.execCommand("copy")}finally{document.body.removeChild(t)}}var u=s(40980);let m={pre:function(e){let[t,s]=(0,c.useState)(!1),r=(0,c.useRef)(null),a=(0,c.useCallback)(()=>{let e=r.current?.textContent??"",t=()=>{s(!0),setTimeout(()=>s(!1),1500)};navigator.clipboard?.writeText?navigator.clipboard.writeText(e).then(t).catch(()=>{d(e)&&t()}):d(e)&&t()},[]);return(0,n.jsxs)("div",{className:"group/code relative",children:[(0,n.jsx)("pre",{ref:r,...e}),(0,n.jsx)("button",{onClick:a,className:"absolute top-2 right-2 p-1.5 rounded bg-background/80 border border-border text-muted-foreground hover:text-foreground opacity-60 sm:opacity-0 sm:group-hover/code:opacity-100 transition-opacity",title:"Copy code",children:t?(0,n.jsx)(i.A,{className:"h-3.5 w-3.5 text-green-500"}):(0,n.jsx)(o.A,{className:"h-3.5 w-3.5"})})]})}};function x({content:e,variant:t="full",className:s}){return"lite"===t?(0,n.jsx)("div",{className:(0,u.cn)("prose prose-sm max-w-none dark:prose-invert",s),children:(0,n.jsx)(r.oz,{remarkPlugins:[l.A],children:e})}):(0,n.jsx)("div",{className:(0,u.cn)("message-prose prose prose-sm max-w-none dark:prose-invert",s),children:(0,n.jsx)(r.oz,{remarkPlugins:[l.A],rehypePlugins:[a.A],components:m,children:e})})}},67032:(e,t,s)=>{s.d(t,{Jm:()=>a,Os:()=>r,wA:()=>l});var n=s(12115);function r(){let[e,t]=(0,n.useState)([]),[s,r]=(0,n.useState)(!0),a=(0,n.useCallback)(()=>{r(!0),fetch("/api/jobs").then(e=>e.json()).then(e=>t(e.jobs)).catch(()=>t([])).finally(()=>r(!1))},[]);(0,n.useEffect)(()=>{a()},[a]);let l=(0,n.useCallback)(async e=>{try{if((await fetch(`/api/jobs/${e}`,{method:"DELETE"})).ok)return a(),!0;return!1}catch{return!1}},[a]);return{jobs:e,loading:s,refresh:a,deleteJob:l,triggerJob:(0,n.useCallback)(async e=>{try{return(await fetch(`/api/jobs/${e}/trigger`,{method:"POST"})).ok}catch{return!1}},[])}}function a(e){let[t,s]=(0,n.useState)([]),[r,a]=(0,n.useState)(!0),[l,i]=(0,n.useState)(!1),[o,c]=(0,n.useState)(!1),d=(0,n.useCallback)(()=>{if(!e){s([]),a(!1),c(!1);return}a(!0),fetch(`/api/jobs/${e}/runs?limit=25`).then(e=>e.json()).then(e=>{s(e.runs),c(e.hasMore??!1)}).catch(()=>s([])).finally(()=>a(!1))},[e]),u=(0,n.useCallback)(()=>{e&&!l&&o&&(i(!0),fetch(`/api/jobs/${e}/runs?limit=25&offset=${t.length}`).then(e=>e.json()).then(e=>{s(t=>[...t,...e.runs]),c(e.hasMore??!1)}).catch(()=>{}).finally(()=>i(!1)))},[e,l,o,t.length]);return(0,n.useEffect)(()=>{d()},[d]),{runs:t,loading:r,loadingMore:l,hasMore:o,refresh:d,loadMore:u}}function l(){let[e,t]=(0,n.useState)(0),s=(0,n.useRef)(void 0);return(0,n.useEffect)(()=>{let e=()=>{fetch("/api/jobs/status").then(e=>e.json()).then(e=>t(e.count)).catch(()=>{})};return e(),s.current=setInterval(e,6e4),()=>clearInterval(s.current)},[]),{count:e}}},81477:(e,t,s)=>{s.d(t,{BT:()=>c,Wu:()=>d,ZB:()=>o,Zp:()=>l,aR:()=>i});var n=s(95155),r=s(12115),a=s(40980);let l=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));l.displayName="Card";let i=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",e),...t}));i.displayName="CardHeader";let o=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("text-2xl font-semibold leading-none tracking-tight",e),...t}));o.displayName="CardTitle";let c=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("text-sm text-muted-foreground",e),...t}));c.displayName="CardDescription";let d=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("p-6 pt-0",e),...t}));d.displayName="CardContent"},89239:(e,t,s)=>{s.d(t,{$:()=>c});var n=s(95155),r=s(54850),a=s(18460),l=s(12115),i=s(40980);let o=(0,a.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),c=l.forwardRef(({className:e,variant:t,size:s,asChild:a=!1,...l},c)=>{let d=a?r.DX:"button";return(0,n.jsx)(d,{className:(0,i.cn)(o({variant:t,size:s,className:e})),ref:c,...l})});c.displayName="Button"},89323:(e,t,s)=>{s.d(t,{f:()=>l,h:()=>i});var n=s(95155),r=s(12115);let a=(0,r.createContext)(null);function l({children:e}){let[t,s]=(0,r.useState)(!1),i=(0,r.useRef)(null),o=(0,r.useRef)(new Set),c=(0,r.useRef)(void 0),d=(0,r.useRef)(1e3),u=(0,r.useRef)([]),m=(0,r.useRef)(!1),x=(0,r.useRef)(!0),h=(0,r.useRef)(void 0),f=(0,r.useRef)(void 0),p=(0,r.useRef)(!1),g=(0,r.useRef)(void 0),j=(0,r.useCallback)(()=>{if(!x.current)return;clearTimeout(c.current);let e="visible"===document.visibilityState?5e3:3e4,t=Math.min(d.current,e);console.log(`[ws] reconnect scheduled in ${t}ms`),c.current=setTimeout(()=>{d.current=Math.min(2*d.current,3e4),h.current?.()},t)},[]),v=(0,r.useCallback)(async()=>{let e;if(m.current||i.current)return void console.log(`[ws] connect skipped (connecting=${m.current}, hasWs=${!!i.current})`);m.current=!0;let t=performance.now();console.log("[ws] connecting...");try{let s=await fetch("/api/auth/ws-token");if(!s.ok){console.warn(`[ws] ws-token fetch failed (${s.status})`),m.current=!1,j();return}e=(await s.json()).token,console.log(`[ws] token fetched in ${(performance.now()-t).toFixed(0)}ms`)}catch(e){console.warn("[ws] ws-token fetch error:",e),m.current=!1,j();return}if(i.current||!x.current){console.log(`[ws] connect aborted (hasWs=${!!i.current}, mounted=${x.current})`),m.current=!1;return}let n="https:"===window.location.protocol?"wss:":"ws:",r=new WebSocket(`${n}//${window.location.host}/ws?token=${e}`);i.current=r,m.current=!1,r.onopen=()=>{for(let e of(console.log(`[ws] connected in ${(performance.now()-t).toFixed(0)}ms`),s(!0),d.current=1e3,u.current))r.send(JSON.stringify(e));u.current=[]},r.onmessage=e=>{let t=JSON.parse(e.data);for(let e of("pong"===t.type&&(clearTimeout(f.current),p.current=!1),"message:ack"===t.type&&w.current.length>0&&(w.current=[]),o.current))e(t)},r.onclose=e=>{console.log(`[ws] closed (code=${e.code}), scheduling reconnect`),s(!1),i.current===r&&(i.current=null),w.current.length>0&&(u.current.push(...w.current),w.current=[]),d.current=1e3,j()},r.onerror=()=>{r.close()}},[j]);h.current=v,(0,r.useEffect)(()=>(x.current=!0,v(),()=>{x.current=!1,clearTimeout(c.current),clearInterval(g.current),i.current&&(i.current.onclose=null,i.current.close(),i.current=null),m.current=!1}),[v]);let b=(0,r.useCallback)(()=>{let e=i.current;e&&(e.onclose=null,e.onerror=null,e.close(),i.current=null),s(!1),d.current=1e3,h.current?.()},[]);(0,r.useEffect)(()=>{let e=()=>{clearInterval(g.current),"visible"===document.visibilityState&&(g.current=setInterval(()=>{if(!i.current&&!m.current){console.log("[ws] health: no connection, forcing reconnect"),clearTimeout(c.current),d.current=1e3,h.current?.();return}let e=i.current;if(e){if(e.readyState!==WebSocket.OPEN){console.log(`[ws] health: dead connection (readyState=${e.readyState}), tearing down`),b();return}if(!p.current){p.current=!0;try{e.send(JSON.stringify({type:"ping"}))}catch{p.current=!1,b();return}clearTimeout(f.current),f.current=setTimeout(()=>{p.current=!1,b()},5e3)}}},5e3))},t=()=>{if("visible"===document.visibilityState){if(console.log(`[ws] page visible (hasWs=${!!i.current}, connecting=${m.current})`),e(),!i.current&&!m.current){console.log("[ws] no connection on visibility, reconnecting now"),clearTimeout(c.current),d.current=1e3,h.current?.();return}let t=i.current;if(t){if(t.readyState!==WebSocket.OPEN)return void b();if(!p.current){p.current=!0;try{t.send(JSON.stringify({type:"ping"}))}catch{p.current=!1,b();return}clearTimeout(f.current),f.current=setTimeout(()=>{p.current=!1,b()},2e3)}}}else clearInterval(g.current)};return document.addEventListener("visibilitychange",t),e(),()=>{document.removeEventListener("visibilitychange",t),clearInterval(g.current),clearTimeout(f.current)}},[b]);let w=(0,r.useRef)([]),y=(0,r.useCallback)(e=>{i.current?.readyState===WebSocket.OPEN?("message:send"===e.type&&w.current.push(e),i.current.send(JSON.stringify(e))):u.current.push(e)},[]),N=(0,r.useCallback)(e=>(o.current.add(e),()=>{o.current.delete(e)}),[]);return(0,n.jsx)(a.Provider,{value:{connected:t,send:y,subscribe:N},children:e})}function i(){let e=(0,r.useContext)(a);if(!e)throw Error("useWebSocket must be used within WebSocketProvider");return e}},89723:(e,t,s)=>{s.d(t,{G:()=>d});var n=s(95155),r=s(9005),a=s(12115),l=s(64233),i=s(89239),o=s(81477),c=s(53972);function d({open:e,onOpenChange:t,content:s,filePath:u}){let m=(0,a.useCallback)(()=>t(!1),[t]);(0,a.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),m())};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[e,m]);let x=(0,a.useCallback)(e=>{e.target===e.currentTarget&&m()},[m]);if(!e)return null;let h=(0,c.uk)(u)||u;return(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:x,children:(0,n.jsxs)(o.Zp,{className:"w-full max-w-3xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b shrink-0",children:[(0,n.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:h}),(0,n.jsx)(i.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:m,children:(0,n.jsx)(r.A,{className:"h-4 w-4"})})]}),(0,n.jsx)(l.Y,{content:s,className:"flex-1 min-h-0 overflow-y-auto p-4"})]})})}},93034:(e,t,s)=>{s.d(t,{Bx:()=>_,HC:()=>A,MN:()=>C});var n=s(95155),r=s(44923),a=s(87256),l=s(39768),i=s(58274),o=s(9005),c=s(2125),d=s(35397),u=s(88074),m=s(77618),x=s(5772),h=s(73321),f=s(12115),p=s(30120),g=s(89239),j=s(67032),v=s(89323),b=s(40980),w=s(20108);let y="cockpit_sidebar_width";function N({onResize:e}){let t=(0,f.useRef)(!1),s=(0,f.useRef)(0),r=(0,f.useCallback)(n=>{n.preventDefault(),t.current=!0,s.current=n.clientX;let r=n=>{if(!t.current)return;let r=n.clientX-s.current;s.current=n.clientX,e(r)},a=()=>{t.current=!1,document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",a),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",r),document.addEventListener("mouseup",a)},[e]);return(0,n.jsx)("div",{onMouseDown:r,className:"hidden md:block absolute inset-y-0 right-0 w-1 cursor-col-resize hover:bg-primary/30 transition-colors z-10"})}let k="cockpit_unread_sessions";async function C(e){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:e})}).catch(()=>{})}async function S(e){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:e})}).catch(()=>{})}async function E(){try{let e=await fetch("/api/sessions/pinned");if(!e.ok)return[];let t=await e.json();return Array.isArray(t.pinned)?t.pinned:[]}catch{return[]}}function $(){try{let e=localStorage.getItem(k);if(e)return new Set(JSON.parse(e))}catch{}return new Set}function A(e){let t=$();t.delete(e),localStorage.setItem(k,JSON.stringify([...t]))}function T({session:e,isCurrent:t,isUnread:s,onNavigate:r,onAction:c}){var d;let u,{attributes:m,listeners:x,setNodeRef:h,transform:f,transition:p,isDragging:j}=(0,a.gl)({id:e.id}),v={transform:l.Ks.Transform.toString(f),transition:p,opacity:j?.5:1};return(0,n.jsxs)("div",{ref:h,style:v,role:"button",tabIndex:0,onClick:()=>r(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),r(e))},className:(0,b.cn)("w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent/50 transition-colors cursor-pointer",t&&"bg-accent"),children:[(0,n.jsx)("button",{type:"button",...m,...x,onClick:e=>e.stopPropagation(),className:"shrink-0 cursor-grab active:cursor-grabbing text-muted-foreground/60 hover:text-muted-foreground touch-none",title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,n.jsx)(i.A,{className:"h-4 w-4"})}),(0,n.jsx)("div",{className:"shrink-0 relative flex items-center justify-center h-4 w-4",children:"running"===e.status?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-yellow-500/20 animate-ping"}),(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-yellow-500",title:"Working"})]}):s?(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-green-500",title:"New response"}):(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-muted-foreground/30"})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"truncate font-medium text-left",dir:"rtl",title:e.cwd,children:(0,n.jsx)("bdo",{dir:"ltr",children:(u=(d=e.cwd).split(/[/\\]/)).length>2?"~/"+u.slice(-2).join("/"):d})}),(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:e.name})]}),(0,n.jsx)(g.$,{variant:"ghost",size:"icon",className:"h-8 w-8 shrink-0 text-red-500 hover:text-red-600 hover:bg-red-500/10",onClick:t=>c(t,e),title:"running"===e.status?"Stop session":"Remove from sidebar",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]})}let _=(0,f.forwardRef)(function(e,t){let s=(0,h.useRouter)(),l=(0,h.usePathname)(),{send:i,subscribe:m,connected:j}=(0,v.h)(),{sidebarContent:_}=(0,p.E2)(),[z,I]=(0,f.useState)(!1),[P,L]=(0,f.useState)([]),[F,M]=(0,f.useState)(new Set),[D,O]=(0,f.useState)(!1),[W,U]=(0,f.useState)(288);(0,f.useEffect)(()=>{U(function(){try{let e=localStorage.getItem(y);if(e){let t=parseInt(e,10);if(t>=200&&t<=480)return t}}catch{}return 288}())},[]);let G=(0,f.useCallback)(e=>{U(t=>{let s=Math.max(200,Math.min(480,t+e));return localStorage.setItem(y,String(s)),s})},[]),B=(0,f.useRef)(new Map),J=(0,r.FR)((0,r.MS)(r.AN,{activationConstraint:{delay:150,tolerance:5}}));(0,f.useImperativeHandle)(t,()=>({toggle:()=>I(e=>!e),close:()=>I(!1)}),[]);let H=(0,f.useCallback)(()=>I(!1),[]),q=l.startsWith("/sessions/")?l.split("/")[2]:null;(0,f.useEffect)(()=>m(e=>{if("session:status"===e.type){let{sessionId:t,status:s}=e;if(!new Set(P.map(e=>e.id)).has(t))return;let n=B.current.get(t);if(B.current.set(t,s),"running"===n&&"idle"===s&&q!==t){let e;(e=$()).add(t),localStorage.setItem(k,JSON.stringify([...e])),M($())}L(e=>e.map(e=>e.id===t?{...e,status:s}:e))}else if("session:info_updated"===e.type){let{sessionId:t,info:s}=e;L(e=>e.map(e=>e.id===t?{...e,name:s.name,model:s.model}:e))}}),[m,q,P]);let K=(0,f.useCallback)(async()=>{M($());let[e,t]=await Promise.all([E(),fetch("/api/sessions").then(e=>e.ok?e.json():null).catch(()=>null)]);if(!t)return;let s=new Map((t.groups||[]).flatMap(e=>e.sessions).filter(e=>!e.cwd.endsWith(".cockpit/reviews")).map(e=>[e.id,e])),n=[],r=[];for(let t of e){let e=s.get(t);e&&(n.push(e),r.push(t))}for(let t of(r.length!==e.length&&fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:r})}).catch(()=>{}),n))B.current.has(t.id)||B.current.set(t.id,t.status);L(n),n.length>0&&i({type:"session:subscribe",sessionIds:n.map(e=>e.id)})},[i]);(0,f.useEffect)(()=>{(z||j)&&K()},[z,j,l,K]);let V=async(e,t)=>{e.stopPropagation(),(await fetch(`/api/sessions/${t}`,{method:"DELETE"})).ok&&(await S(t),A(t),M($()),L(e=>e.filter(e=>e.id!==t)),q===t&&s.push("/"))},X=async(e,t)=>{e.stopPropagation(),await S(t),A(t),M($()),L(e=>e.filter(e=>e.id!==t)),q===t&&s.push("/")},Y=(0,f.useCallback)(e=>{let{active:t,over:s}=e;if(!s||t.id===s.id)return;let n=P.findIndex(e=>e.id===t.id),r=P.findIndex(e=>e.id===s.id);if(n<0||r<0)return;let l=(0,a.be)(P,n,r);L(l),fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:l.map(e=>e.id)})}).catch(e=>console.error("Failed to persist sidebar order",e))},[P]),Z=async(e,t)=>{let n=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,name:t||void 0})});if(n.ok){let t=await n.json();await C(t.sessionId),await K(),H(),s.push(`/sessions/${t.sessionId}?cwd=${encodeURIComponent(e)}`)}},Q=e=>{A(e.id),M($()),H();let t=new URLSearchParams({cwd:e.cwd});e.name&&t.set("name",e.name),s.push(`/sessions/${e.id}?${t}`)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:(0,b.cn)("fixed inset-0 z-40 bg-black/50 transition-opacity md:hidden",z?"opacity-100":"opacity-0 pointer-events-none"),onMouseDown:H}),(0,n.jsxs)("div",{className:(0,b.cn)("fixed inset-y-0 left-0 z-50 bg-background border-r flex flex-col transition-transform duration-200","md:relative md:inset-auto md:z-auto md:translate-x-0 md:shrink-0 md:transition-none",z?"translate-x-0":"-translate-x-full"),style:{width:W},children:[(0,n.jsx)(N,{onResize:G}),_?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"flex items-center justify-end px-3 py-2 border-b md:hidden",children:(0,n.jsx)(g.$,{variant:"ghost",size:"icon",onClick:H,children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})}),(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:_})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b",children:[(0,n.jsx)("span",{className:"text-sm font-bold",children:"Active Sessions"}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(g.$,{variant:"ghost",size:"icon",onClick:()=>O(!0),title:"New session",children:(0,n.jsx)(c.A,{className:"h-4 w-4"})}),(0,n.jsx)(g.$,{variant:"ghost",size:"icon",onClick:H,className:"md:hidden",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]})]}),(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto py-1",children:0===P.length?(0,n.jsx)("p",{className:"px-3 py-4 text-sm text-muted-foreground",children:"No active sessions."}):(0,n.jsx)(r.Mp,{sensors:J,onDragEnd:Y,children:(0,n.jsx)(a.gB,{items:P.map(e=>e.id),strategy:a._G,children:P.map(e=>(0,n.jsx)(T,{session:e,isCurrent:q===e.id,isUnread:F.has(e.id),onNavigate:Q,onAction:(e,t)=>"running"===t.status?V(e,t.id):X(e,t.id)},e.id))})})})]}),(0,n.jsxs)("div",{className:"border-t px-3 py-2 flex items-center gap-2",children:[(0,n.jsxs)("button",{onClick:()=>{H(),s.push("/")},className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors flex-1 min-w-0",children:[(0,n.jsx)(x.default,{src:"/icon-192.png",alt:"",width:18,height:18,className:"shrink-0 dark:invert"}),"All sessions"]}),(0,n.jsx)(g.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>{H(),s.push("/reviews")},title:"Reviews",children:(0,n.jsx)(d.A,{className:"h-4 w-4"})}),(0,n.jsx)(R,{onClick:()=>{H(),s.push("/jobs")}}),(0,n.jsx)(g.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>{sessionStorage.removeItem("settings-scroll"),H(),s.push("/settings")},title:"Settings",children:(0,n.jsx)(u.A,{className:"h-4 w-4"})})]})]}),(0,n.jsx)(w.t,{open:D,onOpenChange:O,onSubmit:Z})]})});function R({onClick:e}){let{count:t}=(0,j.wA)();return(0,n.jsxs)(g.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground relative",onClick:e,title:"Scheduled Jobs",children:[(0,n.jsx)(m.A,{className:"h-4 w-4"}),t>0&&(0,n.jsx)("span",{className:"absolute top-1 right-1 h-2 w-2 rounded-full bg-red-500"})]})}}}]);
|