@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26126],{26126:(e,t,r)=>{r.d(t,{L:()=>C});var n=r(95155),l=r(2125),s=r(92571),a=r(65377),c=r(25182);let i=(0,r(99537).A)("text-wrap",[["path",{d:"m16 16-3 3 3 3",key:"117b85"}],["path",{d:"M3 12h14.5a1 1 0 0 1 0 7H13",key:"18xa6z"}],["path",{d:"M3 19h6",key:"1ygdsz"}],["path",{d:"M3 5h18",key:"1u36vt"}]]);var o=r(94088),u=r(12363),d=r(9005),f=r(12115),m=r(3765),h=r(18189),x=r(8187),p=r(96301),b=r(64233),g=r(42763),j=r(89323),y=r(53972);let k=new Map,N=new Map;function w(e){for(let t of Array.from(e.querySelectorAll("mark.file-search-match"))){let e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t),e.normalize()}}}function v(e,t){let r=e.querySelectorAll("mark.file-search-match");r.forEach(e=>{e.style.backgroundColor="rgba(250, 204, 21, 0.35)"});let n=r[t];n&&(n.style.backgroundColor="rgba(234, 88, 12, 0.5)",n.scrollIntoView({block:"center",behavior:"smooth"}))}function C({cwd:e,initialFile:t,manageSidebar:r=!0}){let{setSidebarSection:S,removeSidebarSection:E,closeSidebar:F,tabActions:A}=(0,m.E2)(),{subscribe:M}=(0,j.h)(),[R,I]=(0,f.useState)(()=>t||k.get(e)||null),[T,$]=(0,f.useState)(null),[q,L]=(0,f.useState)(!1),[O,W]=(0,f.useState)(!1),[_,D]=(0,f.useState)(!1),[z,B]=(0,f.useState)(!1),G=(0,f.useRef)(0),H=(0,f.useRef)(null),K=(0,f.useRef)(null),U=(0,f.useRef)(null),P=(0,f.useRef)(-1),[Y,V]=(0,f.useState)(!1),[X,J]=(0,f.useState)(""),[Q,Z]=(0,f.useState)(0),[ee,et]=(0,f.useState)(-1);(0,f.useEffect)(()=>{"1"===localStorage.getItem("cockpit-files-wrap")&&D(!0),"1"===localStorage.getItem("cockpit-files-preview")&&B(!0)},[]);let er=(0,f.useCallback)(()=>{D(e=>{let t=!e;return localStorage.setItem("cockpit-files-wrap",t?"1":"0"),t})},[]),en=(0,f.useCallback)(()=>{B(e=>{let t=!e;return localStorage.setItem("cockpit-files-preview",t?"1":"0"),t})},[]),el=(0,f.useCallback)(()=>{V(!0),requestAnimationFrame(()=>{U.current?.focus(),U.current?.select()})},[]),es=(0,f.useCallback)(()=>{V(!1),J("")},[]),ea=(0,f.useCallback)(e=>{if(0===Q||!H.current)return;let t=((ee+e)%Q+Q)%Q;P.current=t,et(t),v(H.current,t)},[Q,ee]),ec=(0,f.useCallback)(e=>{"Escape"===e.key?es():"Enter"===e.key&&(e.preventDefault(),ea(e.shiftKey?-1:1))},[es,ea]);(0,f.useEffect)(()=>{let e;if(!Y||!X||!H.current){H.current&&w(H.current),Z(0),P.current=-1,et(-1);return}let t=H.current,r=e=>{let r,n=function(e,t){if(w(e),!t)return 0;let r=t.toLowerCase(),n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),l=[];for(;n.nextNode();){let e=n.currentNode.parentNode?.nodeName;"STYLE"!==e&&"SCRIPT"!==e&&l.push(n.currentNode)}let s=0;for(let e of l){let n=e.textContent??"",l=n.toLowerCase(),a=[],c=0;for(;;){let e=l.indexOf(r,c);if(-1===e)break;a.push(e),c=e+1}if(!a.length)continue;let i=document.createDocumentFragment(),o=0;for(let e of a){e>o&&i.appendChild(document.createTextNode(n.slice(o,e)));let r=document.createElement("mark");r.className="file-search-match",r.style.backgroundColor="rgba(250, 204, 21, 0.35)",r.style.color="inherit",r.style.borderRadius="1px",r.textContent=n.slice(e,e+t.length),i.appendChild(r),s++,o=e+t.length}o<n.length&&i.appendChild(document.createTextNode(n.slice(o))),e.parentNode?.replaceChild(i,e)}return s}(t,X);Z(n),r=!e&&P.current>=0&&n>0?Math.min(P.current,n-1):n>0?0:-1,P.current=r,et(r),r>=0&&v(t,r)};e=requestAnimationFrame(()=>r(!0));let n=new MutationObserver(()=>{t.querySelector("mark.file-search-match")||(e=requestAnimationFrame(()=>r(!1)))});return n.observe(t,{childList:!0,subtree:!0}),()=>{cancelAnimationFrame(e),n.disconnect()}},[Y,X,T,_,z]);let ei=(0,f.useCallback)(t=>{I(t),k.set(e,t),window.innerWidth<768&&F()},[e,F]),eo=(0,f.useCallback)(e=>{A?A.openFile(e):ei(e),W(!1)},[A,ei]);if((0,f.useEffect)(()=>{if(r)return S({id:"file-tree",title:"Files",content:(0,n.jsx)(p.h,{cwd:e,selectedFile:R,onSelectFile:ei}),order:30,actions:(0,n.jsx)("button",{onClick:()=>W(!0),title:"Open file",className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground",children:(0,n.jsx)(l.A,{className:"h-3.5 w-3.5"})})}),()=>E("file-tree")},[e,R,ei,S,E,r]),(0,f.useEffect)(()=>{if(!R)return void $(null);let e=N.get(R);if(e)return void $(e);let t=++G.current;L(!0),fetch(`/api/filesystem/read?path=${encodeURIComponent(R)}`).then(e=>{if(!e.ok)throw Error("Failed to read file");return e.json()}).then(e=>{if(G.current===t){if(N.size>=50){let e=N.keys().next().value;void 0!==e&&N.delete(e)}N.set(R,e),$(e)}}).catch(()=>{G.current===t&&$(null)}).finally(()=>{G.current===t&&L(!1)})},[R]),(0,f.useEffect)(()=>{if(!R)return;let e=async()=>{let e=N.get(R);if(e?.mtimeMs)try{let t=await fetch(`/api/filesystem/read?path=${encodeURIComponent(R)}&stat=true`);if(!t.ok)return;if((await t.json()).mtimeMs!==e.mtimeMs){let e=K.current?.scrollTop??0,t=await fetch(`/api/filesystem/read?path=${encodeURIComponent(R)}`);if(!t.ok)return;let r=await t.json();N.set(R,r),$(r),requestAnimationFrame(()=>{K.current&&(K.current.scrollTop=e)})}}catch{}};return M(t=>{"session:fs_changed"===t.type&&e()})},[R,M]),!R)return(0,n.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Select a file to view"});if(q)return(0,n.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,n.jsx)(s.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})});if(!T)return(0,n.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Failed to read file"});let eu=function(e,t){if(t.startsWith(e)){let r=t.slice(e.length);return r.startsWith("/")?r.slice(1):r}return t}(e,R),ed=(0,y.uk)(R)||R,ef=eu.slice(0,eu.length-ed.length),em=(0,h.WG)(R),eh="markdown"===em||"mdx"===em,ex=eh&&z;return(0,n.jsxs)("div",{className:"flex flex-col h-full min-h-0",children:[(0,n.jsxs)("div",{className:"shrink-0 flex items-center gap-1 border-b px-4 py-2 font-mono text-xs",children:[ef&&(0,n.jsx)("span",{className:"text-muted-foreground",children:ef}),(0,n.jsx)("span",{className:"font-bold",children:ed}),T.truncated&&(0,n.jsx)("span",{className:"ml-2 text-muted-foreground",children:"(truncated to 100KB)"}),(0,n.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[!T.binary&&(0,n.jsx)("button",{type:"button",onClick:Y?es:el,"aria-label":"Find in file",title:"Find in file",className:`flex items-center justify-center rounded p-1 hover:bg-accent ${Y?"text-foreground":"text-muted-foreground"}`,children:(0,n.jsx)(a.A,{className:"h-3.5 w-3.5"})}),eh&&(0,n.jsx)("button",{type:"button",onClick:en,"aria-label":z?"Show source":"Show preview","aria-pressed":z,title:z?"Show source":"Show preview",className:`flex items-center justify-center rounded p-1 hover:bg-accent ${z?"text-foreground":"text-muted-foreground"}`,children:(0,n.jsx)(c.A,{className:"h-3.5 w-3.5"})}),!ex&&(0,n.jsx)("button",{type:"button",onClick:er,"aria-label":_?"Disable line wrap":"Enable line wrap","aria-pressed":_,title:_?"Disable line wrap":"Enable line wrap",className:`flex items-center justify-center rounded p-1 hover:bg-accent ${_?"text-foreground":"text-muted-foreground"}`,children:(0,n.jsx)(i,{className:"h-3.5 w-3.5"})})]})]}),Y&&(0,n.jsxs)("div",{className:"shrink-0 flex items-center gap-1.5 border-b px-4 py-1.5",children:[(0,n.jsx)("input",{ref:U,value:X,onChange:e=>J(e.target.value),onKeyDown:ec,placeholder:"Find in file...",className:"flex-1 min-w-0 bg-transparent text-xs outline-none placeholder:text-muted-foreground"}),X&&(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground tabular-nums shrink-0",children:Q>0?`${ee+1} of ${Q}`:"No results"}),(0,n.jsx)("button",{type:"button",onClick:()=>ea(-1),disabled:0===Q,className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground disabled:opacity-30",children:(0,n.jsx)(o.A,{className:"h-3.5 w-3.5"})}),(0,n.jsx)("button",{type:"button",onClick:()=>ea(1),disabled:0===Q,className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground disabled:opacity-30",children:(0,n.jsx)(u.A,{className:"h-3.5 w-3.5"})}),(0,n.jsx)("button",{type:"button",onClick:es,className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground",children:(0,n.jsx)(d.A,{className:"h-3 w-3"})})]}),(0,n.jsx)("div",{ref:H,className:"flex-1 min-h-0 flex flex-col",children:T.binary?(0,n.jsx)("div",{className:"flex items-center justify-center flex-1 text-sm text-muted-foreground",children:"Binary file"}):ex?(0,n.jsx)("div",{ref:K,className:"flex-1 min-h-0 overflow-y-auto p-4",children:(0,n.jsx)(b.Y,{content:T.content})}):(0,n.jsx)("div",{ref:K,className:"flex-1 min-h-0 overflow-auto",children:(0,n.jsx)(h.NG,{code:T.content,language:em,dark:!("u"<typeof document)&&document.documentElement.classList.contains("dark"),fullHeight:!0,wrap:_})})}),(0,n.jsx)(g.lG,{open:O,onOpenChange:W,children:(0,n.jsxs)(g.Cf,{className:"sm:max-w-lg",children:[(0,n.jsx)(g.c7,{children:(0,n.jsx)(g.L3,{children:"Open File"})}),(0,n.jsx)(x.N,{startPath:e,onSelect:eo,onCancel:()=>W(!1)})]})})]})}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[31010],{8962:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]])},9383:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])},11012:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},12651:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]])},14283:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("hammer",[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]])},15561:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]])},18402:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},18986:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},19707:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]])},19805:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},20660:(e,a,t)=>{t.d(a,{Q:()=>l});var h=t(26210),d=t(70569),y=t(82627),p=t(65431),k=t(95155);function l({fileDiff:e,options:a,metrics:t,lineAnnotations:A,selectedLines:M,className:c,style:r,prerenderedHTML:i,renderAnnotation:m,renderCustomHeader:s,renderHeaderPrefix:v,renderHeaderMetadata:o,renderGutterUtility:u,renderHoverUtility:n,disableWorkerPool:x=!1}){let{ref:f,getHoveredLine:w}=(0,p.S)({fileDiff:e,options:a,metrics:t,lineAnnotations:A,selectedLines:M,prerenderedHTML:i,hasGutterRenderUtility:null!=u||null!=n,hasCustomHeader:null!=s,disableWorkerPool:x});return(0,k.jsx)(h.mZ,{ref:f,className:c,style:r,children:(0,d.$)((0,y.z)({fileDiff:e,renderCustomHeader:s,renderHeaderPrefix:v,renderHeaderMetadata:o,renderAnnotation:m,renderGutterUtility:u,lineAnnotations:A,renderHoverUtility:n,getHoveredLine:w}),i)})}},25182:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},25494:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]])},28750:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]])},30966:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]])},36619:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]])},36672:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("clipboard-check",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]])},40638:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("message-circle-question-mark",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},40852:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]])},50981:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},55737:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]])},58309:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},64350:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("shrink",[["path",{d:"m15 15 6 6m-6-6v4.8m0-4.8h4.8",key:"17vawe"}],["path",{d:"M9 19.8V15m0 0H4.2M9 15l-6 6",key:"chjx8e"}],["path",{d:"M15 4.2V9m0 0h4.8M15 9l6-6",key:"lav6yq"}],["path",{d:"M9 4.2V9m0 0H4.2M9 9 3 3",key:"1pxi2q"}]])},66763:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]])},69203:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]])},92298:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},94088:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])}}]);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3765],{513:(e,t,s)=>{s.d(t,{s:()=>U});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(1275),j=s(73321),b=s(53972),w=s(3765),v=s(57594),y=s(89723);function N(e,t){let s=e.toLowerCase();return("write"===s||"edit"===s)&&(t.includes("/.claude/plans/")||t.startsWith("~/.claude/plans/"))&&t.endsWith(".md")}function k({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:r}=(0,w.E2)(),{settings:l,loaded:i}=(0,h.t)(),o=(0,d.useMemo)(()=>(function(e){if(!e)return{};try{return JSON.parse(e)}catch{return{}}})(e.input),[e.input]),[c,m]=(0,d.useState)(()=>t?.current?.has(e.id)??!1),[x,g]=(0,d.useState)(!1),j=(0,d.useRef)(t?.current?.has(e.id)??!1);(0,d.useEffect)(()=>{var t;let s;i&&!j.current&&m((t=e.name,"read"===(s=t.toLowerCase())?l.readExpanded:"edit"===s?l.editExpanded:l.toolCallsExpanded))},[i,e.name,l]);let b=o.file_path||e.filePath||"",v=N(e.name,b),S=o.content||"",C=v&&("Write"===e.name||"write"===e.name)&&S;(0,d.useEffect)(()=>{let t=e.name;if(("Read"===t||"read"===t)&&e.output){let t=o.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)&&o.content){let t=o.file_path||e.filePath||"",n=t?(0,u.WG)(t):void 0;n&&(0,u.Ik)(o.content,n,s)}},[e.name,e.output,e.filePath,o,s]);let E="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}),[]),I=(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(C)return void g(!0);if(!E)return;let s=!c;$.current=s,j.current=!0,m(s),t?.current&&(s?t.current.add(e.id):t.current.delete(e.id))},className:(0,f.cn)("flex w-full items-start gap-2 px-3 py-1.5 text-left",E&&"cursor-pointer hover:bg-muted/50",!E&&"cursor-default"),children:[C?(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",c&&"rotate-90")}),"Agent"===e.name?(0,n.jsx)(A,{tool:e,input:o,backgroundTasks:r}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"font-mono font-medium",children:e.name}),(0,n.jsx)(T,{tool:e,input:o})]})]}),c&&E&&(0,n.jsx)("div",{ref:I,className:"border-t border-border px-3 py-2 space-y-2",children:(0,n.jsx)(R,{tool:e,input:o,dark:s,expandedToolIds:t})})]}),C&&(0,n.jsx)(y.G,{open:x,onOpenChange:g,content:S,filePath:b})]})}function S(e){let{cwd:t}=(0,w.E2)();return`/files?cwd=${encodeURIComponent(t||"")}&file=${encodeURIComponent(e)}`}function C(){let e=document.querySelector("[data-chat-scroll]");e&&sessionStorage.setItem("cockpit:scrollPos:"+window.location.pathname,String(e.scrollTop))}function E({filePath:e}){let{tabActions:t}=(0,w.E2)(),s=S(e),r=(0,j.useRouter)();return(0,n.jsx)("button",{onClick:n=>{n.stopPropagation(),t?t.openFile(e):(C(),r.push(s))},title:e,className:"shrink-0 text-muted-foreground hover:text-foreground",children:(0,n.jsx)(g.A,{className:"h-3 w-3"})})}function $({filePath:e,children:t}){let{tabActions:s}=(0,w.E2)(),r=S(e),a=(0,j.useRouter)();return(0,n.jsx)("a",{href:r,onClick:t=>{t.preventDefault(),s?s.openFile(e):(C(),a.push(r))},title:e,className:"font-mono text-muted-foreground break-all hover:underline",children:t})}function A({tool:e,input:t,backgroundTasks:s}){let a=t.description||t.prompt||"",l=a.length>80?a.slice(0,80)+"...":a,i=t.model,o=[t.subagent_type,i].filter(Boolean),c="running"===e.status||s.some(t=>t.toolUseId===e.id&&"running"===t.status);return(0,n.jsxs)("div",{className:"flex flex-col gap-0.5 min-w-0 flex-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"font-mono font-medium",children:"Agent"}),c&&(0,n.jsx)(r.A,{className:"h-3 w-3 shrink-0 animate-spin text-muted-foreground"}),o.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))]}),l&&(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:l})]})}function T({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=N(s,r);return(0,n.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,n.jsxs)("span",{className:"text-muted-foreground truncate",children:[(0,b._1)(r),a?" (plan edit)":""]}),(0,n.jsx)(E,{filePath:r})]})}if("Write"===s||"write"===s){let r=t.file_path||e.filePath||"";if(!r)return null;let a=t.content||"";return N(s,r)&&a?(0,n.jsx)("span",{className:"text-blue-500 truncate",children:"View plan"}):(0,n.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:(0,b._1)(r)}),(0,n.jsx)(E,{filePath:r})]})}if("Read"===s||"read"===s){let s=t.file_path||e.filePath||"";return s?(0,n.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:(0,b._1)(s)}),(0,n.jsx)(E,{filePath: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("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 R({tool:e,input:t,dark:s,expandedToolIds:r}){let a=e.name;return"Edit"===a||"edit"===a?(0,n.jsx)(I,{input:t,tool:e,dark:s}):"Write"===a||"write"===a?(0,n.jsx)(P,{input:t,tool:e,dark:s}):"Read"===a||"read"===a?(0,n.jsx)(_,{input:t,tool:e,dark:s}):"Bash"===a||"bash"===a?(0,n.jsx)(F,{input:t,tool:e}):"Grep"===a||"grep"===a||"Glob"===a||"glob"===a?(0,n.jsx)(z,{input:t,tool:e}):"Agent"===a?(0,n.jsx)(M,{input:t,tool:e,dark:s,expandedToolIds:r}):(0,n.jsx)(O,{input:t,tool:e})}function I({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)(O,{input:e,tool:t})}function P({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)($,{filePath:r,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 _({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)($,{filePath:r,children:r}),t.output&&(0,n.jsx)(u.NG,{code:t.output,language:a,dark:s})]})}function F({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 break-all",children:[(0,n.jsx)("span",{className:"text-foreground/60",children:"$"})," ",s]}),t.output&&(0,n.jsx)("pre",{className:"whitespace-pre-wrap break-all rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-64 overflow-y-auto",children:t.output})]})}function z({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,b._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 M({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)(k,{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 O({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 L=/<(?:task-notification|local-command-caveat|local-command-stdout|command-name|command-message|command-args|system-reminder)[^>]*>[\s\S]*?<\/(?:task-notification|local-command-caveat|local-command-stdout|command-name|command-message|command-args|system-reminder)>[\s\S]*/g;function D(e){return e.replace(L,"").trim()}let U=(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,b]=(0,d.useState)(null),w="user"===e.role,v="system"===e.role,y=!v,N=new Set(["AskUserQuestion","TodoWrite"]),S=e.blocks?.filter(e=>!("tool_use"===e.type&&N.has(e.toolUse.name)))||[],C=S.length>0,E=(0,d.useRef)(!1),$=(0,d.useRef)(null),A=(0,d.useCallback)(t=>{E.current||o&&(t.preventDefault(),y&&h?.(e.id))},[y,o,e.id,h]),T=(0,d.useCallback)(()=>{E.current=!0},[]),R=(0,d.useCallback)(()=>{E.current=!1},[]),I=(0,d.useCallback)(t=>{if(o){y&&h?.(e.id);return}if(!y)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,y,e.id,h,u]);if(v){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!w&&!v&&!C&&!e.content&&e.toolUses.every(e=>N.has(e.name))||w&&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",w&&!t?"justify-end":"justify-start",o&&"cursor-pointer select-none"),onContextMenu:A,onTouchStart:T,onMouseDown:R,onClick:I,children:[(0,n.jsxs)("div",{className:(0,f.cn)("max-w-[85%] rounded-lg px-4 py-2 overflow-hidden transition-colors",w&&!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"})]}),w?(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(),b(`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)(W,{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})]}):C?(0,n.jsx)("div",{className:"space-y-2",children:S.map((e,t)=>"tool_use"===e.type?(0,n.jsx)(k,{tool:e.toolUse,expandedToolIds:s},e.toolUse.id):"thinking"===e.type?(0,n.jsx)(J,{text:e.text,tokens:e.tokens,durationMs:e.durationMs,redacted:e.redacted},`thinking-${t}`):(0,n.jsx)(m.Y,{content:D(e.text)},`text-${t}`))}):(0,n.jsxs)(n.Fragment,{children:[e.toolUses.filter(e=>!N.has(e.name)).length>0&&(0,n.jsx)("div",{className:"mb-2 space-y-1",children:e.toolUses.filter(e=>!N.has(e.name)).map(e=>(0,n.jsx)(k,{tool:e,expandedToolIds:s},e.id))}),(0,n.jsx)(m.Y,{content:D(e.content)})]})]}),(0,n.jsx)(x.lG,{open:null!==j,onOpenChange:()=>b(null),className:"max-w-3xl",children:(0,n.jsx)(x.Cf,{className:"max-h-[80vh] overflow-auto",onClose:()=>b(null),children:j&&(0,n.jsx)("img",{src:j,className:"w-full rounded object-contain",alt:""})})})]})});function W({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 J({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})]})}},3765:(e,t,s)=>{s.d(t,{GV:()=>X,si:()=>G,E2:()=>J,mq:()=>B,tB:()=>q});var n=s(95155),r=s(16449),a=s(96304),l=s(5772),i=s(12115),o=s(73321);let c=!1;function d({children:e}){let t=(0,o.useRouter)(),[s,r]=(0,i.useState)(c);return((0,i.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(64577),m=s(99314),x=s(65377),h=s(92571),f=s(9005),p=s(45160),g=s(89239),j=s(81477),b=s(16617);function w({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 v({text:e}){let[t,s]=(0,i.useState)(!1),r=(0,i.useCallback)(t=>{t.stopPropagation(),navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),1500)},[e]);return(0,n.jsx)(g.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:r,title:"Copy full message",children:t?(0,n.jsx)(u.A,{className:"h-3 w-3"}):(0,n.jsx)(m.A,{className:"h-3 w-3"})})}function y({onClose:e}){let{sessionId:t,cwd:s}=J(),[r,a]=(0,i.useState)(""),[l,o]=(0,i.useState)([]),[c,d]=(0,i.useState)(!1),[u,m]=(0,i.useState)(!1),[N,k]=(0,i.useState)(null),S=(0,i.useRef)(null),C=(0,i.useRef)(null);(0,i.useEffect)(()=>{S.current?.focus()},[]),(0,i.useEffect)(()=>{if(r.length<2){o([]),m(!1);return}let e=setTimeout(()=>{C.current?.abort();let e=new AbortController;C.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||(o(t.results||[]),m(!0),d(!1))}).catch(e=>{"AbortError"!==e.name&&(d(!1),m(!0))})},300);return()=>{clearTimeout(e)}},[r,t,s]),(0,i.useEffect)(()=>()=>{C.current?.abort()},[]);let E=(0,i.useCallback)(e=>{k(e)},[]),$=(0,i.useCallback)(t=>{t.target===t.currentTarget&&e()},[e]);return((0,i.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!==N)?(0,n.jsx)(b.Q,{timestamp:N,onClose:()=>k(null)}):(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:$,children:(0,n.jsxs)(j.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)(x.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,n.jsx)("input",{ref:S,value:r,onChange:e=>a(e.target.value),placeholder:"Search messages...",className:"flex-1 bg-transparent outline-none text-sm"}),c&&(0,n.jsx)(h.A,{className:"h-4 w-4 animate-spin text-muted-foreground shrink-0"}),(0,n.jsx)(g.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:e,children:(0,n.jsx)(f.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:()=>E(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)(p.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)(v,{text:e.fullContent})})]}),(0,n.jsx)(w,{preview:e.preview,matchStart:e.matchStart,matchLength:e.matchLength})]},`${e.messageId}-${t}`))]})]})})}function N(){let{sessionId:e}=J(),[t,s]=(0,i.useState)(!1);return((0,i.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)(g.$,{variant:"ghost",size:"icon",onClick:()=>s(!0),title:"Search messages (Ctrl+F)",children:(0,n.jsx)(x.A,{className:"h-4 w-4"})}),t&&(0,n.jsx)(y,{onClose:()=>s(!1)})]}):null}var k=s(70518),S=s(36338),C=s(64962);function E({tasks:e}){let[t,s]=(0,i.useState)(!1);(0,i.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)(g.$,{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)(S.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)(g.$,{variant:"ghost",size:"icon",onClick:()=>s(!1),children:(0,n.jsx)(f.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)(C.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):(0,n.jsx)(h.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.title&&e.description&&e.description!==e.title&&(0,n.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children: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 $=s(8143),A=s(67401);function T({todos:e}){let[t,s]=(0,i.useState)(!1);(0,i.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,i.useMemo)(()=>e.filter(e=>"completed"!==e.status).length,[e]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(g.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>s(!0),title:`${r} todo${1!==r?"s":""}`,children:[(0,n.jsx)($.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)(g.$,{variant:"ghost",size:"icon",onClick:()=>s(!1),children:(0,n.jsx)(f.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)(R,{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 R({status:e}){return"completed"===e?(0,n.jsx)(C.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):"in_progress"===e?(0,n.jsx)(h.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-blue-500"}):(0,n.jsx)(A.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-muted-foreground"})}var I=s(94774),P=s(82749);let _=null,F=0,z=null,M=null;async function O(e=!1){let t=Date.now();return!e&&_&&t-F<3e4?_:M||(M=(async()=>{try{let e=await fetch("/api/usage");if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`HTTP ${e.status}`)}let t=await e.json();return _=t,F=Date.now(),z=null,t}catch(e){return z=e instanceof Error?e.message:"Unknown error",null}finally{M=null}})())}function L({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 D({className:e}){let[t,s]=(0,i.useState)(!1),{usage:r,loading:a,error:l,refresh:o}=function(){let[e,t]=(0,i.useState)(_),[s,n]=(0,i.useState)(null===_),[r,a]=(0,i.useState)(null),l=(0,i.useRef)(!0),o=(0,i.useCallback)(async(e=!1)=>{e&&n(!0);let s=await O(e);l.current&&(s?(t(s),a(null)):_||a(z||"Failed to load usage data"),n(!1))},[]);return(0,i.useEffect)(()=>{l.current=!0,o();let e=setInterval(o,3e5);return()=>{l.current=!1,clearInterval(e)}},[o]),{usage:e,loading:s,error:r,refresh:o}}();(0,i.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&s(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let c=r?.seven_day&&r.seven_day.utilization>=100?100:r?.five_hour?.utilization??0;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(g.$,{variant:"ghost",size:"icon",onClick:()=>s(!0),title:"Account usage",className:e,children:(0,n.jsx)(I.A,{className:`h-4 w-4 ${r?c>80?"text-red-500":c>50?"text-orange-500":"text-green-500":""}`})}),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:"Account Usage"}),(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)(g.$,{variant:"ghost",size:"icon",onClick:()=>o(!0),disabled:a,title:"Refresh usage",children:(0,n.jsx)(P.A,{className:`h-4 w-4 ${a?"animate-spin":""}`})}),(0,n.jsx)(g.$,{variant:"ghost",size:"icon",onClick:()=>s(!1),children:(0,n.jsx)(f.A,{className:"h-4 w-4"})})]})]}),a&&!r&&(0,n.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,n.jsx)(h.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),l&&!r&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:l}),r&&(0,n.jsxs)(n.Fragment,{children:[r.five_hour&&(0,n.jsx)(L,{label:"5-hour limit",limit:r.five_hour}),r.seven_day&&(0,n.jsx)(L,{label:"7-day limit",limit:r.seven_day}),r.seven_day_sonnet&&(0,n.jsx)(L,{label:"7-day Sonnet",limit:r.seven_day_sonnet}),r.seven_day_opus&&(0,n.jsx)(L,{label:"7-day Opus",limit:r.seven_day_opus}),r.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:["$",r.extra_usage.remaining_credits.toFixed(2)," remaining"]})]})})]})]})})]})}var U=s(89323);let W=(0,i.createContext)({setHeader:()=>{},cwd:void 0,setCwd:()=>{},sessionId:void 0,setSessionId:()=>{},runtime:"stream",setRuntime:()=>{},backgroundTasks:[],setBackgroundTasks:()=>{},todos:[],setTodos:()=>{},initData:null,setInitData:()=>{},sidebarSections:new Map,setSidebarSection:()=>{},removeSidebarSection:()=>{},closeSidebar:()=>{},tabActions:null,setTabActions:()=>{}});function J(){return(0,i.useContext)(W)}function G(e,t){let{setHeader:s}=J(),n=t?.hideActions;(0,i.useEffect)(()=>{s({title:e,hideActions:n})},[e,n,s])}function B(e){let{setCwd:t}=J();(0,i.useEffect)(()=>{e&&t(e)},[e,t])}function q(e){let{setSessionId:t}=J();(0,i.useEffect)(()=>{e&&t(e)},[e,t])}function H({title:e,onRename:t}){let[s,r]=(0,i.useState)(!1),[a,l]=(0,i.useState)(e),o=(0,i.useRef)(null);if((0,i.useEffect)(()=>{l(e)},[e]),(0,i.useEffect)(()=>{s&&o.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:o,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 K({cwd:e}){let{tabActions:t}=J(),[s,a]=(0,i.useState)(!1),l=(0,i.useCallback)(async()=>{if(t?.openTerminal){a(!0);try{let s=await fetch("/api/terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e})});if(!s.ok)return;let{terminalId:n}=await s.json();t.openTerminal(n)}finally{a(!1)}}},[e,t]);return(0,n.jsx)(g.$,{variant:"ghost",size:"icon",onClick:l,disabled:s,title:"New terminal (Ctrl+`)",children:(0,n.jsx)(r.A,{className:"h-4 w-4"})})}function X({children:e}){let t=(0,i.useRef)(null),[s,r]=(0,i.useState)({title:"Cockpit"}),[o,c]=(0,i.useState)(void 0),[u,m]=(0,i.useState)(void 0),[x,h]=(0,i.useState)([]),[f,p]=(0,i.useState)([]),[j,b]=(0,i.useState)(null),[w,v]=(0,i.useState)(new Map),[y,S]=(0,i.useState)("stream"),[C,$]=(0,i.useState)(null),A=(0,i.useCallback)(e=>{v(t=>{let s=new Map(t);return s.set(e.id,e),s})},[]),R=(0,i.useCallback)(e=>{v(t=>{if(!t.has(e))return t;let s=new Map(t);return s.delete(e),s})},[]),I=(0,i.useCallback)(e=>{r(e)},[]),P=(0,i.useCallback)(e=>{c(e)},[]),_=(0,i.useCallback)(e=>{m(e)},[]),F=(0,i.useCallback)(()=>{t.current?.toggle()},[]),z=(0,i.useCallback)(()=>{t.current?.close()},[]),M=(0,i.useCallback)(e=>{S(e)},[]),O=(0,i.useCallback)(e=>{$(e)},[]);return(0,i.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"b"===e.key&&(e.preventDefault(),F())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[F]),(0,n.jsx)(d,{children:(0,n.jsx)(U.f,{children:(0,n.jsx)(W.Provider,{value:{setHeader:I,cwd:o,setCwd:P,sessionId:u,setSessionId:_,runtime:y,setRuntime:M,backgroundTasks:x,setBackgroundTasks:h,todos:f,setTodos:p,initData:j,setInitData:b,sidebarSections:w,setSidebarSection:A,removeSidebarSection:R,closeSidebar:z,tabActions:C,setTabActions:O},children:(0,n.jsxs)("div",{className:"fixed inset-0 flex",children:[(0,n.jsx)(k.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)(g.$,{variant:"ghost",size:"icon",onClick:F,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)(H,{title:s.title,onRename:s.onRename})]}),!s.hideActions&&(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-auto",children:[o&&(0,n.jsx)(K,{cwd:o}),(0,n.jsx)(N,{}),o&&(0,n.jsx)(T,{todos:f}),o&&(0,n.jsx)(E,{tasks:x}),(0,n.jsx)(D,{})]})]}),(0,n.jsx)("main",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:e})]})]})})})})}},8081:(e,t,s)=>{s.d(t,{AX:()=>c,Mi:()=>u,XR:()=>n,bs:()=>l,iz:()=>d,jp:()=>m,r5:()=>i,w6:()=>r,zQ:()=>o});let n={"200k":{label:"200K",disableEnv:!0,window:2e5},"1m":{label:"1M",disableEnv:!1,window:1e6}},r="200k",a=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",contextSizes:["200k"],contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5,supportsXhigh:!0},{alias:"opus",version:"4.8",modelId:"claude-opus-4-8",displayName:"Opus 4.8",description:"Most capable",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0}];function l(e){if(e)return a.find(t=>t.modelId===e)}function i(e){return a.filter(t=>t.alias===e)}function o(e){return a.find(t=>t.alias===e&&t.isDefault)??i(e)[0]}function c(e){if(!e)return null;let t=e.replace(/\[.*\]$/,"");return"opus"===t||"sonnet"===t||"haiku"===t?o(t)??null:l(t)??null}function d(e){if(!e||"haiku"===e.alias)return[];let t=["low","medium","high"];return e.supportsXhigh&&t.push("xhigh"),t.push("max"),t}function u(e){return e&&"haiku"!==e.alias?e.supportsXhigh?"xhigh":"sonnet"===e.alias?"medium":"high":null}function m(e){if(!e)return{model:void 0,contextSize:r};let t=/\[1m\]$/i.test(e);return{model:e.replace(/\[.*\]$/,"")||void 0,contextSize:t?"1m":"200k"}}},8187:(e,t,s)=>{s.d(t,{N:()=>m});var n=s(95155),r=s(76721),a=s(92571),l=s(20966),i=s(14225),o=s(9107),c=s(12115),d=s(89239),u=s(53972);function m({onSelect:e,onCancel:t,startPath:s}){let[x,h]=(0,c.useState)(s??""),[f,p]=(0,c.useState)([]),[g,j]=(0,c.useState)(!0),[b,w]=(0,c.useState)(""),v=(0,c.useCallback)(async e=>{j(!0),w("");let t=new URLSearchParams({includeFiles:"true"});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"}));w(t.error||"Failed to browse"),p([]);return}let s=await e.json();h(s.path),p(s.entries)}catch{w("Failed to connect"),p([])}finally{j(!1)}},[]);(0,c.useEffect)(()=>{v(s)},[v,s]);let y=/^[a-zA-Z]:[/\\]/.test(x),N=y?x.slice(0,3):"/",k=y?x.slice(0,3):"/",S=(0,u.cs)(x),C=y?S.slice(1):S;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:()=>v(k),className:"shrink-0 text-muted-foreground hover:text-foreground",children:N}),C.map((e,t)=>{let s=k+C.slice(0,t+1).join("/"),a=t===C.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:()=>v(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:[g&&(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"})}),b&&(0,n.jsx)("div",{className:"px-3 py-4 text-sm text-destructive",children:b}),!g&&!b&&x!==k&&(0,n.jsxs)("button",{type:"button",onClick:()=>{v(x.replace(/\/[^/]+\/?$/,"")||k)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left text-muted-foreground",children:[(0,n.jsx)(l.A,{className:"h-4 w-4 shrink-0"}),(0,n.jsx)("span",{children:".."})]}),!g&&!b&&0===f.length&&(0,n.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"Empty directory"}),!g&&!b&&f.map(t=>"directory"===t.type?(0,n.jsxs)("button",{type:"button",onClick:()=>v(t.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)(i.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,n.jsx)("span",{className:"truncate",children:t.name})]},t.path):(0,n.jsxs)("button",{type:"button",onClick:()=>e(t.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)(o.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,n.jsx)("span",{className:"truncate",children:t.name})]},t.path))]}),(0,n.jsx)("div",{className:"flex justify-end",children:(0,n.jsx)(d.$,{type:"button",variant:"outline",size:"sm",onClick:t,children:"Cancel"})})]})}},16617:(e,t,s)=>{s.d(t,{Q:()=>u});var n=s(95155),r=s(9005),a=s(92571),l=s(12115),i=s(89239),o=s(81477),c=s(3765),d=s(513);function u(e){let{timestamp:t,onClose:s}=e,u=(0,c.E2)(),m=e.sessionId??u.sessionId,x=e.cwd??u.cwd,[h,f]=(0,l.useState)([]),[p,g]=(0,l.useState)(""),[j,b]=(0,l.useState)(!0),[w,v]=(0,l.useState)(null),y=(0,l.useRef)(null),N=(0,l.useRef)(new Set);(0,l.useEffect)(()=>{let e=new URLSearchParams({timestamp:String(t)});x&&e.set("cwd",x),fetch(`/api/sessions/${m}/context?${e}`).then(e=>{if(!e.ok)throw Error("Failed to load context");return e.json()}).then(e=>{f(e.messages),g(e.targetMessageId),b(!1)}).catch(e=>{v(e.message),b(!1)})},[m,x,t]),(0,l.useEffect)(()=>{!j&&y.current&&y.current.scrollIntoView({block:"center"})},[j]),(0,l.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),s())};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[s]);let k=(0,l.useCallback)(e=>{e.target===e.currentTarget&&s()},[s]);return(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:k,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:"Message context"}),(0,n.jsx)(i.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:s,children:(0,n.jsx)(r.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:[j&&(0,n.jsx)("div",{className:"flex justify-center py-12",children:(0,n.jsx)(a.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),w&&(0,n.jsx)("div",{className:"text-center text-sm text-red-500 py-12",children:w}),!j&&h.map(e=>(0,n.jsx)("div",{ref:e.id===p?y:void 0,className:e.id===p?"ring-2 ring-primary/50 rounded-lg":void 0,children:(0,n.jsx)(d.s,{message:e,expandedToolIds:N})},e.id))]})]})})}},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
|
+
`,b=l?"overflow-x-hidden":"overflow-x-auto",w=l?" code-block-wrap [&_pre]:whitespace-pre-wrap [&_pre]:[overflow-wrap:anywhere]":"",v=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 ${b} rounded text-[11px] leading-relaxed overflow-y-auto [&_pre]:!bg-transparent [&_pre]:p-2 [&_pre]:m-0${w}${a?"":" max-h-64"}`,children:[(0,n.jsx)("style",{children:j}),(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:y??""}})]}):(0,n.jsx)("pre",{className:`${b} rounded bg-muted/50 p-2 text-[11px] leading-relaxed overflow-y-auto${v}${a?"":" max-h-64"}`,children:i})}},20108:(e,t,s)=>{s.d(t,{t:()=>f});var n=s(95155),r=s(31966),a=s(16449),l=s(49804),i=s(15480),o=s(95660),c=s(92571),d=s(12115),u=s(89239),m=s(42763),x=s(60529),h=s(41158);function f({open:e,onOpenChange:t,onSubmit:s}){let[g,j]=(0,d.useState)("backend"),[b,w]=(0,d.useState)("session"),[v,y]=(0,d.useState)(""),[N,k]=(0,d.useState)(""),[S,C]=(0,d.useState)(null),[E,$]=(0,d.useState)(!1),[A,T]=(0,d.useState)(""),[R,I]=(0,d.useState)(""),[P,_]=(0,d.useState)(""),[F,z]=(0,d.useState)(!1),[M,O]=(0,d.useState)(!1),[L,D]=(0,d.useState)(""),U=()=>{j("backend"),y(""),k(""),C(null),$(!1),T(""),I(""),_(""),z(!1),O(!1),D("")},W=e=>{C(e),j("details")},J=async e=>{if(e.preventDefault(),A.trim()&&R.trim()&&S){O(!0),D("");try{let e=await fetch("/api/git/clone",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:A.trim(),parentPath:R.trim(),folderName:P.trim()||void 0})}),n=await e.json();if(!e.ok)return void D(n.error||"Clone failed");s(n.path,N.trim(),S),U(),t(!1)}catch{D("Failed to connect")}finally{O(!1)}}};return(0,n.jsx)(m.lG,{open:e,onOpenChange:e=>{e||U(),t(e)},children:(0,n.jsxs)(m.Cf,{onClose:()=>{U(),t(!1)},children:[(0,n.jsx)(m.c7,{children:(0,n.jsxs)(m.L3,{className:"flex items-center gap-2",children:["details"===g&&(0,n.jsx)("button",{type:"button",onClick:()=>j("backend"),className:"rounded-md p-1 text-muted-foreground hover:bg-accent hover:text-foreground",title:"Back to backend selection",children:(0,n.jsx)(r.A,{className:"h-4 w-4"})}),"backend"===g?"Choose Backend":"New Session"]})}),"backend"===g&&(0,n.jsxs)("div",{className:"space-y-3 mt-2",children:[(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Pick how Claude runs for this session."}),(0,n.jsx)(p,{icon:(0,n.jsx)(a.A,{className:"h-5 w-5"}),title:"PTY (interactive)",subtitle:"Pseudo-terminal",description:"Spawns a real Claude TUI in a pseudo-terminal. Supports interactive features like slash commands.",onClick:()=>W("pty")}),(0,n.jsx)(p,{icon:(0,n.jsx)(l.A,{className:"h-5 w-5"}),title:"Stream (headless)",subtitle:"Structured output",description:"Runs Claude with structured JSON streaming. Lower overhead, better for automated workflows.",onClick:()=>W("stream")})]}),"details"===g&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex gap-1 border-b mt-2",children:[(0,n.jsx)("button",{type:"button",onClick:()=>w("session"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors ${"session"===b?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"Open Directory"}),(0,n.jsxs)("button",{type:"button",onClick:()=>w("clone"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors flex items-center gap-1.5 ${"clone"===b?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,n.jsx)(i.A,{className:"h-3.5 w-3.5"}),"Clone Repo"]})]}),"session"===b&&(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault(),v.trim()&&S&&(s(v.trim(),N.trim(),S),U(),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)(x.p,{value:v,onChange:e=>y(e.target.value),placeholder:"/home/user/project",required:!0}),(0,n.jsx)(u.$,{type:"button",variant:"outline",size:"icon",onClick:()=>$(!E),title:"Browse directories",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]})]}),E&&(0,n.jsx)(h.K,{onSelect:e=>{y(e),$(!1)},onCancel:()=>$(!1)}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Name (optional)"}),(0,n.jsx)(x.p,{value:N,onChange:e=>k(e.target.value),placeholder:"My Project"})]}),(0,n.jsx)(u.$,{type:"submit",className:"w-full",disabled:!v.trim(),children:"Create Session"})]}),"clone"===b&&(0,n.jsxs)("form",{onSubmit:J,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)(x.p,{value:A,onChange:e=>T(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)(x.p,{value:R,onChange:e=>I(e.target.value),placeholder:"/home/user/projects",required:!0}),(0,n.jsx)(u.$,{type:"button",variant:"outline",size:"icon",onClick:()=>z(!F),title:"Browse directories",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]})]}),F&&(0,n.jsx)(h.K,{onSelect:e=>{I(e),z(!1)},onCancel:()=>z(!1)}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Folder Name (optional)"}),(0,n.jsx)(x.p,{value:P,onChange:e=>_(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)(x.p,{value:N,onChange:e=>k(e.target.value),placeholder:"My Project"})]}),L&&(0,n.jsx)("p",{className:"text-sm text-destructive",children:L}),(0,n.jsx)(u.$,{type:"submit",className:"w-full",disabled:!A.trim()||!R.trim()||M,children:M?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.A,{className:"h-4 w-4 animate-spin mr-2"}),"Cloning..."]}):"Clone & Create Session"})]})]})]})})}function p({icon:e,title:t,subtitle:s,description:r,onClick:a}){return(0,n.jsxs)("button",{type:"button",onClick:a,className:"w-full text-left rounded-lg border border-input bg-card px-4 py-3 transition-colors hover:border-foreground hover:bg-accent",children:[(0,n.jsxs)("div",{className:"flex items-center gap-3 mb-1",children:[(0,n.jsx)("span",{className:"text-foreground",children:e}),(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)("div",{className:"text-sm font-medium",children:t}),(0,n.jsx)("div",{className:"text-xs text-muted-foreground",children:s})]})]}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:r})]})}},22317:(e,t,s)=>{s.d(t,{t:()=>l});var n=s(12115),r=s(8081);let a={diffStyle:"split",dismissKeyboardOnSend:!0,thinkingLevel:"high",bypassAllPermissions:!1,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,modelSlots:{main:"sonnet"},messageStitching:!0,reviewsEnabled:!0,terminalFontSize:14,terminalTheme:"dark",terminalScrollback:1e3};function l(){let[e,t]=(0,n.useState)(a),[s,l]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{fetch("/api/defaults").then(e=>e.json()).then(e=>{if(e.model&&!e.modelSlots&&(e.modelSlots={main:e.model},delete e.model),e.modelSlots?.main?.includes("[")){let t=(0,r.jp)(e.modelSlots.main);e.modelSlots={...e.modelSlots,main:t.model,mainContext:e.modelSlots.mainContext??t.contextSize}}t({...a,...e}),l(!0)}).catch(()=>l(!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}}},30090:(e,t,s)=>{s.d(t,{e:()=>c});var n=s(12115);let r=new Map,a=new Set,l=new Set;function i(){for(let e of a)e()}function o(e){return a.add(e),()=>{a.delete(e)}}function c(e){let t=(0,n.useSyncExternalStore)(o,()=>r.get(e)||l),s=(0,n.useCallback)(t=>{let s=new Set(r.get(e)||new Set);s.has(t)?s.delete(t):s.add(t),r.set(e,s),i()},[e]);return{checkedFiles:t,toggleFile:s,toggleAll:(0,n.useCallback)(t=>{let s=r.get(e)||new Set;r.set(e,s.size===t.length?new Set:new Set(t)),i()},[e]),setCheckedFiles:(0,n.useCallback)(t=>{r.set(e,t),i()},[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,b]=(0,o.useState)(""),[w,v]=(0,o.useState)(!1),[y,N]=(0,o.useState)(""),[k,S]=(0,o.useState)(""),C=(0,o.useCallback)(async e=>{g(!0),b("");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"}));b(t.error||"Failed to browse"),f([]);return}let s=await e.json();x(s.path),f(s.entries)}catch{b("Failed to connect"),f([])}finally{g(!1)}},[]);(0,o.useEffect)(()=>{C()},[C]);let E=async()=>{let e=y.trim();if(e){S("");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"}));S(e.error||"Failed to create folder");return}let n=await t.json();v(!1),N(""),C(n.path)}catch{S("Failed to connect")}}},$=(0,u.cs)(s),A=/^[a-zA-Z]:[/\\]/.test(s),T=A?s.slice(0,3):"/",R=A?s.slice(0,3):"/",I=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:()=>C(R),className:"shrink-0 text-muted-foreground hover:text-foreground",children:T}),I.map((e,t)=>{let s=R+I.slice(0,t+1).join("/"),a=t===I.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:()=>C(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&&!w&&(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:()=>C(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)),w&&(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&&(v(!1),N(""),S(""))},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:[!w&&(0,n.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{v(!0),S("")},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:()=>d,L3:()=>m,c7:()=>u,lG:()=>c});var n=s(95155),r=s(9005),a=s(65738),l=s(12115),i=s(47650),o=s(40980);function c({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,i.createPortal)((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,o.cn)("w-full max-h-full flex flex-col",r||"max-w-lg"),children:s})}),document.body):null}function d({className:e,children:t,...s}){return(0,n.jsxs)("div",{className:(0,o.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 u({className:e,...t}){return(0,n.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...t})}function m({className:e,...t}){return(0,n.jsx)("h2",{className:(0,o.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:()=>f});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);function m(e){return(0,n.jsx)("a",{...e,target:"_blank",rel:"noopener noreferrer"})}let x={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"})})]})},a:m},h={a:m};function f({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],components:h,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:x,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}}},70518:(e,t,s)=>{s.d(t,{Bx:()=>Z,HC:()=>X,MJ:()=>G,MN:()=>D});var n=s(95155),r=s(44923),a=s(87256),l=s(39768),i=s(58274),o=s(9005),c=s(2125),d=s(85618),u=s(88074),m=s(35397),x=s(44354),h=s(83212),f=s(19257),p=s(797),g=s(1275),j=s(64577),b=s(77618),w=s(61665),v=s(73321),y=s(12115),N=s(3765),k=s(8187),S=s(96301),C=s(76721),E=s(40980);let $="cockpit_sidebar_sections";function A({id:e,title:t,badge:s,defaultOpen:r=!0,actions:a,children:l}){let[i,o]=(0,y.useState)(r);return(0,y.useEffect)(()=>{o(function(e,t){try{let t=localStorage.getItem($);if(t){let s=JSON.parse(t);if(e in s)return s[e]}}catch{}return t}(e,r))},[e,r]),(0,n.jsxs)("div",{className:"border-b last:border-b-0",children:[(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{let t=!i;o(t);try{let s=localStorage.getItem($),n=s?JSON.parse(s):{};n[e]=t,localStorage.setItem($,JSON.stringify(n))}catch{}},className:"flex flex-1 items-center gap-1.5 px-3 py-2 text-left text-xs font-semibold uppercase tracking-wide text-muted-foreground hover:bg-accent/50 transition-colors min-w-0",children:[(0,n.jsx)(C.A,{className:(0,E.cn)("h-3 w-3 shrink-0 transition-transform",i&&"rotate-90")}),(0,n.jsx)("span",{className:"flex-1 min-w-0 truncate",children:t}),s&&(0,n.jsx)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] leading-none",children:s})]}),a&&(0,n.jsx)("div",{className:"shrink-0 pr-2 flex items-center",children:a})]}),i&&l]})}var T=s(89239),R=s(42763),I=s(67032),P=s(22317),_=s(89323),F=s(30090),z=s(20108);let M="cockpit_sidebar_width";function O({onResize:e}){let t=(0,y.useRef)(!1),s=(0,y.useRef)(0),r=(0,y.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 L="cockpit_unread_sessions";async function D(e){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:e})}).catch(()=>{})}async function U(e){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:e})}).catch(()=>{})}async function W(){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[]}}let J=new Set;async function G(e){for(let t of(await fetch("/api/reviews/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:e})}).catch(()=>{}),J))t()}async function B(e){await fetch("/api/reviews/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:e})}).catch(()=>{})}async function q(){try{let e=await fetch("/api/reviews/pinned");if(!e.ok)return[];let t=await e.json();return Array.isArray(t.pinned)?t.pinned:[]}catch{return[]}}let H=/^Review:\s*(?:(.+?)\/)?(.+?)#(\d+)(?:\s+-\s+(.*))?$/;function K(){try{let e=localStorage.getItem(L);if(e)return new Set(JSON.parse(e))}catch{}return new Set}function X(e){let t=K();t.delete(e),localStorage.setItem(L,JSON.stringify([...t]))}function Y({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:g}=(0,a.gl)({id:e.id}),j={transform:l.Ks.Transform.toString(f),transition:p,opacity:g?.5:1};return(0,n.jsxs)("div",{ref:h,style:j,role:"button",tabIndex:0,onClick:()=>r(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),r(e))},className:(0,E.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:(e.pendingRequestCount??0)>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-blue-500/20 animate-ping"}),(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-blue-500",title:"Awaiting your input","data-testid":"status-pending"})]}):"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","data-testid":"status-running"})]}):s?(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-green-500",title:"New response","data-testid":"status-unread"}):(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-muted-foreground/30","data-testid":"status-idle"})}),(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)(T.$,{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 Z=(0,y.forwardRef)(function(e,t){let s=(0,v.useRouter)(),l=(0,v.usePathname)(),{send:i,subscribe:m,connected:x}=(0,_.h)(),{sidebarSections:h,cwd:f,sessionId:p}=(0,N.E2)(),{settings:g}=(0,P.t)(),[j,b]=(0,y.useState)(!1),[w,k]=(0,y.useState)([]),[S,C]=(0,y.useState)(new Set),[$,R]=(0,y.useState)(!1),[I,F]=(0,y.useState)(288);(0,y.useEffect)(()=>{F(function(){try{let e=localStorage.getItem(M);if(e){let t=parseInt(e,10);if(t>=200&&t<=480)return t}}catch{}return 288}())},[]),(0,y.useEffect)(()=>{s.prefetch("/sessions/_")},[s]);let J=(0,y.useCallback)(e=>{F(t=>{let s=Math.max(200,Math.min(480,t+e));return localStorage.setItem(M,String(s)),s})},[]),G=(0,y.useRef)(new Map),B=(0,r.FR)((0,r.MS)(r.AN,{activationConstraint:{delay:150,tolerance:5}}));(0,y.useImperativeHandle)(t,()=>({toggle:()=>b(e=>!e),close:()=>b(!1)}),[]);let q=(0,y.useCallback)(()=>b(!1),[]),H=l.startsWith("/sessions/")?l.split("/")[2]:null;(0,y.useEffect)(()=>m(e=>{if("session:status"===e.type){let{sessionId:t,status:s}=e,n=new Set(w.map(e=>e.id));if(!n.has(t))return void console.log("[sidebar] status update for unknown session",t.slice(0,8),"known:",[...n].map(e=>e.slice(0,8)));console.log("[sidebar] status updated",t.slice(0,8),"->",s);let r=G.current.get(t);if(G.current.set(t,s),"running"===r&&"idle"===s&&H!==t){let e;(e=K()).add(t),localStorage.setItem(L,JSON.stringify([...e])),C(K())}k(e=>e.map(e=>e.id===t?{...e,status:s}:e))}else if("session:pending"===e.type){let{sessionId:t,count:s}=e;if(!new Set(w.map(e=>e.id)).has(t))return void console.log("[sidebar] pending update for unknown session",t.slice(0,8));console.log("[sidebar] pending updated",t.slice(0,8),"->",s),k(e=>e.map(e=>e.id===t?{...e,pendingRequestCount:s}:e))}else if("session:info_updated"===e.type){let{sessionId:t,info:s}=e;k(e=>e.map(e=>e.id===t?{...e,name:s.name,model:s.model}:e))}}),[m,H,w]);let Z=(0,y.useCallback)(async()=>{C(K());let e=await W();if(0===e.length)return void k([]);let t=e.join(","),s=await fetch(`/api/sessions/by-ids?ids=${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).catch(()=>null);if(!s)return;let n=(s.sessions||[]).filter(e=>!e.cwd.endsWith(".cockpit/reviews")),r=new Set(Array.isArray(s.foundIds)?s.foundIds:n.map(e=>e.id)),a=new Map(n.map(e=>[e.id,e])),l=[],o=[];for(let t of e){let e=a.get(t);e&&(l.push(e),o.push(t))}for(let t of(e.some(e=>!r.has(e))&&fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:o})}).catch(()=>{}),l))G.current.has(t.id)||G.current.set(t.id,t.status);k(l),l.length>0&&i({type:"session:subscribe",sessionIds:l.map(e=>e.id)})},[i]),ea=(0,y.useRef)(!1);(0,y.useEffect)(()=>{ea.current||(ea.current=!0,Z())},[Z]),(0,y.useEffect)(()=>{(j||x)&&Z()},[j,x,l,Z]);let el=async(e,t)=>{e.stopPropagation(),(await fetch(`/api/sessions/${t}`,{method:"DELETE"})).ok&&(await U(t),X(t),C(K()),k(e=>e.filter(e=>e.id!==t)),H===t&&s.push("/"))},ei=async(e,t)=>{e.stopPropagation(),await U(t),X(t),C(K()),k(e=>e.filter(e=>e.id!==t)),H===t&&s.push("/")},eo=(0,y.useCallback)(e=>{let{active:t,over:s}=e;if(!s||t.id===s.id)return;let n=w.findIndex(e=>e.id===t.id),r=w.findIndex(e=>e.id===s.id);if(n<0||r<0)return;let l=(0,a.be)(w,n,r);k(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))},[w]),ec=async(e,t,n)=>{let r=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,name:t||void 0,runtime:n})});if(r.ok){let t=await r.json();await D(t.sessionId),await Z(),q(),s.push(`/sessions/${t.sessionId}?cwd=${encodeURIComponent(e)}`)}},ed=e=>{X(e.id),C(K()),q();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,E.cn)("fixed inset-0 z-40 bg-black/50 transition-opacity md:hidden",j?"opacity-100":"opacity-0 pointer-events-none"),onMouseDown:q}),(0,n.jsxs)("div",{className:(0,E.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",j?"translate-x-0":"-translate-x-full"),style:{width:I},children:[(0,n.jsx)(O,{onResize:J}),(0,n.jsx)("div",{className:"flex items-center justify-end px-3 py-1 border-b md:hidden",children:(0,n.jsx)(T.$,{variant:"ghost",size:"icon",onClick:q,children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[(0,n.jsx)(A,{id:"sessions",title:"Sessions",badge:w.length>0?String(w.length):void 0,actions:(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)(T.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>R(!0),title:"New session",children:(0,n.jsx)(c.A,{className:"h-3.5 w-3.5"})}),(0,n.jsx)(T.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>{q(),s.push("/")},title:"All sessions",children:(0,n.jsx)(d.A,{className:"h-3 w-3"})})]}),children:0===w.length?(0,n.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"No active sessions."}):(0,n.jsx)(r.Mp,{sensors:B,onDragEnd:eo,children:(0,n.jsx)(a.gB,{items:w.map(e=>e.id),strategy:a._G,children:w.map(e=>(0,n.jsx)(Y,{session:e,isCurrent:H===e.id,isUnread:S.has(e.id),onNavigate:ed,onAction:(e,t)=>"running"===t.status?el(e,t.id):ei(e,t.id)},e.id))})})}),(0,n.jsx)(ee,{sections:h,exclude:Q}),f&&!h.has("git-changes")&&(0,n.jsx)(es,{cwd:f,sessionId:p}),f&&!h.has("file-tree")&&(0,n.jsx)(et,{cwd:f}),g.reviewsEnabled&&(0,n.jsx)(V,{onNavigate:q}),g.reviewsEnabled&&(0,n.jsx)(A,{id:"pr-files",title:h.get("pr-files")?.title||"PR Files",badge:h.get("pr-files")?.badge,defaultOpen:!1,children:h.has("pr-files")?h.get("pr-files").content:(0,n.jsx)("div",{className:"px-3 py-3 text-xs text-muted-foreground",children:"No PR open"})})]}),(0,n.jsxs)("div",{className:"border-t px-3 py-2 flex items-center justify-end gap-2",children:[(0,n.jsx)(en,{onClick:()=>{q(),s.push("/jobs")}}),(0,n.jsx)(er,{onClick:()=>{q(),s.push("/inbox")}}),(0,n.jsx)(T.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>{sessionStorage.removeItem("settings-scroll"),q(),s.push("/settings")},title:"Settings",children:(0,n.jsx)(u.A,{className:"h-4 w-4"})})]})]}),(0,n.jsx)(z.t,{open:$,onOpenChange:R,onSubmit:ec})]})});function V({onNavigate:e}){let t=(0,v.useRouter)(),s=(0,v.usePathname)(),{subscribe:r,send:a}=(0,_.h)(),[l,i]=(0,y.useState)([]),c=(0,y.useCallback)(async()=>{let e=await q();if(0===e.length)return void i([]);let t=await fetch(`/api/sessions/by-ids?ids=${encodeURIComponent(e.join(","))}`).then(e=>e.ok?e.json():null).catch(()=>null);if(!t)return;let s=t.sessions||[],n=new Set(Array.isArray(t.foundIds)?t.foundIds:s.map(e=>e.id)),r=new Map(s.map(e=>[e.id,e])),l=[],o=[];for(let t of e){let e=r.get(t);if(e){let s=function(e){let t=H.exec(e.name);return t?{id:e.id,owner:t[1]||"",repo:t[2],number:parseInt(t[3],10),title:t[4]||"",status:e.status,pendingRequestCount:e.pendingRequestCount??0}:null}(e);s&&l.push(s),o.push(t)}}e.some(e=>!n.has(e))&&fetch("/api/reviews/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:o})}).catch(()=>{}),i(l),l.length>0&&a({type:"session:subscribe",sessionIds:l.map(e=>e.id)})},[a]);(0,y.useEffect)(()=>{c()},[s,c]),(0,y.useEffect)(()=>{var e;return e=()=>c(),J.add(e),()=>{J.delete(e)}},[c]),(0,y.useEffect)(()=>r(e=>{if("session:status"===e.type){let{sessionId:t,status:s}=e;i(e=>e.map(e=>e.id===t?{...e,status:s}:e))}else if("session:pending"===e.type){let{sessionId:t,count:s}=e;i(e=>e.map(e=>e.id===t?{...e,pendingRequestCount:s}:e))}}),[r]);let d=s=>{e(),s.owner?t.push(`/reviews/${s.owner}/${s.repo}/${s.number}`):t.push("/reviews")};return(0,n.jsx)(A,{id:"reviews",title:"Reviews",badge:l.length>0?String(l.length):void 0,actions:(0,n.jsx)(T.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>{e(),t.push("/reviews")},title:"All reviews",children:(0,n.jsx)(m.A,{className:"h-3 w-3"})}),children:0===l.length?(0,n.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"No pinned reviews."}):l.map(e=>(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>d(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),d(e))},className:"w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent/50 transition-colors cursor-pointer",children:[(0,n.jsx)("div",{className:"shrink-0 relative flex items-center justify-center h-4 w-4",children:e.pendingRequestCount>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-blue-500/20 animate-ping"}),(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-blue-500",title:"Awaiting input"})]}):"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"})]}):(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.jsxs)("div",{className:"truncate font-medium",children:[e.repo,"#",e.number]}),e.title&&(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:e.title})]}),(0,n.jsx)(T.$,{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=>{var s;return s=e.id,void(t.stopPropagation(),i(e=>e.filter(e=>e.id!==s)),B(s))},title:"Remove",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]},e.id))})}let Q=new Set(["pr-files"]);function ee({sections:e,exclude:t}){let s=(0,y.useMemo)(()=>Array.from(e.values()).filter(e=>!t?.has(e.id)).sort((e,t)=>(e.order??50)-(t.order??50)),[e,t]);return(0,n.jsx)(n.Fragment,{children:s.map(e=>(0,n.jsx)(A,{id:e.id,title:e.title,badge:e.badge,actions:e.actions,children:e.content},e.id))})}function et({cwd:e}){let t=(0,v.useRouter)(),{tabActions:s,closeSidebar:r}=(0,N.E2)(),[a,l]=(0,y.useState)(!1),i=(0,y.useCallback)(n=>{s?s.openFile(n):t.push(`/files?cwd=${encodeURIComponent(e)}&file=${encodeURIComponent(n)}`),window.innerWidth<768&&r()},[t,e,s,r]),o=(0,y.useCallback)(e=>{i(e),l(!1)},[i]);return(0,n.jsxs)(A,{id:"files",title:"Session Files",defaultOpen:!1,actions:(0,n.jsx)("button",{onClick:()=>l(!0),title:"Open file",className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground",children:(0,n.jsx)(c.A,{className:"h-3.5 w-3.5"})}),children:[(0,n.jsx)(S.h,{cwd:e,selectedFile:null,onSelectFile:i}),(0,n.jsx)(R.lG,{open:a,onOpenChange:l,children:(0,n.jsxs)(R.Cf,{className:"sm:max-w-lg",children:[(0,n.jsx)(R.c7,{children:(0,n.jsx)(R.L3,{children:"Open File"})}),(0,n.jsx)(k.N,{startPath:e,onSelect:o,onCancel:()=>l(!1)})]})})]})}function es({cwd:e,sessionId:t}){let s=(0,v.useRouter)(),r=(0,v.usePathname)(),{tabActions:a}=(0,N.E2)(),{subscribe:l}=(0,_.h)(),{checkedFiles:i,toggleFile:o}=(0,F.e)(e),[c,d]=(0,y.useState)(""),[u,m]=(0,y.useState)(null),[b,w]=(0,y.useState)([]),k=(0,y.useRef)(e);k.current=e;let S=(0,y.useCallback)(()=>{fetch(`/api/git/status?cwd=${encodeURIComponent(k.current)}`).then(e=>{if(!e.ok)throw Error("Not a git repository");return e.json()}).then(e=>{w(e.files||[]),d(e.branch||""),m(null)}).catch(e=>{w([]),d(""),m(e instanceof Error?e.message:"Failed to load")})},[]);(0,y.useEffect)(()=>{S()},[e,r,S]),(0,y.useEffect)(()=>l(e=>{"session:fs_changed"===e.type&&S()}),[l,S]);let C=t?`&sessionId=${encodeURIComponent(t)}`:"",$=b.reduce((e,t)=>e+t.additions,0),T=b.reduce((e,t)=>e+t.deletions,0);return(0,n.jsx)(A,{id:"session-changes",title:"Session Changes",badge:b.length>0?String(b.length):void 0,defaultOpen:!1,children:u?(0,n.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:u}):0===b.length?(0,n.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"Working tree clean"}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"px-3 py-1.5 text-xs text-muted-foreground flex items-center gap-2 border-b",children:[c&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{children:"Branch:"}),(0,n.jsx)("span",{className:"font-mono font-bold text-foreground",children:c}),(0,n.jsx)("span",{className:"mx-0.5",children:"\xb7"})]}),(0,n.jsxs)("span",{children:[b.length," changed"]}),$>0&&(0,n.jsxs)("span",{className:"text-green-500",children:["+",$]}),T>0&&(0,n.jsxs)("span",{className:"text-red-500",children:["-",T]}),(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)("button",{type:"button",title:"Open commit view",onClick:()=>{a?a.openChanges():s.push(`/changes?cwd=${encodeURIComponent(e)}${C}`)},className:"hover:text-foreground transition-colors",children:(0,n.jsx)(g.A,{className:"h-3 w-3"})})]}),b.map(t=>(0,n.jsxs)("div",{className:"flex items-center gap-1 px-3 py-1 text-xs hover:bg-accent/50 transition-colors",children:[(0,n.jsx)("button",{type:"button",role:"checkbox","aria-checked":i.has(t.path),onClick:e=>{e.stopPropagation(),o(t.path)},className:(0,E.cn)("h-3.5 w-3.5 shrink-0 rounded-full border flex items-center justify-center transition-colors",i.has(t.path)?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/30 bg-transparent hover:border-muted-foreground/50"),children:i.has(t.path)&&(0,n.jsx)(j.A,{className:"h-2 w-2",strokeWidth:3})}),(0,n.jsxs)("button",{type:"button",onClick:()=>{a?a.openDiff(t.path):s.push(`/changes?cwd=${encodeURIComponent(e)}${C}`)},className:"flex items-center gap-2 flex-1 min-w-0 text-left",children:[function(e){switch(e){case"added":case"untracked":return(0,n.jsx)(x.A,{className:"h-3.5 w-3.5 text-green-500"});case"deleted":return(0,n.jsx)(h.A,{className:"h-3.5 w-3.5 text-red-500"});case"renamed":return(0,n.jsx)(f.A,{className:"h-3.5 w-3.5 text-blue-500"});default:return(0,n.jsx)(p.A,{className:"h-3.5 w-3.5 text-yellow-500"})}}(t.status),(0,n.jsx)("span",{className:"font-mono truncate flex-1 min-w-0",children:t.path}),(0,n.jsxs)("span",{className:"shrink-0 flex gap-1 text-[10px] font-mono",children:[t.additions>0&&(0,n.jsxs)("span",{className:"text-green-500",children:["+",t.additions]}),t.deletions>0&&(0,n.jsxs)("span",{className:"text-red-500",children:["-",t.deletions]})]})]})]},t.path))]})})}function en({onClick:e}){let{count:t}=(0,I.wA)();return(0,n.jsxs)(T.$,{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)(b.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"})]})}function er({onClick:e}){let[t,s]=(0,y.useState)(0),r=(0,v.usePathname)();return(0,y.useEffect)(()=>{let e=()=>{fetch("/api/inbox?count=true").then(e=>e.json()).then(e=>s(e.unread||0)).catch(()=>{})};e();let t=setInterval(e,15e3);return()=>clearInterval(t)},[r]),(0,n.jsxs)(T.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground relative",onClick:e,title:"Inbox",children:[(0,n.jsx)(w.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-blue-500"})]})}},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)(500),u=(0,r.useRef)([]),m=(0,r.useRef)(!1),x=(0,r.useRef)(!0),h=(0,r.useRef)(void 0),f=(0,r.useRef)(null),p=(0,r.useRef)(void 0),g=(0,r.useRef)(!1),j=(0,r.useRef)(void 0),b=(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)},[]),w=(0,r.useCallback)(async()=>{if(m.current||i.current)return void console.log(`[ws] connect skipped (connecting=${m.current}, hasWs=${!!i.current})`);m.current=!0;let e=performance.now();console.log("[ws] connecting...");let t=f.current;if(t)console.log("[ws] using cached token");else try{let s=await fetch("/api/auth/ws-token");if(!s.ok){console.warn(`[ws] ws-token fetch failed (${s.status})`),m.current=!1,b();return}t=(await s.json()).token,console.log(`[ws] token fetched in ${(performance.now()-e).toFixed(0)}ms`)}catch(e){console.warn("[ws] ws-token fetch error:",e),m.current=!1,b();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=${t}`);i.current=r,m.current=!1,r.onopen=()=>{for(let n of(console.log(`[ws] connected in ${(performance.now()-e).toFixed(0)}ms`),s(!0),f.current=t,d.current=500,u.current))r.send(JSON.stringify(n));u.current=[]},r.onmessage=e=>{let t=JSON.parse(e.data);for(let e of("pong"===t.type&&(clearTimeout(p.current),g.current=!1),"message:ack"===t.type&&y.current.length>0&&(y.current=[]),o.current))e(t)},r.onclose=e=>{console.log(`[ws] closed (code=${e.code}), reconnecting immediately`),s(!1),i.current===r&&(i.current=null),y.current.length>0&&(u.current.push(...y.current),y.current=[]),(1008===e.code||4401===e.code)&&(f.current=null),d.current=500,h.current?.()},r.onerror=()=>{r.close()}},[b]);h.current=w,(0,r.useEffect)(()=>(x.current=!0,w(),()=>{x.current=!1,clearTimeout(c.current),clearInterval(j.current),i.current&&(i.current.onclose=null,i.current.close(),i.current=null),m.current=!1}),[w]);let v=(0,r.useCallback)(()=>{let e=i.current;e&&(e.onclose=null,e.onerror=null,e.close(),i.current=null),s(!1),d.current=500,h.current?.()},[]);(0,r.useEffect)(()=>{let e=()=>{clearInterval(j.current),"visible"===document.visibilityState&&(j.current=setInterval(()=>{if(!i.current&&!m.current){console.log("[ws] health: no connection, forcing reconnect"),clearTimeout(c.current),d.current=500,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`),v();return}if(!g.current){g.current=!0;try{e.send(JSON.stringify({type:"ping"}))}catch{g.current=!1,v();return}clearTimeout(p.current),p.current=setTimeout(()=>{g.current=!1,v()},2e3)}}},3e3))},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=500,h.current?.();return}let t=i.current;if(t){if(t.readyState!==WebSocket.OPEN)return void v();if(!g.current){g.current=!0;try{t.send(JSON.stringify({type:"ping"}))}catch{g.current=!1,v();return}clearTimeout(p.current),p.current=setTimeout(()=>{g.current=!1,v()},2e3)}}}else clearInterval(j.current)};return document.addEventListener("visibilitychange",t),e(),()=>{document.removeEventListener("visibilitychange",t),clearInterval(j.current),clearTimeout(p.current)}},[v]);let y=(0,r.useRef)([]),N=(0,r.useCallback)(e=>{i.current?.readyState===WebSocket.OPEN?("message:send"===e.type&&y.current.push(e),i.current.send(JSON.stringify(e))):u.current.push(e)},[]),k=(0,r.useCallback)(e=>(o.current.add(e),()=>{o.current.delete(e)}),[]);return(0,n.jsx)(a.Provider,{value:{connected:t,send:N,subscribe:k},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"})]})})}},96301:(e,t,s)=>{s.d(t,{h:()=>j});var n=s(95155),r=s(92571),a=s(12363),l=s(76721),i=s(95660),o=s(14225),c=s(9107),d=s(12115),u=s(89323),m=s(40980);let x=new Map;async function h(e,t=!1){if(!t){let t=x.get(e);if(t)return t}let s=new URLSearchParams({path:e,includeFiles:"true",showHidden:"true"}),n=await fetch(`/api/filesystem/browse?${s}`);if(!n.ok)return x.get(e)||[];let r=((await n.json()).entries||[]).map(e=>({name:e.name,path:e.path,type:e.type}));return x.set(e,r),r}let f=new Map;function p(e){let t=f.get(e);return t||(t=new Set,f.set(e,t)),t}function g({node:e,depth:t,selectedFile:s,onSelectFile:u,expandedSet:f,onToggleExpand:p,refreshTick:j}){let b="directory"===e.type,w=f.has(e.path),[v,y]=(0,d.useState)(x.get(e.path)||[]),[N,k]=(0,d.useState)(!1),S=(0,d.useCallback)(()=>{b?(p(e.path),f.has(e.path)||x.has(e.path)||(k(!0),h(e.path).then(e=>{y(e),k(!1)}))):u(e.path)},[b,e.path,p,u,f]);return(0,d.useEffect)(()=>{if(b&&w&&0===v.length&&!N){let t=x.get(e.path);t?y(t):(k(!0),h(e.path).then(e=>{y(e),k(!1)}))}},[b,w,v.length,N,e.path]),(0,d.useEffect)(()=>{if(!b||!w||0===j)return;let t=x.get(e.path);t&&y(t)},[b,w,e.path,j]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:(0,m.cn)("flex items-center gap-1 px-2 py-1 text-sm cursor-pointer hover:bg-muted/50",!b&&s===e.path&&"bg-muted"),style:{paddingLeft:`${16*t+8}px`},onClick:S,children:[b?(0,n.jsxs)(n.Fragment,{children:[N?(0,n.jsx)(r.A,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground"}):w?(0,n.jsx)(a.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,n.jsx)(l.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),w?(0,n.jsx)(i.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"w-3.5 shrink-0"}),(0,n.jsx)(c.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]}),(0,n.jsx)("span",{className:"font-mono text-xs truncate",children:e.name})]}),b&&w&&v.map(e=>(0,n.jsx)(g,{node:e,depth:t+1,selectedFile:s,onSelectFile:u,expandedSet:f,onToggleExpand:p,refreshTick:j},e.path))]})}function j({cwd:e,selectedFile:t,onSelectFile:s}){let[a,l]=(0,d.useState)(x.get(e)||[]),[i,o]=(0,d.useState)(0===a.length),[c,m]=(0,d.useState)(()=>p(e)),[b,w]=(0,d.useState)(0),v=(0,d.useRef)(e),y=(0,d.useRef)(c);y.current=c;let{subscribe:N}=(0,u.h)();(0,d.useEffect)(()=>{v.current=e,m(p(e));let t=x.get(e);t?(l(t),o(!1)):(o(!0),h(e).then(t=>{v.current===e&&(l(t),o(!1))}))},[e]),(0,d.useEffect)(()=>{let e=!0,t=async()=>{let t=[v.current,...y.current],s=!1;for(let n of t){if(!e)return;let t=x.get(n),r=await h(n,!0);if(!e)return;(!t||function(e,t){if(e.length!==t.length)return!0;for(let s=0;s<e.length;s++)if(e[s].path!==t[s].path||e[s].type!==t[s].type)return!0;return!1}(t,r))&&(s=!0)}s&&e&&(l(x.get(v.current)||[]),w(e=>e+1))},s=N(e=>{"session:fs_changed"===e.type&&t()});return()=>{e=!1,s()}},[N]);let k=(0,d.useCallback)(t=>{m(s=>{let n=new Set(s);return n.has(t)?n.delete(t):n.add(t),f.set(e,n),n})},[e]);return i?(0,n.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,n.jsx)(r.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):0===a.length?(0,n.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:"Empty directory"}):(0,n.jsx)("div",{className:"py-1",children:a.map(e=>(0,n.jsx)(g,{node:e,depth:0,selectedFile:t,onSelectFile:s,expandedSet:c,onToggleExpand:k,refreshTick:b},e.path))})}}}]);
|