@alexjbarnes/cockpit 0.1.1 → 0.2.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 +12 -0
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +51 -3
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/routes-manifest.json +76 -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 +9 -9
- 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/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)/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/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]/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/mcp-discover/route.js +1 -1
- package/.next/server/app/api/jobs/route.js +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/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]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/search/route.js +1 -1
- 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/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/skills/[name]/route.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/usage/route.js +1 -1
- 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/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.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 +12 -0
- package/.next/server/chunks/1659.js +1 -1
- package/.next/server/chunks/1941.js +2 -2
- package/.next/server/chunks/1979.js +2 -2
- package/.next/server/chunks/2408.js +1 -1
- package/.next/server/chunks/2444.js +1 -1
- package/.next/server/chunks/3108.js +1 -0
- package/.next/server/chunks/4445.js +1 -1
- package/.next/server/chunks/{6142.js → 5920.js} +1 -1
- package/.next/server/chunks/5965.js +1 -1
- package/.next/server/chunks/{9012.js → 7627.js} +3 -3
- 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/brzairTqHmHwvfgKpdkYX/_buildManifest.js +1 -0
- package/.next/static/chunks/11242-d240a18d4e59390b.js +199 -0
- package/.next/static/chunks/3765-a4c7a493ec83f918.js +20 -0
- package/.next/static/chunks/{80392.bca860d8b5972706.js → 58011.3de5770e8b0d8759.js} +1 -1
- package/.next/static/chunks/{69427.755a0a4013596f7a.js → 69427.0f379c6bdea95405.js} +1 -1
- package/.next/static/chunks/75866-76a3987dda1295ae.js +1 -0
- package/.next/static/chunks/93273-87110c1449e1e7fd.js +6 -0
- package/.next/static/chunks/app/(app)/agents/[name]/{page-44c5691c80f17d38.js → page-3ec9a3460e8e9006.js} +2 -2
- package/.next/static/chunks/app/(app)/agents/page-d6d504e7d7757ea2.js +1 -0
- package/.next/static/chunks/app/(app)/changes/page-a09bf4742aa8b5ce.js +1 -0
- package/.next/static/chunks/app/(app)/claude-md/edit/page-ab42921ba2618dc3.js +1 -0
- package/.next/static/chunks/app/(app)/claude-md/page-c4c8b20aa002a94a.js +1 -0
- package/.next/static/chunks/app/(app)/commands/[name]/{page-6ef571e73b105248.js → page-2124ffed9a4e95a3.js} +2 -2
- package/.next/static/chunks/app/(app)/commands/page-d5bf1bddd17e31dd.js +1 -0
- package/.next/static/chunks/app/(app)/files/page-04e4e5bf1ca89945.js +1 -0
- package/.next/static/chunks/app/(app)/hooks/[event]/{page-03f85595561b068a.js → page-d988623e739973b5.js} +2 -2
- package/.next/static/chunks/app/(app)/hooks/page-818242d7db432578.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/[id]/page-c33dc94e309ff117.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-ca3e1724b5072734.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-3a1c927d76333bf0.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/page-8e698e00b90968b0.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-f942df0b7c1d280b.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/page-7a88cc6ac34550c2.js +1 -0
- package/.next/static/chunks/app/(app)/layout-81c1899969de11e6.js +1 -0
- package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-3541bf3ccdef9145.js +1 -0
- package/.next/static/chunks/app/(app)/mcp-servers/page-3927dfd03d921040.js +1 -0
- package/.next/static/chunks/app/(app)/page-594120e0ea1df527.js +1 -0
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-74c23b04f5c3ff88.js +13 -0
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/page-c7473a899c7c59c3.js +1 -0
- package/.next/static/chunks/app/(app)/reviews/page-0e6e7395a4f62b50.js +1 -0
- package/.next/static/chunks/app/(app)/sessions/[id]/page-435e9fb4dd34007d.js +1 -0
- package/.next/static/chunks/app/(app)/settings/notifications/page-a28db2ebc9fd0de8.js +1 -0
- package/.next/static/chunks/app/(app)/settings/page-f8ada7997c0d5b03.js +1 -0
- package/.next/static/chunks/app/(app)/skills/[name]/{page-e6572062a6ad90df.js → page-5dbe1e7682880145.js} +2 -2
- package/.next/static/chunks/app/(app)/skills/page-fd1986ad7e060f4d.js +1 -0
- package/.next/static/chunks/app/_global-error/page-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/agents/[name]/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/agents/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/auth/check/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/auth/setup/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/auth/ws-token/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/btw/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/claude-md/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/commands/[name]/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/commands/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/defaults/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/filesystem/browse/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/filesystem/files/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/filesystem/mkdir/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/filesystem/read/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/git/clone/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/git/commit/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/git/discard/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/git/generate-message/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/git/push/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/file-content/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/orgs/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/checks/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/diff/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/review/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/prs/view/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/repos/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/github/review-session/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/health/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/hooks/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/inbox/[id]/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/inbox/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/trigger/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/jobs/mcp-discover/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/jobs/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/jobs/status/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/[name]/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/notifications/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/notifications/test/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/reviews/pinned/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/mcp/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/search/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/bulk-delete/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/by-ids/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/group/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/pinned/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/skills/[name]/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/skills/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/usage/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/version/cockpit/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/app/api/version/route-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-65c661eddfc65f5b.js +1 -0
- package/.next/static/chunks/{webpack-2a5835e108df6f34.js → webpack-3461a05957b13f46.js} +1 -1
- package/.next/static/css/f04f303b5708dd90.css +1 -0
- package/README.md +14 -4
- package/dist/server.js +38 -1
- package/dist/src/server/defaults.js +2 -0
- package/dist/src/server/inbox.js +132 -0
- package/dist/src/server/job-scheduler.js +152 -40
- package/dist/src/server/job-storage.js +4 -7
- package/dist/src/server/notification-settings.js +39 -0
- package/dist/src/server/notifications.js +125 -0
- package/dist/src/server/session-manager.js +118 -15
- package/dist/src/server/transcript.js +271 -6
- package/dist/src/server/ws-handler.js +16 -13
- package/package.json +1 -1
- package/.next/server/chunks/8346.js +0 -1
- package/.next/static/V2EfPtTUC96VYyF12K0om/_buildManifest.js +0 -1
- package/.next/static/chunks/22086-756d490e3320ad15.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/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/page-e8a506da73d1c280.js +0 -1
- package/.next/static/chunks/app/(app)/files/page-67a95d351a685d79.js +0 -1
- 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/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/css/1e1239c76b265910.css +0 -1
- /package/.next/static/{V2EfPtTUC96VYyF12K0om → brzairTqHmHwvfgKpdkYX}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[58179],{8081:(e,s,t)=>{"use strict";t.d(s,{AX:()=>r,Mi:()=>d,bs:()=>a,iz:()=>o,r5:()=>l,zQ:()=>i});let n=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",supportsExtendedContext:!1,contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",supportsExtendedContext:!0,contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Most capable",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0}];function a(e){if(e)return n.find(s=>s.modelId===e)}function l(e){return n.filter(s=>s.alias===e)}function i(e){return n.find(s=>s.alias===e&&s.isDefault)??l(e)[0]}function r(e){if(!e)return null;let s=e.replace(/\[.*\]$/,"");return"opus"===s||"sonnet"===s||"haiku"===s?i(s)??null:a(s)??null}function o(e){if(!e||"haiku"===e.alias)return[];let s=["low","medium","high"];return"opus"===e.alias&&"4.7"===e.version&&s.push("xhigh"),s.push("max"),s}function d(e){return e&&"haiku"!==e.alias?"opus"===e.alias&&"4.7"===e.version?"xhigh":"sonnet"===e.alias?"medium":"high":null}},10895:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>w});var n=t(95155),a=t(9005),l=t(31966),i=t(2125),r=t(73321),o=t(12115),d=t(3765),c=t(41158),u=t(89239),m=t(81477),x=t(60529),h=t(8081),p=t(84949);let f=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],j=["Read","Write","Edit","Bash","Bash git","Bash npm","Bash ls","Grep","Glob","Agent","WebFetch","WebSearch"],y={low:"Low",medium:"Medium",high:"High",xhigh:"XHigh",max:"Max"},g=(0,h.zQ)("sonnet")?.modelId||"",v="w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring";function b({checked:e,onChange:s}){return(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":e,onClick:()=>s(!e),className:`relative inline-flex h-5 w-9 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors ${e?"bg-primary":"bg-muted"}`,children:(0,n.jsx)("span",{className:`pointer-events-none inline-block h-4 w-4 rounded-full bg-background shadow-lg transition-transform ${e?"translate-x-4":"translate-x-0"}`})})}function N({value:e,onChange:s,onRemove:t,canRemove:l}){let i="simple"===e.type;return(0,n.jsxs)("div",{className:"border rounded-md p-3 space-y-2",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(u.$,{variant:i?"default":"outline",size:"sm",onClick:()=>s({type:"simple",frequency:"daily",time:"09:00"}),children:"Simple"}),(0,n.jsx)(u.$,{variant:i?"outline":"default",size:"sm",onClick:()=>s({type:"cron",expression:"0 9 * * *"}),children:"Cron"})]}),l&&(0,n.jsx)("button",{type:"button",onClick:t,className:"text-muted-foreground hover:text-destructive",children:(0,n.jsx)(a.A,{className:"h-4 w-4"})})]}),i?(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsxs)("select",{value:e.frequency,onChange:t=>s({...e,frequency:t.target.value}),className:v,children:[(0,n.jsx)("option",{value:"hourly",children:"Hourly"}),(0,n.jsx)("option",{value:"daily",children:"Daily"}),(0,n.jsx)("option",{value:"weekly",children:"Weekly"}),(0,n.jsx)("option",{value:"monthly",children:"Monthly"})]}),"hourly"!==e.frequency&&(0,n.jsx)(x.p,{type:"time",value:e.time||"09:00",onChange:t=>s({...e,time:t.target.value})}),"weekly"===e.frequency&&(0,n.jsx)("select",{value:e.dayOfWeek??1,onChange:t=>s({...e,dayOfWeek:Number(t.target.value)}),className:v,children:f.map((e,s)=>(0,n.jsx)("option",{value:s,children:e},e))}),"monthly"===e.frequency&&(0,n.jsx)(x.p,{type:"number",min:1,max:31,value:e.dayOfMonth??1,onChange:t=>s({...e,dayOfMonth:Number(t.target.value)}),placeholder:"Day of month"})]}):(0,n.jsx)(x.p,{value:e.expression,onChange:e=>s({type:"cron",expression:e.target.value}),placeholder:"0 9 * * 1-5",className:"font-mono"}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,p.Bg)(e)})]})}function w(){let e=(0,r.useParams)(),s=(0,r.useSearchParams)(),t=e.id,f="new"===t,v=f?s.get("from"):null,w=f?s.get("cwd"):null,k=(0,r.useRouter)();(0,d.si)(v?"Duplicate Job":f?"New Job":"Edit Job");let[C,$]=(0,o.useState)(""),[S,M]=(0,o.useState)(w||""),[W,D]=(0,o.useState)(""),[E,A]=(0,o.useState)(!0),[O,T]=(0,o.useState)([{type:"simple",frequency:"daily",time:"09:00"}]),[z,I]=(0,o.useState)(g),[B,Z]=(0,o.useState)(!1),[P,R]=(0,o.useState)("medium"),[q,J]=(0,o.useState)(30),[F,H]=(0,o.useState)(!1),[K,L]=(0,o.useState)([]),[U,_]=(0,o.useState)(""),[Q,X]=(0,o.useState)([]),[G,V]=(0,o.useState)({}),[Y,ee]=(0,o.useState)({}),[es,et]=(0,o.useState)(new Set),[en,ea]=(0,o.useState)([]),[el,ei]=(0,o.useState)(!1),[er,eo]=(0,o.useState)(90),[ed,ec]=(0,o.useState)(!1),[eu,em]=(0,o.useState)([]),[ex,eh]=(0,o.useState)([]),[ep,ef]=(0,o.useState)(!1),[ej,ey]=(0,o.useState)(!1),[eg,ev]=(0,o.useState)(!f||!!v),eb=z?(0,h.bs)(z):null,eN=eb?.alias||null,ew=eN?(0,h.r5)(eN):[],ek=ew.length>1,eC=eb?(0,h.iz)(eb):[],e$=j.filter(e=>!K.includes(e));function eS(e){let s=e.trim();s&&!K.includes(s)&&L([...K,s]),_("")}let eM=(0,o.useCallback)((e,s)=>{$(s?`${e.name} (copy)`:e.name),M(e.cwd),D(e.prompt),A(e.enabled),T((0,p.KU)(e));let t=e.model||"",n=/\[1m\]$/i.test(t),a=t.replace(/\[.*\]$/,""),l=(0,h.AX)(a);I(l?.modelId||g),Z(n),R(e.thinkingLevel||(0,h.Mi)(l)||""),J(e.maxDurationMinutes??30),H(e.bypassPermissions??!1),L(e.allowedTools||[]),X(e.mcpServers||[]),V(e.mcpToolFilters||{}),ei(e.skipIfMissed??!1),eo(e.retentionDays??90),ec(e.inboxOutput??!1),em(e.notifyProviders||[])},[]),eW=(0,o.useCallback)(async()=>{let e=v||(f?null:t);if(e)try{let s=await fetch(`/api/jobs/${e}`);if(!s.ok)return void k.push("/jobs");let t=await s.json();eM(t.job,!!v)}finally{ev(!1)}},[t,f,v,k,eM]);async function eD(){ey(!0);let e=eb?.supportsExtendedContext&&B?`${z}[1m]`:z,s={name:C,cwd:S,prompt:W,enabled:E,schedule:O[0],schedules:O,model:e,thinkingLevel:P||void 0,maxDurationMinutes:q,bypassPermissions:F,allowedTools:K,mcpServers:Q,mcpToolFilters:G,skipIfMissed:el,retentionDays:er,inboxOutput:ed,notifyProviders:eu};try{let e=f?"/api/jobs":`/api/jobs/${t}`,n=f?"POST":"PUT",a=await fetch(e,{method:n,headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(a.ok){let e=await a.json(),s=f?e.job.id:t;k.push(`/jobs/${s}`)}}finally{ey(!1)}}return((0,o.useEffect)(()=>{eW()},[eW]),(0,o.useEffect)(()=>{let e=S?`?cwd=${encodeURIComponent(S)}`:"";fetch(`/api/jobs/mcp-discover${e}`).then(e=>e.json()).then(e=>ea(e.servers)).catch(()=>ea([]))},[S]),(0,o.useEffect)(()=>{fetch("/api/notifications").then(e=>e.json()).then(e=>eh((e.providers||[]).filter(e=>e.enabled))).catch(()=>eh([]))},[]),eg)?(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4",children:(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading..."})}):(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4",children:(0,n.jsxs)("div",{className:"max-w-2xl mx-auto space-y-4 pb-8",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>k.push(f?"/jobs":`/jobs/${t}`),children:(0,n.jsx)(l.A,{className:"h-4 w-4"})}),(0,n.jsx)("h2",{className:"font-semibold",children:v?"Duplicate Job":f?"New Job":"Edit Job"})]}),(0,n.jsx)(m.Zp,{children:(0,n.jsxs)(m.Wu,{className:"pt-6 space-y-4",children:[(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Name"}),(0,n.jsx)(x.p,{value:C,onChange:e=>$(e.target.value),placeholder:"Weekly dependency update"})]}),(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Prompt"}),(0,n.jsx)("textarea",{value:W,onChange:e=>D(e.target.value),placeholder:"Check for outdated dependencies and create a PR updating them...",className:"w-full min-h-[120px] rounded-md border bg-background px-3 py-2 text-sm font-mono resize-y focus:outline-none focus:ring-2 focus:ring-ring"})]})]})}),(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{className:"pb-2",children:(0,n.jsx)(m.ZB,{className:"text-sm font-medium",children:"Working Directory"})}),(0,n.jsxs)(m.Wu,{className:"space-y-2",children:[(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(x.p,{value:S,onChange:e=>M(e.target.value),placeholder:"Leave empty for scratchpad",className:"flex-1"}),(0,n.jsx)(u.$,{variant:"outline",size:"sm",onClick:()=>ef(!0),children:"Browse"})]}),!S&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"Uses ~/.cockpit/jobs as a temporary scratchpad directory"}),ep&&(0,n.jsx)("div",{className:"border rounded-md p-3",children:(0,n.jsx)(c.K,{onSelect:e=>{M(e),ef(!1)},onCancel:()=>ef(!1)})})]})]}),(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{className:"pb-2",children:(0,n.jsx)(m.ZB,{className:"text-sm font-medium",children:"Schedule"})}),(0,n.jsxs)(m.Wu,{className:"space-y-3",children:[O.map((e,s)=>(0,n.jsx)(N,{value:e,onChange:e=>T(O.map((t,n)=>n===s?e:t)),onRemove:()=>T(O.filter((e,t)=>t!==s)),canRemove:O.length>1},s)),(0,n.jsxs)("button",{type:"button",onClick:()=>T([...O,{type:"simple",frequency:"daily",time:"09:00"}]),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-primary transition-colors",children:[(0,n.jsx)(i.A,{className:"h-3 w-3"}),"Add schedule"]})]})]}),(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{className:"pb-2",children:(0,n.jsx)(m.ZB,{className:"text-sm font-medium",children:"Model"})}),(0,n.jsxs)(m.Wu,{className:"space-y-1",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 text-sm",children:[(0,n.jsx)("span",{children:"Model"}),(0,n.jsx)("div",{className:"flex gap-1 flex-wrap justify-end",children:["haiku","sonnet","opus"].map(e=>(0,n.jsx)(u.$,{variant:eN===e?"default":"outline",size:"sm",onClick:()=>{let s;(s=(0,h.zQ)(e))&&(I(s.modelId),Z(!1),R((0,h.Mi)(s)||""))},children:e.charAt(0).toUpperCase()+e.slice(1)},e))})]}),ek&&(0,n.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 text-sm",children:[(0,n.jsx)("span",{children:"Version"}),(0,n.jsx)("div",{className:"flex gap-1 flex-wrap justify-end",children:ew.map(e=>(0,n.jsx)(u.$,{variant:eb?.version===e.version?"default":"outline",size:"sm",onClick:()=>(function(e){if(!eN)return;let s=(0,h.r5)(eN).find(s=>s.version===e);if(s){I(s.modelId);let e=(0,h.iz)(s);P&&!e.includes(P)&&R((0,h.Mi)(s)||"")}})(e.version),children:e.version},e.version))})]}),eb?.supportsExtendedContext&&(0,n.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 text-sm",children:[(0,n.jsx)("span",{children:"Context"}),(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)(u.$,{variant:B?"outline":"default",size:"sm",onClick:()=>Z(!1),children:"200K"}),(0,n.jsx)(u.$,{variant:B?"default":"outline",size:"sm",onClick:()=>Z(!0),children:"1M"})]})]}),eC.length>0&&(0,n.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 text-sm",children:[(0,n.jsx)("span",{children:"Thinking"}),(0,n.jsx)("div",{className:"flex gap-1 flex-wrap justify-end",children:eC.map(e=>(0,n.jsx)(u.$,{variant:P===e?"default":"outline",size:"sm",onClick:()=>R(e),children:y[e]},e))})]})]})]}),(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{className:"pb-2",children:(0,n.jsx)(m.ZB,{className:"text-sm font-medium",children:"Permissions"})}),(0,n.jsxs)(m.Wu,{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Bypass Permissions"}),F&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"All tool permissions will be auto-approved"})]}),(0,n.jsx)(b,{checked:F,onChange:H})]}),!F&&(0,n.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Allowed Tools"}),K.length>0&&(0,n.jsx)("div",{className:"flex flex-wrap gap-1.5",children:K.map(e=>(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md bg-primary/10 text-primary font-mono",children:[e,(0,n.jsx)("button",{type:"button",onClick:()=>{L(K.filter(s=>s!==e))},className:"hover:text-destructive",children:(0,n.jsx)(a.A,{className:"h-3 w-3"})})]},e))}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(x.p,{value:U,onChange:e=>_(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),eS(U))},placeholder:"Type tool name and press Enter",className:"flex-1 font-mono"}),(0,n.jsx)(u.$,{variant:"outline",size:"sm",onClick:()=>eS(U),disabled:!U.trim(),children:"Add"})]}),e$.length>0&&(0,n.jsx)("div",{className:"flex flex-wrap gap-1",children:e$.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>eS(e),className:"text-xs px-2 py-0.5 rounded border border-dashed border-muted-foreground/30 text-muted-foreground hover:border-primary hover:text-primary transition-colors",children:["+ ",e]},e))}),0===K.length&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"No tools permitted. Add tools this job is allowed to use."})]})]})]}),(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{className:"pb-2",children:(0,n.jsx)(m.ZB,{className:"text-sm font-medium",children:"MCP Servers"})}),(0,n.jsxs)(m.Wu,{className:"space-y-2",children:[0===en.length&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"No MCP servers found. Configure servers in Settings."}),en.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"flex flex-wrap gap-1.5",children:en.map(e=>{let s=Q.includes(e);return(0,n.jsx)("button",{type:"button",onClick:()=>{if(s){X(Q.filter(s=>s!==e));let{[e]:s,...t}=G;V(t),et(s=>{let t=new Set(s);return t.delete(e),t})}else X([...Q,e])},className:`inline-flex items-center gap-1 text-xs px-2.5 py-1 rounded-md font-mono transition-colors ${s?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-accent"}`,children:e},e)})}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:0===Q.length?"No servers enabled. Select servers to activate.":`${Q.length} enabled.`}),Q.map(e=>{let s=G[e]||[],t=es.has(e),l=Y[e]||"";return(0,n.jsxs)("div",{className:"border rounded-md p-2 space-y-2",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>et(s=>{let t=new Set(s);return t.has(e)?t.delete(e):t.add(e),t}),className:"w-full flex items-center justify-between text-xs text-muted-foreground hover:text-primary",children:[(0,n.jsx)("span",{className:"font-mono",children:e}),(0,n.jsx)("span",{children:0===s.length?"All tools":`${s.length} tool${1===s.length?"":"s"} filtered`})]}),t&&(0,n.jsxs)("div",{className:"space-y-2 pt-1",children:[s.length>0&&(0,n.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(t=>(0,n.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md bg-primary/10 text-primary font-mono",children:[t,(0,n.jsx)("button",{type:"button",onClick:()=>{let n=s.filter(e=>e!==t);if(0===n.length){let{[e]:s,...t}=G;V(t)}else V({...G,[e]:n})},className:"hover:text-destructive",children:(0,n.jsx)(a.A,{className:"h-3 w-3"})})]},t))}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(x.p,{value:l,onChange:s=>ee({...Y,[e]:s.target.value}),onKeyDown:t=>{if("Enter"===t.key){t.preventDefault();let n=l.trim();n&&!s.includes(n)&&(V({...G,[e]:[...s,n]}),ee({...Y,[e]:""}))}},placeholder:"Tool name or server:tool",className:"flex-1 font-mono text-xs"}),(0,n.jsx)(u.$,{variant:"outline",size:"sm",onClick:()=>{let t=l.trim();t&&!s.includes(t)&&(V({...G,[e]:[...s,t]}),ee({...Y,[e]:""}))},disabled:!l.trim(),children:"Add"})]}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"Leave empty to allow all tools. For proxy servers, use server:tool format."})]})]},e)})]})]})]}),(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{className:"pb-2",children:(0,n.jsx)(m.ZB,{className:"text-sm font-medium",children:"Execution"})}),(0,n.jsxs)(m.Wu,{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Max Duration (minutes)"}),(0,n.jsx)(x.p,{type:"number",min:1,value:q,onChange:e=>J(Number(e.target.value))})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Retry missed runs"}),(0,n.jsx)(b,{checked:!el,onChange:e=>ei(!e)})]}),(0,n.jsxs)("div",{className:"space-y-1.5",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Audit log retention (days)"}),(0,n.jsx)(x.p,{type:"number",min:1,value:er,onChange:e=>eo(Number(e.target.value))})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Enabled"}),(0,n.jsx)(b,{checked:E,onChange:A})]})]})]}),(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{className:"pb-2",children:(0,n.jsx)(m.ZB,{className:"text-sm font-medium",children:"Output"})}),(0,n.jsxs)(m.Wu,{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Send to Inbox"}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"The agent will format its final output as a structured message delivered to your Cockpit inbox."})]}),(0,n.jsx)(b,{checked:ed,onChange:ec})]}),ed&&ex.length>0&&(0,n.jsxs)("div",{className:"mt-4 pt-4 border-t",children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"External notifications"}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 mb-2",children:"Also send to these providers when a message is delivered."}),(0,n.jsx)("div",{className:"space-y-1.5",children:ex.map(e=>(0,n.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[(0,n.jsx)("input",{type:"checkbox",checked:eu.includes(e.id),onChange:s=>em(t=>s.target.checked?[...t,e.id]:t.filter(s=>s!==e.id)),className:"rounded border-input"}),(0,n.jsx)("span",{children:e.name}),(0,n.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",e.type,")"]})]},e.id))})]})]})]}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(u.$,{onClick:eD,disabled:ej||!C||!W,children:ej?"Saving...":"Save"}),(0,n.jsx)(u.$,{variant:"outline",onClick:()=>k.push(f?"/jobs":`/jobs/${t}`),children:"Cancel"})]})]})})}},31966:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(0,t(99537).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},39071:(e,s,t)=>{Promise.resolve().then(t.bind(t,10895))},84949:(e,s,t)=>{"use strict";function n(e,s,t){let n=[];for(let a of e.split(",")){let e=a.match(/^(.+)\/(\d+)$/),l=e?Number.parseInt(e[2],10):1,i=e?e[1]:a;if("*"===i)for(let e=s;e<=t;e+=l)n.push(e);else if(i.includes("-")){let[e,s]=i.split("-"),t=Number.parseInt(e,10),a=Number.parseInt(s,10);for(let e=t;e<=a;e+=l)n.push(e)}else n.push(Number.parseInt(i,10))}return n}function a(e){if("cron"===e.type)return`cron: ${e.expression}`;let s=e.time||"00:00";switch(e.frequency){case"hourly":return`Every hour at :${s.split(":")[1]||"00"}`;case"daily":return`Daily at ${s}`;case"weekly":return`Weekly on ${["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][e.dayOfWeek??0]} at ${s}`;case"monthly":return`Monthly on day ${e.dayOfMonth??1} at ${s}`}}function l(e){return e.schedules?.length?e.schedules:[e.schedule]}function i(e){return e.map(a).join("; ")}function r(e,s){let t=null;for(let a of e){let e=function(e,s){let t=function(e){let s=e.trim().split(/\s+/);if(5!==s.length)throw Error(`Invalid cron expression: expected 5 fields, got ${s.length}`);return{minute:n(s[0],0,59),hour:n(s[1],0,23),dayOfMonth:n(s[2],1,31),month:n(s[3],1,12),dayOfWeek:n(s[4],0,6)}}("cron"===e.type?e.expression:function(e){let[s,t]=(e.time||"00:00").split(":").map(Number);switch(e.frequency){case"hourly":return`${t} * * * *`;case"daily":return`${t} ${s} * * *`;case"weekly":return`${t} ${s} * * ${e.dayOfWeek??0}`;case"monthly":return`${t} ${s} ${e.dayOfMonth??1} * *`}}(e)),a=new Date(s.getTime());a.setSeconds(0,0),a.setMinutes(a.getMinutes()+1);for(let e=0;e<525960;e++){if(t.minute.includes(a.getMinutes())&&t.hour.includes(a.getHours())&&t.dayOfMonth.includes(a.getDate())&&t.month.includes(a.getMonth()+1)&&t.dayOfWeek.includes(a.getDay()))return a;a.setMinutes(a.getMinutes()+1)}return new Date(s.getTime()+864e5)}(a,s);(!t||e.getTime()<t.getTime())&&(t=new Date(e.getTime()))}return t??new Date(s.getTime()+864e5)}t.d(s,{Bg:()=>a,JH:()=>i,KU:()=>l,ay:()=>r})}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=39071)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39410],{2330:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>w});var n=t(95155),a=t(94088),i=t(12363),r=t(31966),l=t(18986),o=t(92571),c=t(36619),d=t(65738),u=t(73321),h=t(12115),m=t(3765),x=t(45160),p=t(89239),f=t(81477),j=t(42763),g=t(67032),y=t(8081),N=t(84949);function v({prompt:e}){let[s,t]=(0,h.useState)(!1),r=e.split("\n"),l=r.length>8,o=l&&!s?r.slice(0,8).join("\n"):e;return(0,n.jsxs)(f.Zp,{children:[(0,n.jsx)(f.aR,{className:"pb-2",children:(0,n.jsx)(f.ZB,{className:"text-sm font-medium",children:"Prompt"})}),(0,n.jsxs)(f.Wu,{children:[(0,n.jsx)("pre",{className:"text-sm whitespace-pre-wrap break-all font-mono bg-muted rounded p-3",children:o}),l&&(0,n.jsxs)("button",{onClick:()=>t(!s),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mt-2 transition-colors",children:[s?(0,n.jsx)(a.A,{className:"h-3 w-3"}):(0,n.jsx)(i.A,{className:"h-3 w-3"}),s?"Show less":`Show all ${r.length} lines`]})]})]})}function w(){let e=(0,u.useParams)().id,s=(0,u.useRouter)(),[t,a]=(0,h.useState)(null),[i,w]=(0,h.useState)(!0),[b,k]=(0,h.useState)(!1),[$,M]=(0,h.useState)(!1);(0,m.si)(t?.name||"Job");let{runs:D,loading:C,loadingMore:E,hasMore:A,refresh:S,loadMore:O}=(0,g.Jm)(e),T=(0,h.useCallback)(async()=>{try{let t=await fetch(`/api/jobs/${e}`);if(!t.ok)return void s.push("/jobs");let n=await t.json();a(n.job)}finally{w(!1)}},[e,s]);async function z(){k(!0),await fetch(`/api/jobs/${e}/trigger`,{method:"POST"}),k(!1),S()}async function W(){(await fetch(`/api/jobs/${e}`,{method:"DELETE"})).ok&&s.push("/jobs")}return((0,h.useEffect)(()=>{T()},[T]),i||!t)?(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4",children:(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading..."})}):(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4",children:(0,n.jsxs)("div",{className:"max-w-2xl mx-auto space-y-4 pb-8",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>s.push("/jobs"),children:(0,n.jsx)(r.A,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("h2",{className:"font-semibold truncate",children:t.name}),t.enabled?(0,n.jsx)(x.E,{variant:"default",children:"Active"}):(0,n.jsx)(x.E,{variant:"secondary",children:"Disabled"})]}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,N.JH)((0,N.KU)(t))})]})]}),(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,n.jsxs)(p.$,{variant:"outline",size:"sm",onClick:()=>s.push(`/jobs/${e}/edit`),children:[(0,n.jsx)(l.A,{className:"h-4 w-4 mr-1"}),"Edit"]}),(0,n.jsxs)(p.$,{variant:"outline",size:"sm",onClick:z,disabled:b,children:[b?(0,n.jsx)(o.A,{className:"h-4 w-4 mr-1 animate-spin"}):(0,n.jsx)(c.A,{className:"h-4 w-4 mr-1"}),"Run Now"]}),(0,n.jsxs)(p.$,{variant:"ghost",size:"sm",className:"text-destructive hover:text-destructive",onClick:()=>M(!0),children:[(0,n.jsx)(d.A,{className:"h-4 w-4 mr-1"}),"Delete"]})]}),(0,n.jsx)(v,{prompt:t.prompt}),(0,n.jsx)(f.Zp,{children:(0,n.jsx)(f.Wu,{className:"pt-4",children:(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-y-2 text-sm",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Model"}),(0,n.jsx)("span",{className:"text-right",children:function(e){let s=e.model||"",t=s.replace(/\[.*\]$/,""),n=(0,y.bs)(t);if(!n)return s||"Default";let a=n.alias.charAt(0).toUpperCase()+n.alias.slice(1),i=/\[1m\]$/i.test(s)?" (1M)":"";return`${a} ${n.version}${i}`}(t)}),t.thinkingLevel&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Thinking"}),(0,n.jsx)("span",{className:"text-right capitalize",children:t.thinkingLevel})]}),(0,n.jsx)("span",{className:"text-muted-foreground",children:"Max Duration"}),(0,n.jsxs)("span",{className:"text-right",children:[t.maxDurationMinutes??30," min"]}),t.cwd&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Directory"}),(0,n.jsx)("span",{className:"text-right font-mono text-xs truncate",children:t.cwd})]}),(0,n.jsx)("span",{className:"text-muted-foreground",children:"Permissions"}),(0,n.jsx)("span",{className:"text-right",children:t.bypassPermissions?"Bypass all":`${(t.allowedTools||[]).length} tools allowed`}),(t.mcpServers||[]).length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"MCP Servers"}),(0,n.jsx)("span",{className:"text-right text-xs font-mono truncate",children:(t.mcpServers||[]).join(", ")})]})]})})}),(0,n.jsxs)(f.Zp,{children:[(0,n.jsx)(f.aR,{className:"pb-2",children:(0,n.jsx)(f.ZB,{className:"text-sm font-medium",children:"Run History"})}),(0,n.jsxs)(f.Wu,{children:[C&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading runs..."}),!C&&0===D.length&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"No runs yet."}),(0,n.jsx)("div",{className:"space-y-1",children:D.map(t=>(0,n.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 rounded px-2 py-2 hover:bg-muted transition-colors text-left",onClick:()=>s.push(`/jobs/${e}/runs/${t.id}`),children:[function(e){switch(e){case"success":return(0,n.jsx)(x.E,{className:"bg-green-600 text-white",children:"Success"});case"failure":return(0,n.jsx)(x.E,{variant:"destructive",children:"Failed"});case"timeout":return(0,n.jsx)(x.E,{className:"bg-yellow-600 text-white",children:"Timeout"});case"running":return(0,n.jsx)(x.E,{className:"bg-blue-600 text-white",children:"Running"});default:return(0,n.jsx)(x.E,{variant:"secondary",children:e})}}(t.status),(0,n.jsx)("span",{className:"text-xs text-muted-foreground flex-1",children:new Date(t.startedAt).toLocaleString()}),null!=t.durationMs&&(0,n.jsxs)("span",{className:"text-xs text-muted-foreground",children:[Math.round(t.durationMs/1e3),"s"]})]},t.id))}),A&&(0,n.jsx)(p.$,{variant:"ghost",size:"sm",className:"w-full mt-2",onClick:O,disabled:E,children:E?"Loading...":"Load more"})]})]}),(0,n.jsx)(j.lG,{open:$,onOpenChange:M,children:(0,n.jsxs)(j.Cf,{children:[(0,n.jsx)(j.c7,{children:(0,n.jsx)(j.L3,{children:"Delete Job"})}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:"Delete this job and all run history? This cannot be undone."}),(0,n.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,n.jsx)(p.$,{variant:"outline",onClick:()=>M(!1),children:"Cancel"}),(0,n.jsx)(p.$,{variant:"destructive",onClick:W,children:"Delete"})]})]})})]})})}},8081:(e,s,t)=>{"use strict";t.d(s,{AX:()=>l,Mi:()=>c,bs:()=>a,iz:()=>o,r5:()=>i,zQ:()=>r});let n=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",supportsExtendedContext:!1,contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",supportsExtendedContext:!0,contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Most capable",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0}];function a(e){if(e)return n.find(s=>s.modelId===e)}function i(e){return n.filter(s=>s.alias===e)}function r(e){return n.find(s=>s.alias===e&&s.isDefault)??i(e)[0]}function l(e){if(!e)return null;let s=e.replace(/\[.*\]$/,"");return"opus"===s||"sonnet"===s||"haiku"===s?r(s)??null:a(s)??null}function o(e){if(!e||"haiku"===e.alias)return[];let s=["low","medium","high"];return"opus"===e.alias&&"4.7"===e.version&&s.push("xhigh"),s.push("max"),s}function c(e){return e&&"haiku"!==e.alias?"opus"===e.alias&&"4.7"===e.version?"xhigh":"sonnet"===e.alias?"medium":"high":null}},18986:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(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"}]])},31966:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(0,t(99537).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},36619:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(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"}]])},83250:(e,s,t)=>{Promise.resolve().then(t.bind(t,2330))},84949:(e,s,t)=>{"use strict";function n(e,s,t){let n=[];for(let a of e.split(",")){let e=a.match(/^(.+)\/(\d+)$/),i=e?Number.parseInt(e[2],10):1,r=e?e[1]:a;if("*"===r)for(let e=s;e<=t;e+=i)n.push(e);else if(r.includes("-")){let[e,s]=r.split("-"),t=Number.parseInt(e,10),a=Number.parseInt(s,10);for(let e=t;e<=a;e+=i)n.push(e)}else n.push(Number.parseInt(r,10))}return n}function a(e){if("cron"===e.type)return`cron: ${e.expression}`;let s=e.time||"00:00";switch(e.frequency){case"hourly":return`Every hour at :${s.split(":")[1]||"00"}`;case"daily":return`Daily at ${s}`;case"weekly":return`Weekly on ${["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][e.dayOfWeek??0]} at ${s}`;case"monthly":return`Monthly on day ${e.dayOfMonth??1} at ${s}`}}function i(e){return e.schedules?.length?e.schedules:[e.schedule]}function r(e){return e.map(a).join("; ")}function l(e,s){let t=null;for(let a of e){let e=function(e,s){let t=function(e){let s=e.trim().split(/\s+/);if(5!==s.length)throw Error(`Invalid cron expression: expected 5 fields, got ${s.length}`);return{minute:n(s[0],0,59),hour:n(s[1],0,23),dayOfMonth:n(s[2],1,31),month:n(s[3],1,12),dayOfWeek:n(s[4],0,6)}}("cron"===e.type?e.expression:function(e){let[s,t]=(e.time||"00:00").split(":").map(Number);switch(e.frequency){case"hourly":return`${t} * * * *`;case"daily":return`${t} ${s} * * *`;case"weekly":return`${t} ${s} * * ${e.dayOfWeek??0}`;case"monthly":return`${t} ${s} ${e.dayOfMonth??1} * *`}}(e)),a=new Date(s.getTime());a.setSeconds(0,0),a.setMinutes(a.getMinutes()+1);for(let e=0;e<525960;e++){if(t.minute.includes(a.getMinutes())&&t.hour.includes(a.getHours())&&t.dayOfMonth.includes(a.getDate())&&t.month.includes(a.getMonth()+1)&&t.dayOfWeek.includes(a.getDay()))return a;a.setMinutes(a.getMinutes()+1)}return new Date(s.getTime()+864e5)}(a,s);(!t||e.getTime()<t.getTime())&&(t=new Date(e.getTime()))}return t??new Date(s.getTime()+864e5)}t.d(s,{Bg:()=>a,JH:()=>r,KU:()=>i,ay:()=>l})},94088:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(0,t(99537).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=83250)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[15496],{25494:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(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"}]])},31966:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(0,t(99537).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},46172:(e,s,t)=>{Promise.resolve().then(t.bind(t,60532))},60532:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>y});var n=t(95155),a=t(94088),r=t(12363),l=t(76721),i=t(9005),d=t(92571),c=t(31966),o=t(36483),u=t(25494),x=t(73321),m=t(12115),h=t(3765),p=t(513),j=t(45160),f=t(89239),g=t(81477);function N({prompt:e}){let[s,t]=(0,m.useState)(!1),l=e.split("\n"),i=l.length>8,d=i&&!s?l.slice(0,8).join("\n"):e;return(0,n.jsxs)("div",{className:"mt-2",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Prompt:"}),(0,n.jsx)("pre",{className:"mt-1 text-xs bg-muted rounded p-2 whitespace-pre-wrap",children:d}),i&&(0,n.jsxs)("button",{onClick:()=>t(!s),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground mt-1 transition-colors",children:[s?(0,n.jsx)(a.A,{className:"h-3 w-3"}):(0,n.jsx)(r.A,{className:"h-3 w-3"}),s?"Show less":`Show all ${l.length} lines`]})]})}function v({tool:e}){let[s,t]=(0,m.useState)(!1);return(0,n.jsxs)("div",{className:"border rounded-md",children:[(0,n.jsxs)("button",{type:"button",className:"w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-muted/50 transition-colors",onClick:()=>t(!s),children:[s?(0,n.jsx)(r.A,{className:"h-3 w-3 shrink-0"}):(0,n.jsx)(l.A,{className:"h-3 w-3 shrink-0"}),(0,n.jsx)("span",{className:"font-mono font-medium truncate min-w-0",children:e.name}),void 0!==e.permitted&&(0,n.jsx)(j.E,{variant:e.permitted?"secondary":"destructive",className:"text-[10px]",children:e.permitted?"Allowed":"Denied"}),null!=e.durationMs&&(0,n.jsxs)("span",{className:"text-xs text-muted-foreground ml-auto shrink-0",children:[e.durationMs,"ms"]})]}),s&&(0,n.jsxs)("div",{className:"border-t px-3 py-2 space-y-2",children:[e.input&&(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-xs font-medium text-muted-foreground mb-1",children:"Input"}),(0,n.jsx)("pre",{className:"text-xs bg-muted rounded p-2 overflow-x-auto max-h-48 whitespace-pre-wrap",children:e.input})]}),e.output&&(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-xs font-medium text-muted-foreground mb-1",children:"Output"}),(0,n.jsx)("pre",{className:"text-xs bg-muted rounded p-2 overflow-x-auto max-h-48 whitespace-pre-wrap",children:e.output})]})]})]})}function w({jobId:e,runId:s,onClose:t}){let[a,r]=(0,m.useState)([]),[l,c]=(0,m.useState)(!0),[o,u]=(0,m.useState)(null),x=(0,m.useRef)(new Set);(0,m.useEffect)(()=>{fetch(`/api/jobs/${e}/runs/${s}/transcript`).then(e=>{if(!e.ok)throw Error("Failed to load transcript");return e.json()}).then(e=>{r(e.messages),c(!1)}).catch(e=>{u(e.message),c(!1)})},[e,s]),(0,m.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t())};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[t]);let h=(0,m.useCallback)(e=>{e.target===e.currentTarget&&t()},[t]);return(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:h,children:(0,n.jsxs)(g.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:"Run transcript"}),(0,n.jsx)(f.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:t,children:(0,n.jsx)(i.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:[l&&(0,n.jsx)("div",{className:"flex justify-center py-12",children:(0,n.jsx)(d.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),o&&(0,n.jsx)("div",{className:"text-center text-sm text-red-500 py-12",children:o}),!l&&0===a.length&&!o&&(0,n.jsx)("div",{className:"text-center text-sm text-muted-foreground py-12",children:"No transcript found for this run."}),!l&&a.map(e=>(0,n.jsx)("div",{children:(0,n.jsx)(p.s,{message:e,expandedToolIds:x})},e.id))]})]})})}function y(){let e=(0,x.useParams)(),s=e.id,t=e.runId,a=(0,x.useRouter)();(0,h.si)("Run Detail");let[r,l]=(0,m.useState)(null),[i,d]=(0,m.useState)(!0),[p,y]=(0,m.useState)(!1),b=(0,m.useCallback)(async()=>{try{let e=await fetch(`/api/jobs/${s}/runs/${t}`);if(!e.ok)return void a.push(`/jobs/${s}`);let n=await e.json();l(n.run)}finally{d(!1)}},[s,t,a]);return((0,m.useEffect)(()=>{b()},[b]),i||!r)?(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4",children:(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading..."})}):(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,n.jsx)("div",{className:"flex items-center gap-2",children:(0,n.jsx)(f.$,{variant:"ghost",size:"icon",onClick:()=>a.push(`/jobs/${s}`),children:(0,n.jsx)(c.A,{className:"h-4 w-4"})})}),(0,n.jsxs)(g.Zp,{children:[(0,n.jsx)(g.aR,{children:(0,n.jsxs)(g.ZB,{className:"text-base flex items-center gap-2",children:["Run Summary",function(e){switch(e){case"success":return(0,n.jsx)(j.E,{className:"bg-green-600 text-white",children:"Success"});case"failure":return(0,n.jsx)(j.E,{variant:"destructive",children:"Failed"});case"timeout":return(0,n.jsx)(j.E,{className:"bg-yellow-600 text-white",children:"Timeout"});case"running":return(0,n.jsx)(j.E,{className:"bg-blue-600 text-white",children:"Running"});default:return(0,n.jsx)(j.E,{variant:"secondary",children:e})}}(r.status)]})}),(0,n.jsxs)(g.Wu,{className:"space-y-2 text-sm",children:[(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Started:"})," ",new Date(r.startedAt).toLocaleString()]}),r.completedAt&&(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Completed:"})," ",new Date(r.completedAt).toLocaleString()]}),null!=r.durationMs&&(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Duration:"})," ",Math.round(r.durationMs/1e3),"s"]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Messages:"})," ",r.messageCount]})]}),r.error&&(0,n.jsx)("div",{className:"mt-2 p-2 rounded bg-destructive/10 text-destructive text-xs",children:r.error}),(0,n.jsx)(N,{prompt:r.prompt}),(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:"Working Directory:"})," ",(0,n.jsx)("span",{className:"font-mono text-xs",children:r.cwd})]}),(0,n.jsxs)("div",{className:"pt-2 flex gap-2",children:[(0,n.jsxs)(f.$,{variant:"outline",size:"sm",onClick:()=>y(!0),children:[(0,n.jsx)(o.A,{className:"h-3 w-3 mr-1"}),"View Transcript"]}),(0,n.jsxs)(f.$,{variant:"outline",size:"sm",onClick:()=>a.push(`/sessions/${r.sessionId}?cwd=${encodeURIComponent(r.cwd)}`),children:[(0,n.jsx)(u.A,{className:"h-3 w-3 mr-1"}),"Continue Session"]})]})]})]}),(0,n.jsxs)(g.Zp,{children:[(0,n.jsx)(g.aR,{children:(0,n.jsxs)(g.ZB,{className:"text-base",children:["Tool Usage (",r.toolsUsed.length,")"]})}),(0,n.jsxs)(g.Wu,{children:[0===r.toolsUsed.length&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"No tool invocations recorded."}),(0,n.jsx)("div",{className:"space-y-1",children:r.toolsUsed.map((e,s)=>(0,n.jsx)(v,{tool:e},`${e.name}-${e.timestamp}-${s}`))})]})]}),p&&(0,n.jsx)(w,{jobId:s,runId:t,onClose:()=>y(!1)})]})}},94088:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(0,t(99537).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=46172)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[17288],{35484:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(99537).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},36619:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(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"}]])},61112:(e,t,s)=>{Promise.resolve().then(s.bind(s,92396))},84949:(e,t,s)=>{"use strict";function n(e,t,s){let n=[];for(let a of e.split(",")){let e=a.match(/^(.+)\/(\d+)$/),r=e?Number.parseInt(e[2],10):1,l=e?e[1]:a;if("*"===l)for(let e=t;e<=s;e+=r)n.push(e);else if(l.includes("-")){let[e,t]=l.split("-"),s=Number.parseInt(e,10),a=Number.parseInt(t,10);for(let e=s;e<=a;e+=r)n.push(e)}else n.push(Number.parseInt(l,10))}return n}function a(e){if("cron"===e.type)return`cron: ${e.expression}`;let t=e.time||"00:00";switch(e.frequency){case"hourly":return`Every hour at :${t.split(":")[1]||"00"}`;case"daily":return`Daily at ${t}`;case"weekly":return`Weekly on ${["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][e.dayOfWeek??0]} at ${t}`;case"monthly":return`Monthly on day ${e.dayOfMonth??1} at ${t}`}}function r(e){return e.schedules?.length?e.schedules:[e.schedule]}function l(e){return e.map(a).join("; ")}function i(e,t){let s=null;for(let a of e){let e=function(e,t){let s=function(e){let t=e.trim().split(/\s+/);if(5!==t.length)throw Error(`Invalid cron expression: expected 5 fields, got ${t.length}`);return{minute:n(t[0],0,59),hour:n(t[1],0,23),dayOfMonth:n(t[2],1,31),month:n(t[3],1,12),dayOfWeek:n(t[4],0,6)}}("cron"===e.type?e.expression:function(e){let[t,s]=(e.time||"00:00").split(":").map(Number);switch(e.frequency){case"hourly":return`${s} * * * *`;case"daily":return`${s} ${t} * * *`;case"weekly":return`${s} ${t} * * ${e.dayOfWeek??0}`;case"monthly":return`${s} ${t} ${e.dayOfMonth??1} * *`}}(e)),a=new Date(t.getTime());a.setSeconds(0,0),a.setMinutes(a.getMinutes()+1);for(let e=0;e<525960;e++){if(s.minute.includes(a.getMinutes())&&s.hour.includes(a.getHours())&&s.dayOfMonth.includes(a.getDate())&&s.month.includes(a.getMonth()+1)&&s.dayOfWeek.includes(a.getDay()))return a;a.setMinutes(a.getMinutes()+1)}return new Date(t.getTime()+864e5)}(a,t);(!s||e.getTime()<s.getTime())&&(s=new Date(e.getTime()))}return s??new Date(t.getTime()+864e5)}s.d(t,{Bg:()=>a,JH:()=>l,KU:()=>r,ay:()=>i})},92396:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>C});var n=s(95155),a=s(35484),r=s(64962),l=s(92571),i=s(36619),c=s(99314),o=s(65738),u=s(76721),d=s(14225),h=s(2125),m=s(77618),x=s(73321),f=s(12115),p=s(3765),g=s(45160),j=s(89239),N=s(81477),y=s(42763),b=s(67032),w=s(84949);function v(e){if(!e.lastRunAt)return null;let t=function(e){let t=Math.floor((Date.now()-e)/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;let s=Math.floor(t/60);if(s<24)return`${s}h ago`;let n=Math.floor(s/24);return`${n}d ago`}(e.lastRunAt);return"failure"===e.lastRunStatus||"timeout"===e.lastRunStatus?(0,n.jsxs)("span",{className:"flex items-center gap-1 text-destructive",children:[(0,n.jsx)(a.A,{className:"h-3 w-3"}),"Failed ",t]}):"success"===e.lastRunStatus?(0,n.jsxs)("span",{className:"flex items-center gap-1 text-green-500",children:[(0,n.jsx)(r.A,{className:"h-3 w-3"}),"Succeeded ",t]}):"running"===e.lastRunStatus?(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)(l.A,{className:"h-3 w-3 animate-spin"}),"Running"]}):null}function k({job:e,triggeringJobs:t,onTrigger:s,onDuplicate:a,onDelete:r,onClick:u}){return(0,n.jsx)(N.Zp,{className:"cursor-pointer hover:bg-accent/50 transition-colors",onClick:()=>u(e.id),children:(0,n.jsx)(N.Wu,{className:"p-4",children:(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,n.jsx)("span",{className:"font-medium text-sm truncate",children:e.name}),e.enabled?"failure"===e.lastRunStatus||"timeout"===e.lastRunStatus?(0,n.jsx)(g.E,{variant:"destructive",children:"Failed"}):"running"===e.lastRunStatus?(0,n.jsx)(g.E,{variant:"default",children:"Running"}):(0,n.jsx)(g.E,{variant:"default",children:"Active"}):(0,n.jsx)(g.E,{variant:"secondary",children:"Disabled"})]}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:(0,w.JH)((0,w.KU)(e))}),(0,n.jsxs)("p",{className:"text-xs text-muted-foreground mt-0.5",children:["Next: ",function(e){if(!e.enabled)return"Disabled";try{return(0,w.ay)((0,w.KU)(e),new Date).toLocaleString()}catch{return"Unknown"}}(e)]}),v(e)&&(0,n.jsx)("p",{className:"text-xs mt-0.5",children:v(e)})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,n.jsx)(j.$,{variant:"ghost",size:"icon",className:"h-8 w-8",title:"Run now",disabled:t.has(e.id),onClick:t=>s(t,e.id),children:t.has(e.id)?(0,n.jsx)(l.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(i.A,{className:"h-4 w-4"})}),(0,n.jsx)(j.$,{variant:"ghost",size:"icon",className:"h-8 w-8",title:"Duplicate",onClick:t=>a(t,e.id),children:(0,n.jsx)(c.A,{className:"h-4 w-4"})}),(0,n.jsx)(j.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-destructive hover:text-destructive",title:"Delete",onClick:t=>r(t,e.id),children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]})]})})})}function $({group:e,triggeringJobs:t,onTrigger:s,onDuplicate:a,onDelete:r,onClickJob:l,onCreateJob:i,defaultExpanded:c}){let[o,m]=(0,f.useState)(c),x=e.jobs.filter(e=>"failure"===e.lastRunStatus||"timeout"===e.lastRunStatus).length;return(0,n.jsxs)("div",{className:"rounded-lg border bg-card",children:[(0,n.jsxs)("div",{role:"button",onClick:()=>m(!o),className:"w-full flex items-center gap-2 p-3 text-left hover:bg-accent/50 rounded-lg transition-colors cursor-pointer",children:[(0,n.jsx)(u.A,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform ${o?"rotate-90":""}`}),(0,n.jsx)(d.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,n.jsx)("span",{className:"font-medium text-sm truncate flex-1",children:e.dirName}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[x>0&&(0,n.jsxs)("span",{className:"text-xs bg-destructive text-destructive-foreground px-1.5 py-0.5 rounded",children:[x," failed"]}),(0,n.jsxs)("span",{className:"text-xs text-muted-foreground",children:[e.jobs.length," job",1!==e.jobs.length?"s":""]}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),i(e.cwd)},className:"p-1 rounded hover:bg-accent",title:"New job in this folder",children:(0,n.jsx)(h.A,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})]}),o&&(0,n.jsx)("div",{className:"px-3 pb-3 space-y-2",children:e.jobs.map(e=>(0,n.jsx)(k,{job:e,triggeringJobs:t,onTrigger:s,onDuplicate:a,onDelete:r,onClick:l},e.id))})]})}function C(){(0,p.si)("Scheduled Jobs");let{jobs:e,loading:t,deleteJob:s,triggerJob:a,refresh:r}=(0,b.Os)(),l=(0,x.useRouter)(),[i,c]=(0,f.useState)(null),[o,u]=(0,f.useState)(new Set),d=(0,f.useMemo)(()=>(function(e){let t=new Map;for(let s of e){let e=s.cwd||"",n=t.get(e)||[];n.push(s),t.set(e,n)}let s=[];for(let[e,n]of t)s.push({cwd:e,dirName:function(e){if(!e)return"Scratchpad";let t=e.replace(/\/+$/,"").split("/");return t[t.length-1]||e}(e),jobs:n});return s.sort((e,t)=>e.cwd?t.cwd?e.dirName.localeCompare(t.dirName):1:-1),s})(e),[e]);async function g(){i&&(await s(i),c(null))}async function N(e,t){e.stopPropagation(),u(e=>new Set(e).add(t)),await a(t),u(e=>{let s=new Set(e);return s.delete(t),s}),r()}function w(e,t){e.stopPropagation(),l.push(`/jobs/new/edit?from=${t}`)}function v(e,t){e.stopPropagation(),c(t)}return(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 pb-24 space-y-4",children:[t&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading jobs..."}),!t&&0===e.length&&(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-center",children:[(0,n.jsx)(m.A,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"No scheduled jobs yet."}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Create one to run Claude on a schedule."})]}),(0,n.jsx)("div",{className:"space-y-2",children:1===d.length?d[0].jobs.map(e=>(0,n.jsx)(k,{job:e,triggeringJobs:o,onTrigger:N,onDuplicate:w,onDelete:v,onClick:e=>l.push(`/jobs/${e}`)},e.id)):d.map(e=>(0,n.jsx)($,{group:e,triggeringJobs:o,onTrigger:N,onDuplicate:w,onDelete:v,onClickJob:e=>l.push(`/jobs/${e}`),onCreateJob:e=>l.push(`/jobs/new/edit?cwd=${encodeURIComponent(e)}`),defaultExpanded:d.length<=3},e.cwd))}),(0,n.jsx)("div",{className:"fixed bottom-6 right-6",children:(0,n.jsxs)(j.$,{size:"lg",className:"rounded-full shadow-lg",onClick:()=>l.push("/jobs/new/edit"),children:[(0,n.jsx)(h.A,{className:"h-5 w-5 mr-1"}),"New Job"]})}),(0,n.jsx)(y.lG,{open:!!i,onOpenChange:()=>c(null),children:(0,n.jsxs)(y.Cf,{children:[(0,n.jsx)(y.c7,{children:(0,n.jsx)(y.L3,{children:"Delete Job"})}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:"Delete this job and all its run history? This cannot be undone."}),(0,n.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,n.jsx)(j.$,{variant:"outline",onClick:()=>c(null),children:"Cancel"}),(0,n.jsx)(j.$,{variant:"destructive",onClick:g,children:"Delete"})]})]})})]})}}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=61112)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4944],{9276:(e,s,n)=>{"use strict";n.r(s),n.d(s,{default:()=>t});var r=n(95155),u=n(3765);function t({children:e}){return(0,r.jsx)(u.GV,{children:e})}},69154:(e,s,n)=>{Promise.resolve().then(n.bind(n,9276))}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=69154)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[80227],{10833:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>g});var a=s(95155),l=s(81402),n=s(73321),r=s(12115),o=s(3765),i=s(9005),d=s(2125),c=s(89239),m=s(60529);function u({value:e,onChange:t,keyPlaceholder:s="Key",valuePlaceholder:l="Value"}){let n=Object.entries(e);return(0,a.jsxs)("div",{className:"space-y-2",children:[n.map(([r,o],d)=>(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(m.p,{className:"flex-1 font-mono text-xs h-8",placeholder:s,value:r,onChange:e=>(function(e,s){let a={};for(let[t,l]of n)a[t===e?s:t]=l;t(a)})(r,e.target.value)}),(0,a.jsx)(m.p,{className:"flex-1 font-mono text-xs h-8",placeholder:l,value:o,onChange:s=>{var a;return a=s.target.value,void t({...e,[r]:a})}}),(0,a.jsx)("button",{type:"button",className:"shrink-0 p-1 rounded hover:bg-destructive/10 text-muted-foreground hover:text-destructive transition-colors",onClick:()=>{let s;return s={...e},void(delete s[r],t(s))},children:(0,a.jsx)(i.A,{className:"h-3.5 w-3.5"})})]},d)),(0,a.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:function(){let s="",a=0;for(;s in e;)a++,s=`key${a}`;t({...e,[s]:""})},children:[(0,a.jsx)(d.A,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]})}function h({value:e,onChange:t,placeholder:s="Value"}){return(0,a.jsxs)("div",{className:"space-y-2",children:[e.map((l,n)=>(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(m.p,{className:"flex-1 font-mono text-xs h-8",placeholder:s,value:l,onChange:s=>{var a;let l;return a=s.target.value,void((l=[...e])[n]=a,t(l))}}),(0,a.jsx)("button",{type:"button",className:"shrink-0 p-1 rounded hover:bg-destructive/10 text-muted-foreground hover:text-destructive transition-colors",onClick:()=>{t(e.filter((e,t)=>t!==n))},children:(0,a.jsx)(i.A,{className:"h-3.5 w-3.5"})})]},n)),(0,a.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:function(){t([...e,""])},children:[(0,a.jsx)(d.A,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]})}var v=s(45160);let p={type:"stdio",command:"",args:[],env:{},url:"",headers:{}},x=[{value:"stdio",label:"stdio"},{value:"http",label:"http"},{value:"sse",label:"sse (deprecated)"}];function f(e){if("stdio"===e.type){let t={type:"stdio",command:e.command};return e.args.length>0&&(t.args=e.args),Object.keys(e.env).length>0&&(t.env=e.env),t}let t={type:e.type,url:e.url};return Object.keys(e.headers).length>0&&(t.headers=e.headers),t}function j(e){return JSON.stringify(f(e))}function g({params:e}){let{name:t}=(0,r.use)(e),s=(0,n.useSearchParams)(),i=(0,n.useRouter)(),d="new"===t,y=s.get("scope")||"user",b=s.get("cwd")||void 0;(0,o.si)(d?"New MCP Server":"Edit MCP Server");let[N,k]=(0,r.useState)(d?"":decodeURIComponent(t)),[C,w]=(0,r.useState)(p),[S,A]=(0,r.useState)(j(p)),[P,$]=(0,r.useState)(!d),[E,R]=(0,r.useState)(!1),[U,O]=(0,r.useState)(null),_=j(C)!==S;(0,r.useEffect)(()=>{if(d)return;let e=new URLSearchParams({scope:y});b&&e.set("cwd",b),fetch(`/api/mcp-servers/${encodeURIComponent(t)}?${e}`).then(e=>{if(!e.ok)throw Error("Not found");return e.json()}).then(e=>{var t;let s={type:(t=e.config).type||(t.command?"stdio":t.url?"http":"stdio"),command:t.command||"",args:t.args||[],env:t.env||{},url:t.url||"",headers:t.headers||{}};w(s),A(j(s))}).catch(()=>{O("Failed to load server")}).finally(()=>$(!1))},[d,t,y,b]);let z=(0,r.useCallback)(async()=>{let e=N.trim();if(!e)return void O("Name is required");if(!/^[a-zA-Z0-9_-]+$/.test(e))return void O("Name can only contain letters, numbers, hyphens, and underscores");if("stdio"===C.type&&!C.command.trim())return void O("Command is required for stdio transport");if(("http"===C.type||"sse"===C.type)&&!C.url.trim())return void O("URL is required for "+C.type+" transport");R(!0),O(null);try{if(!(await fetch(`/api/mcp-servers/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:y,cwd:b,config:f(C)})})).ok)throw Error("Save failed");if(A(j(C)),O("Saved"),d){let t=new URLSearchParams({scope:y});b&&t.set("cwd",b),i.replace(`/mcp-servers/${encodeURIComponent(e)}?${t}`)}}catch{O("Failed to save")}finally{R(!1)}},[N,C,y,b,d,i]);function L(e){w(t=>({...t,...e}))}return P?(0,a.jsx)("div",{className:"flex-1 min-h-0 p-4",children:(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading..."})}):(0,a.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"flex-1 min-w-0",children:d?(0,a.jsx)(m.p,{placeholder:"server-name",value:N,onChange:e=>k(e.target.value),className:"font-mono"}):(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"font-mono font-bold text-lg",children:N}),(0,a.jsx)(v.E,{variant:"secondary",children:"user"===y?"Global":"Project"})]})}),(0,a.jsxs)(c.$,{size:"sm",onClick:z,disabled:E||!d&&!_,children:[(0,a.jsx)(l.A,{className:"h-4 w-4 mr-1"}),E?"Saving...":"Save"]})]}),U&&(0,a.jsx)("p",{className:`text-sm ${"Saved"===U?"text-green-600":"text-destructive"}`,children:U}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Transport"}),(0,a.jsx)("div",{className:"flex gap-1",children:x.map(e=>(0,a.jsx)(c.$,{variant:C.type===e.value?"default":"outline",size:"sm",onClick:()=>L({type:e.value}),children:e.label},e.value))})]}),"stdio"===C.type&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Command"}),(0,a.jsx)(m.p,{placeholder:"node",value:C.command,onChange:e=>L({command:e.target.value}),className:"font-mono"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Arguments"}),(0,a.jsx)(h,{value:C.args,onChange:e=>L({args:e}),placeholder:"argument"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Environment Variables"}),(0,a.jsx)(u,{value:C.env,onChange:e=>L({env:e}),keyPlaceholder:"VARIABLE",valuePlaceholder:"value"})]})]}),("http"===C.type||"sse"===C.type)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"URL"}),(0,a.jsx)(m.p,{placeholder:"https://example.com/mcp",value:C.url,onChange:e=>L({url:e.target.value}),className:"font-mono"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Headers"}),(0,a.jsx)(u,{value:C.headers,onChange:e=>L({headers:e}),keyPlaceholder:"Header-Name",valuePlaceholder:"value"})]})]})]})]})}},81402:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(99537).A)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},86853:(e,t,s)=>{Promise.resolve().then(s.bind(s,10833))}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=86853)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[67797],{36619:(e,s,t)=>{"use strict";t.d(s,{A:()=>n});let n=(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"}]])},61239:(e,s,t)=>{Promise.resolve().then(t.bind(t,78357))},78357:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>j});var n=t(95155),a=t(2125),r=t(92571),c=t(36619),l=t(65738),o=t(73321),i=t(12115),d=t(3765),m=t(41158),u=t(45160),x=t(89239),h=t(81477),p=t(42763);function j(){(0,d.si)("MCP Servers");let e="u">typeof localStorage&&localStorage.getItem("cockpit-agents-cwd")||void 0,{servers:s,loading:t,deleteServer:r}=function(e){let[s,t]=(0,i.useState)([]),[n,a]=(0,i.useState)(!0),r=(0,i.useCallback)(()=>{a(!0);let s=new URLSearchParams;e&&s.set("cwd",e),fetch(`/api/mcp-servers?${s}`).then(e=>e.json()).then(e=>t(e.servers)).catch(()=>t([])).finally(()=>a(!1))},[e]);(0,i.useEffect)(()=>{r()},[r]);let c=(0,i.useCallback)(async(s,t)=>{let n=new URLSearchParams({scope:t});"project"===t&&e&&n.set("cwd",e);try{if((await fetch(`/api/mcp-servers/${encodeURIComponent(s)}?${n}`,{method:"DELETE"})).ok)return r(),!0;return!1}catch{return!1}},[e,r]);return{servers:s,loading:n,refresh:r,deleteServer:c}}(e),c=(0,o.useRouter)(),[l,u]=(0,i.useState)(null),[j,g]=(0,i.useState)(!1),[v,N]=(0,i.useState)(!1),b=s.filter(e=>"user"===e.scope),w=s.filter(e=>"project"===e.scope);function C(e,s){g(!1),N(!1);let t=new URLSearchParams({scope:e});"project"===e&&s&&t.set("cwd",s),c.push(`/mcp-servers/new?${t}`)}function y(s,t){let n=new URLSearchParams({scope:t});"project"===t&&e&&n.set("cwd",e),c.push(`/mcp-servers/${encodeURIComponent(s)}?${n}`)}async function k(){l&&(await r(l.name,l.scope),u(null))}return(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("div",{}),(0,n.jsxs)(x.$,{size:"sm",onClick:()=>g(!0),children:[(0,n.jsx)(a.A,{className:"h-4 w-4 mr-1"}),"New Server"]})]}),t&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading servers..."}),!t&&0===s.length&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"No MCP servers configured. Add one to get started."}),b.length>0&&(0,n.jsxs)(h.Zp,{children:[(0,n.jsx)(h.aR,{children:(0,n.jsx)(h.ZB,{className:"text-base",children:"Global"})}),(0,n.jsx)(h.Wu,{className:"space-y-1",children:b.map(e=>(0,n.jsx)(f,{name:e.name,type:e.type,detail:e.command||e.url,scope:"user",onClick:()=>y(e.name,"user"),onDelete:()=>u({name:e.name,scope:"user"})},e.name))})]}),w.length>0&&(0,n.jsxs)(h.Zp,{children:[(0,n.jsx)(h.aR,{children:(0,n.jsx)(h.ZB,{className:"text-base",children:"Project"})}),(0,n.jsx)(h.Wu,{className:"space-y-1",children:w.map(s=>(0,n.jsx)(f,{name:s.name,type:s.type,detail:s.command||s.url,scope:"project",cwd:e,onClick:()=>y(s.name,"project"),onDelete:()=>u({name:s.name,scope:"project"})},s.name))})]}),(0,n.jsx)(p.lG,{open:j,onOpenChange:e=>{g(e),e||N(!1)},children:(0,n.jsxs)(p.Cf,{children:[(0,n.jsx)(p.c7,{children:(0,n.jsx)(p.L3,{children:"New MCP Server"})}),v?(0,n.jsx)(m.K,{onSelect:e=>C("project",e),onCancel:()=>N(!1)}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:"Where should this server be saved?"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(x.$,{variant:"outline",className:"flex-1",onClick:()=>C("user"),children:"Global"}),(0,n.jsx)(x.$,{variant:"outline",className:"flex-1",onClick:()=>N(!0),children:"Project"})]})]})]})}),(0,n.jsx)(p.lG,{open:!!l,onOpenChange:()=>u(null),children:(0,n.jsxs)(p.Cf,{children:[(0,n.jsx)(p.c7,{children:(0,n.jsx)(p.L3,{children:"Delete Server"})}),(0,n.jsxs)("p",{className:"text-sm text-muted-foreground mb-4",children:["Delete ",(0,n.jsx)("span",{className:"font-mono font-bold",children:l?.name}),"? This cannot be undone."]}),(0,n.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,n.jsx)(x.$,{variant:"outline",onClick:()=>u(null),children:"Cancel"}),(0,n.jsx)(x.$,{variant:"destructive",onClick:k,children:"Delete"})]})]})})]})}function f({name:e,type:s,detail:t,scope:a,cwd:o,onClick:d,onDelete:m}){let[x,h]=(0,i.useState)(!1),[p,j]=(0,i.useState)(null);async function g(s){s.stopPropagation(),h(!0),j(null);try{let s=new URLSearchParams({scope:a});"project"===a&&o&&s.set("cwd",o);let t=await fetch(`/api/mcp-servers/${encodeURIComponent(e)}/test?${s}`,{method:"POST"}),n=await t.json();j(n)}catch{j({success:!1,logs:"Request failed"})}finally{h(!1)}}return(0,n.jsxs)("div",{className:"rounded px-2 py-2 hover:bg-muted transition-colors",children:[(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsxs)("button",{type:"button",className:"flex-1 text-left min-w-0",onClick:d,children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"font-mono font-bold text-sm",children:e}),(0,n.jsx)(u.E,{variant:"secondary",className:"text-[10px]",children:s})]}),t&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground truncate mt-0.5",children:t})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,n.jsx)("button",{type:"button",className:"p-1 rounded text-muted-foreground hover:text-primary transition-colors",onClick:g,disabled:x,title:"Test connection",children:x?(0,n.jsx)(r.A,{className:"h-4 w-4 animate-spin"}):(0,n.jsx)(c.A,{className:"h-4 w-4"})}),(0,n.jsx)("button",{type:"button",className:"p-1 rounded hover:bg-destructive/10 text-muted-foreground hover:text-destructive transition-colors",onClick:e=>{e.stopPropagation(),m()},children:(0,n.jsx)(l.A,{className:"h-4 w-4"})})]})]}),p&&(0,n.jsxs)("div",{className:`mt-2 rounded border p-2 text-xs ${p.success?"border-green-500/30 bg-green-500/5":"border-red-500/30 bg-red-500/5"}`,children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,n.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${p.success?"bg-green-500":"bg-red-500"}`}),(0,n.jsx)("span",{className:"font-medium",children:p.success?"Connected":"Failed"})]}),(0,n.jsx)("pre",{className:"whitespace-pre-wrap text-muted-foreground font-mono leading-relaxed",children:p.logs})]})]})}}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=61239)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[29415],{14683:(e,t,s)=>{Promise.resolve().then(s.bind(s,49524))},49524:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>M});var n=s(95155),a=s(3765),l=s(76721),r=s(14225),o=s(65738),i=s(2125);let c=(0,s(99537).A)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var d=s(73321),u=s(12115),x=s(45160),h=s(89239),m=s(42763),f=s(89323),p=s(64577),g=s(99314),w=s(65377),j=s(92571),N=s(9005),b=s(81477),v=s(16617);function y({preview:e,matchStart:t,matchLength:s}){let a=e.slice(0,t),l=e.slice(t,t+s),r=e.slice(t+s);return(0,n.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-pre-wrap break-words select-text",children:[a,(0,n.jsx)("mark",{className:"bg-yellow-300/30 text-foreground rounded-sm px-0.5",children:l}),r]})}function S({text:e}){let[t,s]=(0,u.useState)(!1),a=(0,u.useCallback)(t=>{t.stopPropagation(),navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),1500)},[e]);return(0,n.jsx)(h.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:a,title:"Copy full message",children:t?(0,n.jsx)(p.A,{className:"h-3 w-3"}):(0,n.jsx)(g.A,{className:"h-3 w-3"})})}function k({onClose:e}){let[t,s]=(0,u.useState)(""),[a,l]=(0,u.useState)([]),[o,i]=(0,u.useState)(!1),[c,d]=(0,u.useState)(!1),[m,f]=(0,u.useState)(!1),[p,g]=(0,u.useState)(null),[C,$]=(0,u.useState)(null),A=(0,u.useRef)(null),E=(0,u.useRef)(null);(0,u.useEffect)(()=>{A.current?.focus()},[]);let D=(0,u.useCallback)((e,t,s)=>fetch(`/api/sessions/search?q=${encodeURIComponent(e)}&offset=${t}`,{signal:s}).then(e=>e.json()),[]);(0,u.useEffect)(()=>{if(t.length<2){l([]),f(!1),g(null);return}let e=setTimeout(()=>{E.current?.abort();let e=new AbortController;E.current=e,i(!0),D(t,0,e.signal).then(t=>{e.signal.aborted||(l(t.results||[]),g({total:t.totalFilesSearched||0,truncated:!!t.truncated}),f(!0),i(!1))}).catch(e=>{"AbortError"!==e.name&&(i(!1),f(!0))})},500);return()=>{clearTimeout(e)}},[t,D]);let L=(0,u.useCallback)(()=>{if(c||!p?.truncated)return;d(!0);let e=new AbortController;D(t,a.length,e.signal).then(e=>{l(t=>[...t,...e.results||[]]),g({total:e.totalFilesSearched||0,truncated:!!e.truncated}),d(!1)}).catch(()=>{d(!1)})},[t,a.length,c,p?.truncated,D]);(0,u.useEffect)(()=>()=>{E.current?.abort()},[]);let T=(0,u.useCallback)(t=>{t.target===t.currentTarget&&e()},[e]);return((0,u.useEffect)(()=>{let t=t=>{"Escape"===t.key&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[e]),C)?(0,n.jsx)(v.Q,{timestamp:C.timestamp,sessionId:C.sessionId,cwd:C.cwd,onClose:()=>$(null)}):(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:T,children:(0,n.jsxs)(b.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)(w.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,n.jsx)("input",{ref:A,value:t,onChange:e=>s(e.target.value),placeholder:"Search all session messages...",className:"flex-1 bg-transparent outline-none text-sm"}),o&&(0,n.jsx)(j.A,{className:"h-4 w-4 animate-spin text-muted-foreground shrink-0"}),(0,n.jsx)(h.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:e,children:(0,n.jsx)(N.A,{className:"h-4 w-4"})})]}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[m&&0===a.length&&(0,n.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:"No results"}),a.map((e,t)=>(0,n.jsxs)("button",{onClick:()=>$(e),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)(x.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",children:new Date(e.timestamp).toLocaleString()}),(0,n.jsx)("div",{className:"ml-auto flex items-center gap-1",children:(0,n.jsx)(S,{text:e.fullContent})})]}),(0,n.jsxs)("div",{className:"mb-1.5 text-[11px] text-muted-foreground",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)(r.A,{className:"h-3 w-3 shrink-0"}),(0,n.jsx)("span",{className:"truncate",children:e.dirName})]}),(0,n.jsx)("div",{className:"truncate pl-[18px]",children:e.sessionName})]}),(0,n.jsx)(y,{preview:e.preview,matchStart:e.matchStart,matchLength:e.matchLength})]},`${e.messageId}-${t}`))]}),p&&m&&a.length>0&&(0,n.jsxs)("div",{className:"px-4 py-2 border-t text-[11px] text-muted-foreground flex items-center justify-between",children:[(0,n.jsxs)("span",{children:[a.length," result",1!==a.length?"s":""," across ",p.total," session",1!==p.total?"s":""]}),p.truncated&&(0,n.jsx)("button",{onClick:L,disabled:c,className:"text-[11px] text-primary hover:underline disabled:opacity-50",children:c?"Loading...":"Load more"})]})]})})}function C(){let[e,t]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.shiftKey&&"f"===e.key&&(e.preventDefault(),t(!0))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{onClick:()=>t(!0),className:"w-full flex items-center gap-2 rounded-lg border bg-card px-3 py-2 text-sm text-muted-foreground hover:bg-accent/50 transition-colors",children:[(0,n.jsx)(w.A,{className:"h-4 w-4"}),(0,n.jsx)("span",{children:"Search all session messages..."}),(0,n.jsx)("kbd",{className:"ml-auto hidden sm:inline text-[10px] border rounded px-1.5 py-0.5",children:"Ctrl+Shift+F"})]}),e&&(0,n.jsx)(k,{onClose:()=>t(!1)})]})}var $=s(20108);function A({session:e,onClick:t,onDelete:s}){return(0,n.jsxs)("button",{onClick:t,className:"w-full flex items-center gap-3 px-3 py-2 text-left rounded-md hover:bg-accent/50 transition-colors group",children:[(0,n.jsx)("span",{className:"text-sm truncate flex-1",children:e.name}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:["running"===e.status&&(0,n.jsx)(x.E,{variant:"default",className:"text-xs",children:"running"}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:function(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let s=Math.floor(t/60);if(s<60)return`${s}m ago`;let n=Math.floor(s/60);if(n<24)return`${n}h ago`;let a=Math.floor(n/24);return a<30?`${a}d ago`:new Date(e).toLocaleDateString()}(e.lastActiveAt)}),s&&"running"!==e.status&&(0,n.jsx)("span",{role:"button",onClick:e=>{e.stopPropagation(),s(e)},className:"p-1 rounded hover:bg-destructive/10 opacity-0 group-hover:opacity-100 transition-opacity",title:"Delete session",children:(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-destructive"})})]})]})}var E=s(70518);let D=null,L="cockpit_fav_dirs";function T({group:e,isFavorite:t,onToggleFavorite:s,onSelectSession:a,onCreateSession:d,onDeleteSession:h,onDeleteAll:m}){let[f,p]=(0,u.useState)(!1),[g,w]=(0,u.useState)(null),[j,N]=(0,u.useState)(!1),b=g||e.sessions,v=b.length<e.totalSessionCount,y=b[0]?.lastActiveAt||0,S=b.filter(e=>"running"===e.status).length,k=async()=>{if(!j){N(!0);try{let t=await fetch(`/api/sessions/group?cwd=${encodeURIComponent(e.cwd)}`);if(t.ok){let e=await t.json();w(e.sessions||[])}}finally{N(!1)}}};return(0,n.jsxs)("div",{className:"rounded-lg border bg-card",children:[(0,n.jsxs)("div",{role:"button",onClick:()=>p(!f),className:"w-full flex items-center gap-2 p-3 text-left hover:bg-accent/50 rounded-lg transition-colors cursor-pointer",children:[(0,n.jsx)(l.A,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform ${f?"rotate-90":""}`}),(0,n.jsx)(r.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,n.jsx)("span",{className:"font-medium text-sm truncate flex-1",children:e.dirName}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[S>0&&(0,n.jsxs)("span",{className:"text-xs bg-primary text-primary-foreground px-1.5 py-0.5 rounded",children:[S," running"]}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:function(e){let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let s=Math.floor(t/60);if(s<60)return`${s}m ago`;let n=Math.floor(s/60);if(n<24)return`${n}h ago`;let a=Math.floor(n/24);return a<30?`${a}d ago`:new Date(e).toLocaleDateString()}(y)}),(0,n.jsxs)(x.E,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:[e.totalSessionCount," session",1!==e.totalSessionCount?"s":""]})]})]}),f&&(0,n.jsxs)("div",{className:"px-3 pb-3 space-y-1",children:[(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 pb-1",children:[(0,n.jsx)("button",{onClick:()=>m(e),className:"p-1 rounded hover:bg-destructive/10",title:"Delete all sessions in this folder",children:(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 text-muted-foreground hover:text-destructive"})}),(0,n.jsx)("button",{onClick:()=>d(e.cwd),className:"p-1 rounded hover:bg-accent",title:"New session in this folder",children:(0,n.jsx)(i.A,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,n.jsx)("button",{onClick:()=>s(),className:"p-1 rounded hover:bg-accent",children:(0,n.jsx)(c,{className:`h-3.5 w-3.5 ${t?"fill-yellow-400 text-yellow-400":"text-muted-foreground"}`})})]}),b.map(e=>(0,n.jsx)(A,{session:e,onClick:()=>a(e),onDelete:()=>h(e)},e.id)),v&&(0,n.jsx)("button",{onClick:k,disabled:j,className:"w-full text-xs text-muted-foreground hover:text-foreground py-2 rounded hover:bg-accent/50 transition-colors disabled:opacity-50",children:j?"Loading...":`Load all ${e.totalSessionCount} sessions`})]})]})}function I(){let e=(0,d.useRouter)(),{connected:t}=(0,f.h)(),[s,a]=(0,u.useState)(D||[]),[l,r]=(0,u.useState)(new Set),[o,c]=(0,u.useState)(!1),[x,p]=(0,u.useState)(!!D),g=(0,u.useRef)(!1),[w,j]=(0,u.useState)(null),[N,b]=(0,u.useState)(!1);(0,u.useEffect)(()=>{r(function(){try{let e=localStorage.getItem(L);if(e)return new Set(JSON.parse(e))}catch{}return new Set}())},[]);let v=(0,u.useCallback)(async()=>{let e=await fetch("/api/sessions");if(e.ok){let t=((await e.json()).groups||[]).filter(e=>!e.cwd.endsWith(".cockpit/reviews"));D=t,a(t)}p(!0)},[]);(0,u.useEffect)(()=>{g.current||(g.current=!0,v())},[v]),(0,u.useEffect)(()=>{t&&v()},[t,v]);let y=e=>{r(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),localStorage.setItem(L,JSON.stringify([...s])),s})},S=async(t,s)=>{let n=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,name:s||void 0})});if(n.ok){let s=await n.json();await (0,E.MN)(s.sessionId),e.push(`/sessions/${s.sessionId}?cwd=${encodeURIComponent(t)}`)}},k=t=>{e.push(`/sessions/${t.id}?cwd=${encodeURIComponent(t.cwd)}&historyView=true`)},A=async()=>{if(w){if(b(!0),"single"===w.type){let{session:e}=w;await fetch(`/api/sessions/${e.id}?cwd=${encodeURIComponent(e.cwd)}`,{method:"DELETE"})}else{let{group:e}=w,t=e.sessions;if(e.totalSessionCount>e.sessions.length){let s=await fetch(`/api/sessions/group?cwd=${encodeURIComponent(e.cwd)}`);s.ok&&(t=(await s.json()).sessions||t)}let s=t.filter(e=>"running"!==e.status).map(e=>({id:e.id,cwd:e.cwd}));s.length>0&&await fetch("/api/sessions/bulk-delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessions:s})})}j(null),b(!1),v()}},I=w?.type==="single"?"Delete Session":"Delete All Sessions",M=w?.type==="single"?"Permanently delete this session and its transcript? This cannot be undone.":(()=>{let e=w?.group;if(!e)return"";let t=e.sessions.filter(e=>"running"===e.status).length,s=e.totalSessionCount-t,n=`Permanently delete ${s} session${1!==s?"s":""} in "${e.dirName}"? This cannot be undone.`;return t>0&&(n+=` ${t} running session${1!==t?"s":""} will be skipped.`),n})(),O=s.filter(e=>l.has(e.cwd)),R=s.filter(e=>!l.has(e.cwd));return(0,n.jsxs)("div",{className:"mx-auto max-w-lg p-4 pb-24 space-y-3",children:[(0,n.jsx)("h1",{className:"text-2xl font-bold",children:"Sessions"}),(0,n.jsx)(C,{}),0===s.length&&x&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"No sessions found. Create one to get started."}),O.map(e=>(0,n.jsx)(T,{group:e,isFavorite:!0,onToggleFavorite:()=>y(e.cwd),onSelectSession:k,onCreateSession:e=>S(e,""),onDeleteSession:e=>j({type:"single",session:e}),onDeleteAll:e=>j({type:"bulk",group:e})},e.cwd)),O.length>0&&R.length>0&&(0,n.jsx)("div",{className:"border-t"}),R.map(e=>(0,n.jsx)(T,{group:e,isFavorite:!1,onToggleFavorite:()=>y(e.cwd),onSelectSession:k,onCreateSession:e=>S(e,""),onDeleteSession:e=>j({type:"single",session:e}),onDeleteAll:e=>j({type:"bulk",group:e})},e.cwd)),(0,n.jsx)("div",{className:"fixed bottom-6 right-6",children:(0,n.jsxs)(h.$,{size:"lg",className:"rounded-full shadow-lg",onClick:()=>c(!0),children:[(0,n.jsx)(i.A,{className:"h-5 w-5 mr-1"}),"New Session"]})}),(0,n.jsx)($.t,{open:o,onOpenChange:c,onSubmit:S}),(0,n.jsx)(m.lG,{open:!!w,onOpenChange:()=>j(null),children:(0,n.jsxs)(m.Cf,{children:[(0,n.jsx)(m.c7,{children:(0,n.jsx)(m.L3,{children:I})}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:M}),(0,n.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,n.jsx)(h.$,{variant:"outline",onClick:()=>j(null),disabled:N,children:"Cancel"}),(0,n.jsx)(h.$,{variant:"destructive",onClick:A,disabled:N,children:N?"Deleting...":"Delete"})]})]})})]})}function M(){return(0,a.si)("Cockpit"),(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:(0,n.jsx)(I,{})})}}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=14683)),_N_E=e.O()}]);
|
package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-74c23b04f5c3ff88.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44468],{11701:(e,t,s)=>{"use strict";s.d(t,{G:()=>a});var n=s(12115);let r="(min-width: 768px)";function a(){let[e,t]=(0,n.useState)(()=>window.matchMedia(r).matches);return(0,n.useEffect)(()=>{let e=window.matchMedia(r),s=e=>t(e.matches);return e.addEventListener("change",s),()=>e.removeEventListener("change",s)},[]),e}},31966:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(99537).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},38630:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>G});var n=s(95155),r=s(12115),a=s(63690),l=s(20660),i=s(89811),o=s(797),c=s(44354),d=s(83212),h=s(94088),u=s(12363),p=s(64577),x=s(92571),m=s(1275),f=s(31966),g=s(15480),b=s(99537);let j=(0,b.A)("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);var N=s(94890);let w=(0,b.A)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]),v=(0,b.A)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var y=s(73321),k=s(3765),S=s(93273),C=s(57594),$=s(70518),A=s(89239),E=s(11701),R=s(22317),I=s(40980);function L(e,t){let s=t.find(t=>t.path===e);return s?0===s.deletions&&s.additions>0?(0,n.jsx)(c.A,{className:"h-3.5 w-3.5 text-green-500 shrink-0"}):0===s.additions&&s.deletions>0?(0,n.jsx)(d.A,{className:"h-3.5 w-3.5 text-red-500 shrink-0"}):(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 text-yellow-500 shrink-0"}):(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 text-yellow-500 shrink-0"})}function P({body:e,open:t,onToggle:s}){let[a,l]=(0,r.useState)(!1),i=e.split("\n"),o=i.length>10,c=!a&&o?i.slice(0,10).join("\n"):e;return(0,n.jsxs)("div",{className:"border-b",children:[(0,n.jsxs)("button",{onClick:s,className:"flex items-center gap-2 w-full px-4 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[t?(0,n.jsx)(h.A,{className:"h-3.5 w-3.5"}):(0,n.jsx)(u.A,{className:"h-3.5 w-3.5"}),"Description"]}),t&&(0,n.jsxs)("div",{className:"px-4 pb-3",children:[(0,n.jsx)("div",{className:(0,I.cn)("text-sm prose prose-sm dark:prose-invert max-w-none whitespace-pre-wrap",!a&&o&&"line-clamp-[10]"),children:c}),o&&(0,n.jsx)("button",{onClick:()=>l(e=>!e),className:"mt-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:a?"Show less":`Show more (${i.length} lines)`})]})]})}let M=new Set(["png","jpg","jpeg","gif","bmp","ico","webp","avif","woff","woff2","ttf","eot","otf","zip","gz","tar","bz2","7z","rar","pdf","doc","docx","xls","xlsx","ppt","pptx","mp3","mp4","wav","avi","mov","mkv","webm","exe","dll","so","dylib"]);function D({onResize:e}){let t=(0,r.useRef)(!1),s=(0,r.useRef)(0),a=(0,r.useCallback)(n=>{n.preventDefault(),t.current=!0,s.current=n.clientX;let r=n=>{if(!t.current)return;let r=s.current-n.clientX;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:a,className:"w-1 shrink-0 cursor-col-resize bg-border hover:bg-primary/30 transition-colors"})}let O="cockpit_review_sessions",U="cockpit_review_viewed:";function z(){try{let e=localStorage.getItem(O);if(e)return JSON.parse(e)}catch{}return{}}function _(e,t){localStorage.setItem(U+e,JSON.stringify([...t]))}let T=new Map;function F(e,t,s){return fetch(`/api/github/file-content?repo=${encodeURIComponent(e)}&path=${encodeURIComponent(t)}&ref=${encodeURIComponent(s)}`).then(e=>e.ok?e.json():null).then(e=>e?.content??null).catch(()=>null)}function J({file:e,pr:t,repo:s,settings:o,viewed:c,collapsed:f,onToggleViewed:g,onToggleCollapse:b,sectionRef:j}){var N,w;let v,y=(N=e.patch,/^deleted file mode/m.test(N)),k=(w=e.path,v=w.split(".").pop()?.toLowerCase()??"",M.has(v)),[S,$]=(0,r.useState)(!1),[A,E]=(0,r.useState)(!1),[R,P]=(0,r.useState)(!1),[D,O]=(0,r.useState)(null),U=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(y&&!S||k&&!A)return;let e=U.current;if(!e)return;let t=new IntersectionObserver(([e])=>{e.isIntersecting&&(P(!0),t.disconnect())},{rootMargin:"200px"});return t.observe(e),()=>t.disconnect()},[y,S,k,A]),(0,r.useEffect)(()=>{if(!R||!t)return;let n=!1,r=null;try{let t=(0,a.J2)(e.patch);t.length>0&&t[0].files.length>0&&(r=t[0].files[0])}catch(t){console.warn(`[diff] parsePatchFiles failed for ${e.path}:`,t)}if(!r)return void console.warn(`[diff] no meta for ${e.path}, falling back to PatchDiff`);let l=t.mergeBaseSha||t.baseRefOid||t.baseRefName,i=t.headRefOid||t.headRefName;return Promise.all([F(s,e.path,l),F(s,e.path,i)]).then(([e,t])=>{n||(null!=e&&null!=t&&function(e,t,s){let n=t.split(/\r?\n/).map(e=>e+"\n"),r=s.split(/\r?\n/).map(e=>e+"\n");for(let t of e.hunks){let e=t.deletionStart-1-t.deletionLineIndex,s=t.additionStart-1-t.additionLineIndex;for(let n of(t.deletionLineIndex=t.deletionStart-1,t.additionLineIndex=t.additionStart-1,t.hunkContent))n.deletionLineIndex+=e,n.additionLineIndex+=s}e.deletionLines=n,e.additionLines=r,e.isPartial=!1}(r,e,t),O(r))}).catch(t=>{console.error(`[diff] fetch failed for ${e.path}:`,t),O(r)}),()=>{n=!0}},[R,t,s,e.patch,e.path]);let z={theme:{dark:"pierre-dark",light:"pierre-light"},themeType:!("u"<typeof document)&&document.documentElement.classList.contains("dark")?"dark":"light",overflow:"wrap",diffStyle:o.diffStyle,hunkSeparators:"line-info",expansionLineCount:20,disableFileHeader:!0,unsafeCSS:C.j8};return(0,n.jsx)("div",{ref:e=>{U.current=e,j(e)},className:(0,I.cn)("rounded border overflow-clip",c&&"opacity-60"),children:f?(0,n.jsxs)("button",{onClick:b,className:"flex items-center gap-2 w-full px-4 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors",children:[(0,n.jsx)(u.A,{className:"h-3.5 w-3.5 shrink-0"}),c&&(0,n.jsx)(p.A,{className:"h-3 w-3 text-green-500 shrink-0"}),(0,n.jsx)("span",{className:"font-mono text-xs truncate text-left",dir:"rtl",title:e.path,children:(0,n.jsx)("bdo",{dir:"ltr",children:e.path})})]}):y&&!S?(0,n.jsxs)("button",{onClick:()=>$(!0),className:"flex items-center gap-2 w-full px-4 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors",children:[(0,n.jsx)(d.A,{className:"h-3.5 w-3.5 text-red-500 shrink-0"}),(0,n.jsx)("span",{className:"font-mono text-xs truncate text-left",dir:"rtl",title:e.path,children:(0,n.jsx)("bdo",{dir:"ltr",children:e.path})}),(0,n.jsx)("span",{className:"text-xs shrink-0",children:"deleted — click to load"})]}):k&&!A?(0,n.jsxs)("button",{onClick:()=>E(!0),className:"flex items-center gap-2 w-full px-4 py-2 text-sm text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors",children:[L(e.path,t?.files||[]),(0,n.jsx)("span",{className:"font-mono text-xs truncate text-left",dir:"rtl",title:e.path,children:(0,n.jsx)("bdo",{dir:"ltr",children:e.path})}),(0,n.jsx)("span",{className:"text-xs shrink-0",children:"binary — click to load"})]}):R?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"sticky top-0 z-10 flex items-center gap-2 px-4 py-1.5 text-sm border-b bg-muted/80 backdrop-blur-sm",children:[L(e.path,t?.files||[]),(0,n.jsx)("span",{className:"font-mono text-xs truncate flex-1 min-w-0 text-left",dir:"rtl",title:e.path,children:(0,n.jsx)("bdo",{dir:"ltr",children:e.path})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),g(),f||b()},className:(0,I.cn)("h-4 w-4 shrink-0 rounded border flex items-center justify-center transition-colors",c?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/40 bg-transparent hover:border-muted-foreground/60"),title:"Mark as viewed and collapse",children:c&&(0,n.jsx)(p.A,{className:"h-3 w-3",strokeWidth:3})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),b()},className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",title:"Collapse",children:(0,n.jsx)(h.A,{className:"h-3 w-3"})}),t&&(0,n.jsx)("a",{href:`${t.url}/files#diff-${e.path}`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",onClick:e=>e.stopPropagation(),children:(0,n.jsx)(m.A,{className:"h-3 w-3"})})]}),(0,n.jsx)(C.sU,{fallback:(0,n.jsx)("pre",{className:"p-4 text-xs text-muted-foreground whitespace-pre-wrap",children:e.patch}),children:D?(0,n.jsx)(l.Q,{fileDiff:D,options:z}):(0,n.jsx)(i.C,{patch:e.patch,options:z})})]}):(0,n.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,n.jsx)(x.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})})})}function q({owner:e,repo:t,number:s}){let a=`${e}/${t}`,l=`${a}#${s}`,{settings:i}=(0,R.t)(),{setSidebarSection:o,removeSidebarSection:c}=(0,k.E2)(),d=(0,y.useRouter)(),h=(0,E.G)(),[u,b]=(0,r.useState)(null),[C,M]=(0,r.useState)([]),[F,G]=(0,r.useState)(!0),[W,Q]=(0,r.useState)(null),H=T.get(l)||{chatWidth:400,descriptionOpen:!0},[V,B]=(0,r.useState)(H.chatWidth),[X,K]=(0,r.useState)(H.descriptionOpen),[Y,Z]=(0,r.useState)(null),[ee,et]=(0,r.useState)(()=>(function(e){try{let t=localStorage.getItem(U+e);if(t)return new Set(JSON.parse(t))}catch{}return new Set})(l)),[es,en]=(0,r.useState)(new Set),[er,ea]=(0,r.useState)(null),[el,ei]=(0,r.useState)(null),[eo,ec]=(0,r.useState)(!0),[ed,eh]=(0,r.useState)([]),[eu,ep]=(0,r.useState)(!1),[ex,em]=(0,r.useState)(""),[ef,eg]=(0,r.useState)(null),[eb,ej]=(0,r.useState)(!1),eN=(0,r.useRef)(null),ew=(0,r.useRef)(new Map);(0,k.si)(u?`#${s} ${u.title}`:`PR #${s}`),(0,r.useEffect)(()=>{T.set(l,{chatWidth:V,descriptionOpen:X})},[l,V,X]),(0,r.useEffect)(()=>{G(!0),Q(null);let e=fetch(`/api/github/prs/view?repo=${encodeURIComponent(a)}&number=${s}`).then(e=>e.ok?e.json():e.json().then(e=>Promise.reject(e.error))),t=fetch(`/api/github/prs/diff?repo=${encodeURIComponent(a)}&number=${s}`).then(e=>e.ok?e.json():e.json().then(e=>Promise.reject(e.error)));fetch(`/api/github/prs/checks?repo=${encodeURIComponent(a)}&number=${s}`).then(e=>e.ok?e.json():[]).then(e=>{Array.isArray(e)&&eh(e)}).catch(()=>{}),Promise.all([e,t]).then(([e,t])=>{b(e),M(t.files||[])}).catch(e=>Q(String(e))).finally(()=>G(!1))},[a,s]),(0,r.useEffect)(()=>{ea(null),ei(null),ec(!0)},[]),(0,r.useEffect)(()=>{if(!u)return;let e=u.title;!async function(){ec(!0);let t=z()[l];if(t)try{let e=await fetch(`/api/sessions/${t}`);if(e.ok){ea(t);let s=await e.json();ei(s.session?.cwd||null),(0,$.MJ)(t),ec(!1);return}}catch{}try{let t=await fetch("/api/github/review-session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repo:a,prNumber:s,prTitle:e})});if(t.ok){var n;let e,s=await t.json();ea(s.sessionId),ei(s.cwd),n=s.sessionId,(e=z())[l]=n,localStorage.setItem(O,JSON.stringify(e)),(0,$.MJ)(s.sessionId)}}catch{}ec(!1)}()},[u,l,a,s]),(0,r.useEffect)(()=>{if(!Y)return;let e=ew.current.get(Y);e&&e.scrollIntoView({behavior:"smooth",block:"start"}),Z(null)},[Y]);let ev=(0,r.useCallback)(e=>{et(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),_(l,s),s})},[l]),ey=(0,r.useCallback)(e=>{et(t=>{if(t.has(e))return t;let s=new Set(t);return s.add(e),_(l,s),s})},[l]),ek=(0,r.useCallback)(e=>{en(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]),eS=(0,r.useCallback)(e=>{B(t=>Math.max(280,Math.min(Math.floor(.5*window.innerWidth),t+e)))},[]),eC=(0,r.useCallback)(async e=>{if("request-changes"!==e||ex.trim()){eg(e);try{if((await fetch("/api/github/prs/review",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repo:a,number:s,action:e,body:ex})})).ok){em("");let e=await fetch(`/api/github/prs/view?repo=${encodeURIComponent(a)}&number=${s}`);e.ok&&b(await e.json())}}catch{}eg(null)}},[a,s,ex]),e$=(0,r.useCallback)(()=>{if(!er||!u||eb||!eN.current)return;ej(!0);let e=`Repository: ${a}, PR #${s}: ${u.title}
|
|
2
|
+
Author: ${u.author.login}, Branch: ${u.headRefName} -> ${u.baseRefName}
|
|
3
|
+
Files changed: ${u.changedFiles} (+${u.additions} -${u.deletions})`;eN.current(`/review
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
${e}`)},[er,u,a,s,eb]);if((0,r.useEffect)(()=>0===C.length?void c("pr-files"):(o({id:"pr-files",title:"PR Files",order:20,badge:String(C.length),content:(0,n.jsx)(n.Fragment,{children:C.map(e=>{let t;return(0,n.jsxs)("div",{className:(0,I.cn)("flex items-center gap-2 px-3 py-1.5 text-sm cursor-pointer border-b last:border-b-0 hover:bg-muted/50",ee.has(e.path)&&"opacity-50"),onClick:()=>{es.has(e.path)&&ek(e.path),Z(e.path)},children:[(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),ev(e.path),ee.has(e.path)||es.has(e.path)||ek(e.path)},className:(0,I.cn)("h-4 w-4 shrink-0 rounded border flex items-center justify-center transition-colors",ee.has(e.path)?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/40 bg-transparent hover:border-muted-foreground/60"),children:ee.has(e.path)&&(0,n.jsx)(p.A,{className:"h-3 w-3",strokeWidth:3})}),L(e.path,u?.files||[]),(0,n.jsx)("span",{className:"font-mono text-xs truncate flex-1 min-w-0 text-left",dir:"rtl",title:e.path,children:(0,n.jsx)("bdo",{dir:"ltr",children:e.path})}),u?.files&&((t=u.files.find(t=>t.path===e.path))?(0,n.jsxs)("span",{className:"text-xs font-mono shrink-0 flex gap-1",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]})]}):null)]},e.path)})})}),()=>c("pr-files")),[C,u,ee,es,o,c,ev,ek]),F)return(0,n.jsx)("div",{className:"flex items-center justify-center flex-1",children:(0,n.jsx)(x.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})});if(W)return(0,n.jsx)("div",{className:"flex-1 p-4",children:(0,n.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive",children:W})});if(!u)return null;let eA=h&&!!er&&!eo,eE=ed.filter(e=>"SUCCESS"===e.conclusion||"NEUTRAL"===e.conclusion||"SKIPPED"===e.conclusion),eR=ed.filter(e=>"FAILURE"===e.conclusion||"CANCELLED"===e.conclusion||"TIMED_OUT"===e.conclusion||"ACTION_REQUIRED"===e.conclusion),eI=ed.filter(e=>"PENDING"===e.state||"QUEUED"===e.state||"IN_PROGRESS"===e.state||"WAITING"===e.state);return(0,n.jsxs)("div",{className:"flex flex-col flex-1 min-h-0",children:[(0,n.jsxs)("div",{className:"shrink-0 border-b px-4 py-2 flex items-center gap-3 text-sm",children:[(0,n.jsx)(A.$,{variant:"ghost",size:"icon",className:"shrink-0 h-7 w-7",onClick:()=>d.push(`/reviews/${e}/${t}`),children:(0,n.jsx)(f.A,{className:"h-4 w-4"})}),(0,n.jsx)("span",{className:"text-muted-foreground",children:u.author.login}),(0,n.jsxs)("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,n.jsx)(g.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{children:u.headRefName}),(0,n.jsx)("span",{className:"mx-1",children:"into"}),(0,n.jsx)("span",{children:u.baseRefName})]}),u.isDraft&&(0,n.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-muted text-muted-foreground",children:"Draft"}),"APPROVED"===u.reviewDecision&&(0,n.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-green-500/15 text-green-500",children:"Approved"}),"CHANGES_REQUESTED"===u.reviewDecision&&(0,n.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-red-500/15 text-red-500",children:"Changes requested"}),ed.length>0&&(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsxs)("button",{onClick:()=>ep(e=>!e),className:"flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[eE.length>0&&(0,n.jsxs)("span",{className:"flex items-center gap-0.5 text-green-500",children:[(0,n.jsx)(j,{className:"h-3 w-3"}),eE.length]}),eR.length>0&&(0,n.jsxs)("span",{className:"flex items-center gap-0.5 text-red-500",children:[(0,n.jsx)(N.A,{className:"h-3 w-3"}),eR.length]}),eI.length>0&&(0,n.jsxs)("span",{className:"flex items-center gap-0.5 text-yellow-500",children:[(0,n.jsx)(w,{className:"h-3 w-3"}),eI.length]})]}),eu&&(0,n.jsx)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-popover border rounded-md shadow-md py-1 min-w-[250px] max-h-[300px] overflow-y-auto",children:ed.map(e=>(0,n.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-3 py-1.5 text-xs hover:bg-muted/50 transition-colors",children:["SUCCESS"===e.conclusion||"NEUTRAL"===e.conclusion||"SKIPPED"===e.conclusion?(0,n.jsx)(j,{className:"h-3 w-3 text-green-500 shrink-0"}):"FAILURE"===e.conclusion||"CANCELLED"===e.conclusion||"TIMED_OUT"===e.conclusion||"ACTION_REQUIRED"===e.conclusion?(0,n.jsx)(N.A,{className:"h-3 w-3 text-red-500 shrink-0"}):(0,n.jsx)(w,{className:"h-3 w-3 text-yellow-500 shrink-0"}),(0,n.jsx)("span",{className:"truncate",children:e.name})]},e.name))})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 ml-auto text-xs text-muted-foreground",children:[(0,n.jsxs)("span",{className:"text-green-500",children:["+",u.additions]}),(0,n.jsxs)("span",{className:"text-red-500",children:["-",u.deletions]}),(0,n.jsxs)("span",{children:[u.changedFiles," files"]}),(0,n.jsx)("a",{href:u.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 hover:text-foreground transition-colors",children:(0,n.jsx)(m.A,{className:"h-3 w-3"})}),er&&!eo&&(0,n.jsxs)(A.$,{variant:"outline",size:"sm",className:"h-6 px-2.5 text-xs gap-1.5 border-green-500/50 text-green-500 hover:bg-green-500/10",onClick:e$,disabled:eb,children:[(0,n.jsx)(v,{className:"h-3.5 w-3.5"}),eb?"Review Started":"Start Agent Review"]})]})]}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 flex flex-row",children:[(0,n.jsxs)("div",{className:"flex-1 min-w-0 overflow-y-auto",children:[u.body&&(0,n.jsx)(P,{body:u.body,open:X,onToggle:()=>K(e=>!e)}),u.labels.length>0&&(0,n.jsx)("div",{className:"flex gap-1 px-4 py-2 flex-wrap border-b",children:u.labels.map(e=>(0,n.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full border",style:{borderColor:`#${e.color}`,color:`#${e.color}`},children:e.name},e.name))}),(0,n.jsxs)("div",{className:"border-b px-4 py-3 space-y-2",children:[(0,n.jsx)("textarea",{value:ex,onChange:e=>em(e.target.value),placeholder:"Leave a review comment...",className:"w-full text-sm rounded border bg-transparent px-3 py-2 min-h-[60px] resize-y focus:outline-none focus:ring-1 focus:ring-ring"}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsxs)(A.$,{variant:"outline",size:"sm",className:"text-xs",disabled:!!ef,onClick:()=>eC("comment"),children:["comment"===ef?(0,n.jsx)(x.A,{className:"h-3 w-3 animate-spin mr-1"}):null,"Comment"]}),(0,n.jsxs)(A.$,{variant:"outline",size:"sm",className:"text-xs text-green-500 border-green-500/30 hover:bg-green-500/10",disabled:!!ef,onClick:()=>eC("approve"),children:["approve"===ef?(0,n.jsx)(x.A,{className:"h-3 w-3 animate-spin mr-1"}):null,"Approve"]}),(0,n.jsxs)(A.$,{variant:"outline",size:"sm",className:"text-xs text-red-500 border-red-500/30 hover:bg-red-500/10",disabled:!!ef||!ex.trim(),onClick:()=>eC("request-changes"),children:["request-changes"===ef?(0,n.jsx)(x.A,{className:"h-3 w-3 animate-spin mr-1"}):null,"Request Changes"]})]})]}),(0,n.jsxs)("div",{className:"p-4 space-y-3",children:[0===C.length&&(0,n.jsx)("div",{className:"text-center py-12 text-sm text-muted-foreground",children:"No changes"}),C.map(e=>(0,n.jsx)(J,{file:e,pr:u,repo:a,settings:i,viewed:ee.has(e.path),collapsed:es.has(e.path),onToggleViewed:()=>ey(e.path),onToggleCollapse:()=>ek(e.path),sectionRef:t=>{t&&ew.current.set(e.path,t)}},e.path))]})]}),eA&&el&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(D,{onResize:eS}),(0,n.jsx)("div",{className:"flex flex-col shrink-0 border-l min-h-0",style:{width:V},children:(0,n.jsx)(S.I,{sessionId:er,cwd:el,initialContext:`Reviewing PR #${s}: ${u.title}
|
|
7
|
+
Repo: ${a}
|
|
8
|
+
Author: ${u.author.login}
|
|
9
|
+
Branch: ${u.headRefName} into ${u.baseRefName}
|
|
10
|
+
Files changed: ${u.changedFiles} (+${u.additions} -${u.deletions})${u.body?`
|
|
11
|
+
|
|
12
|
+
Description:
|
|
13
|
+
${u.body.slice(0,2e3)}`:""}`,onSendMessage:e=>{eN.current=e}})})]})]})]})}function G({params:e}){let{owner:t,repo:s,number:a}=(0,r.use)(e);return(0,n.jsx)(q,{owner:t,repo:s,number:parseInt(a,10)})}},56206:(e,t,s)=>{Promise.resolve().then(s.bind(s,38630))},94890:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(99537).A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])}},e=>{e.O(0,[989,11242,75866,3765,93273,28441,93794,77358],()=>e(e.s=56206)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[50198],{9181:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>N});var r=t(95155),l=t(35397),n=t(99537);let a=(0,n.A)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]);var c=t(94890);let i=(0,n.A)("circle-dot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);var d=t(31966),o=t(65377),u=t(82749),x=t(92571),m=t(73321),h=t(12115),p=t(3765),f=t(89239),g=t(40980);let j=new Map;function N({params:e}){let{owner:s,repo:t}=(0,h.use)(e),n=`${s}/${t}`;(0,p.si)(n);let y=(0,m.useRouter)(),[v,w]=(0,h.useState)("open"),[k,b]=(0,h.useState)(()=>j.get(`${n}:open`)||[]),[C,E]=(0,h.useState)(""),[$,A]=(0,h.useState)(!j.has(`${n}:open`)),[R,S]=(0,h.useState)(null),D=(0,h.useCallback)((e=!1)=>{let s=`${n}:${v}`;if(!e&&j.has(s)){b(j.get(s)),A(!1);return}A(!0),S(null),fetch(`/api/github/prs?repo=${encodeURIComponent(n)}&state=${v}`).then(e=>e.ok?e.json():e.json().then(e=>Promise.reject(e.error))).then(e=>{j.set(s,e),b(e)}).catch(e=>S(String(e))).finally(()=>A(!1))},[n,v]);(0,h.useEffect)(()=>{D()},[D]);let _=C?k.filter(e=>e.title.toLowerCase().includes(C.toLowerCase())):k;return(0,r.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(f.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8",onClick:()=>y.push("/reviews"),children:(0,r.jsx)(d.A,{className:"h-4 w-4"})}),(0,r.jsxs)("div",{className:"flex gap-1",children:[(0,r.jsx)(f.$,{variant:"open"===v?"default":"outline",size:"sm",onClick:()=>w("open"),children:"Open"}),(0,r.jsx)(f.$,{variant:"closed"===v?"default":"outline",size:"sm",onClick:()=>w("closed"),children:"Closed"})]}),(0,r.jsxs)("div",{className:"relative flex-1",children:[(0,r.jsx)(o.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,r.jsx)("input",{type:"text",placeholder:"Filter PRs...",value:C,onChange:e=>E(e.target.value),className:"w-full rounded-md border bg-background px-3 py-2 pl-9 text-sm outline-none focus:ring-1 focus:ring-ring"})]}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>D(!0),disabled:$,title:"Refresh",children:(0,r.jsx)(u.A,{className:(0,g.cn)("h-4 w-4",$&&"animate-spin")})})]}),$&&(0,r.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,r.jsx)(x.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),R&&(0,r.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive",children:R}),!$&&!R&&0===_.length&&(0,r.jsx)("div",{className:"text-center py-12 text-sm text-muted-foreground",children:"No pull requests found."}),!$&&_.length>0&&(0,r.jsx)("div",{className:"space-y-1",children:_.map(e=>(0,r.jsxs)("button",{onClick:()=>y.push(`/reviews/${s}/${t}/${e.number}`),className:"w-full text-left rounded-md border px-4 py-3 hover:bg-muted/50 transition-colors",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[function(e){switch(e){case"OPEN":return(0,r.jsx)(l.A,{className:"h-4 w-4 text-green-500 shrink-0"});case"MERGED":return(0,r.jsx)(a,{className:"h-4 w-4 text-purple-500 shrink-0"});case"CLOSED":return(0,r.jsx)(c.A,{className:"h-4 w-4 text-red-500 shrink-0"});default:return(0,r.jsx)(i,{className:"h-4 w-4 text-muted-foreground shrink-0"})}}(e.state),(0,r.jsx)("span",{className:"font-medium text-sm truncate flex-1 min-w-0",children:e.title}),e.isDraft&&(0,r.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-muted text-muted-foreground shrink-0",children:"Draft"}),function(e){switch(e){case"APPROVED":return(0,r.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-green-500/15 text-green-500",children:"Approved"});case"CHANGES_REQUESTED":return(0,r.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-red-500/15 text-red-500",children:"Changes requested"});case"REVIEW_REQUIRED":return(0,r.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-yellow-500/15 text-yellow-500",children:"Review required"});default:return null}}(e.reviewDecision)]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-muted-foreground flex-wrap",children:[(0,r.jsxs)("span",{children:["#",e.number]}),(0,r.jsx)("span",{children:e.author.login}),(0,r.jsx)("span",{className:"truncate max-w-[200px]",children:e.headRefName}),(0,r.jsxs)("span",{className:"text-green-500 shrink-0",children:["+",e.additions]}),(0,r.jsxs)("span",{className:"text-red-500 shrink-0",children:["-",e.deletions]})]}),e.labels.length>0&&(0,r.jsx)("div",{className:"flex gap-1 mt-1.5 flex-wrap",children:e.labels.map(e=>(0,r.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full border",style:{borderColor:`#${e.color}`,color:`#${e.color}`},children:e.name},e.name))})]},e.number))})]})}},31966:(e,s,t)=>{"use strict";t.d(s,{A:()=>r});let r=(0,t(99537).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},37596:(e,s,t)=>{Promise.resolve().then(t.bind(t,9181))},94890:(e,s,t)=>{"use strict";t.d(s,{A:()=>r});let r=(0,t(99537).A)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=37596)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[66345],{15411:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>j});var s=r(95155),a=r(92571),n=r(99537);let o=(0,n.A)("building-2",[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]]);var l=r(65377),i=r(82749);let d=(0,n.A)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),c=(0,n.A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);var u=r(73321),h=r(12115),m=r(3765),x=r(89239),f=r(40980);let g="cockpit_review_org",p=null,v=new Map;function j(){(0,m.si)("Reviews");let e=(0,u.useRouter)(),[t,r]=(0,h.useState)(p||[]),[n,j]=(0,h.useState)(!p),[y,N]=(0,h.useState)(null),[b,w]=(0,h.useState)(()=>{if(p){let e=localStorage.getItem(g);if(e&&p.includes(e))return e;if(p.length>0)return p[0]}return null}),[k,C]=(0,h.useState)(()=>b&&v.get(b)||[]),[M,S]=(0,h.useState)(!1),[A,$]=(0,h.useState)(null),[_,L]=(0,h.useState)("");(0,h.useEffect)(()=>{p||fetch("/api/github/orgs").then(e=>e.ok?e.json():e.json().then(e=>Promise.reject(e.error))).then(e=>{p=e,r(e);let t=localStorage.getItem(g);t&&e.includes(t)?w(t):e.length>0&&w(e[0])}).catch(e=>N(String(e))).finally(()=>j(!1))},[]);let E=(0,h.useCallback)(e=>{let t=v.get(e);t?C(t):(S(!0),$(null),fetch(`/api/github/repos?owner=${encodeURIComponent(e)}`).then(e=>e.ok?e.json():e.json().then(e=>Promise.reject(e.error))).then(t=>{v.set(e,t),C(t)}).catch(e=>$(String(e))).finally(()=>S(!1)))},[]),I=(0,h.useCallback)(()=>{b&&(v.delete(b),S(!0),$(null),fetch(`/api/github/repos?owner=${encodeURIComponent(b)}`).then(e=>e.ok?e.json():e.json().then(e=>Promise.reject(e.error))).then(e=>{v.set(b,e),C(e)}).catch(e=>$(String(e))).finally(()=>S(!1)))},[b]);(0,h.useEffect)(()=>{b&&(localStorage.setItem(g,b),E(b))},[b,E]);let P=[...k].sort((e,t)=>e.name.localeCompare(t.name)),R=_?P.filter(e=>e.name.toLowerCase().includes(_.toLowerCase())||e.description?.toLowerCase().includes(_.toLowerCase())):P;return n?(0,s.jsx)("div",{className:"flex items-center justify-center flex-1",children:(0,s.jsx)(a.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):y?(0,s.jsx)("div",{className:"flex-1 p-4",children:(0,s.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive",children:y})}):0===t.length?(0,s.jsx)("div",{className:"flex-1 p-4",children:(0,s.jsxs)("div",{className:"text-center py-12 text-sm text-muted-foreground",children:["No organizations found. Make sure you have run"," ",(0,s.jsx)("code",{className:"bg-muted px-1.5 py-0.5 rounded text-xs",children:"gh auth refresh -s read:org"}),"."]})}):(0,s.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,s.jsx)("div",{className:"flex gap-2 flex-wrap",children:t.map(e=>(0,s.jsxs)("button",{onClick:()=>w(e),className:(0,f.cn)("flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm transition-colors",b===e?"border-primary bg-primary/10 text-foreground":"border-border text-muted-foreground hover:text-foreground hover:bg-muted/50"),children:[(0,s.jsx)(o,{className:"h-3.5 w-3.5"}),e]},e))}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)("div",{className:"relative flex-1",children:[(0,s.jsx)(l.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,s.jsx)("input",{type:"text",placeholder:"Filter repos...",value:_,onChange:e=>L(e.target.value),className:"w-full rounded-md border bg-background px-3 py-2 pl-9 text-sm outline-none focus:ring-1 focus:ring-ring"})]}),(0,s.jsx)(x.$,{variant:"ghost",size:"icon",className:"shrink-0 h-9 w-9 text-muted-foreground hover:text-foreground",onClick:I,disabled:M,title:"Refresh",children:(0,s.jsx)(i.A,{className:(0,f.cn)("h-4 w-4",M&&"animate-spin")})})]}),M&&(0,s.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,s.jsx)(a.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),A&&(0,s.jsx)("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive",children:A}),!M&&!A&&0===R.length&&(0,s.jsx)("div",{className:"text-center py-12 text-sm text-muted-foreground",children:0===k.length?"No repositories found.":"No matches."}),!M&&R.length>0&&(0,s.jsx)("div",{className:"space-y-1",children:R.map(t=>(0,s.jsxs)("button",{onClick:()=>e.push(`/reviews/${t.nameWithOwner}`),className:"w-full text-left rounded-md border px-4 py-3 hover:bg-muted/50 transition-colors",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[t.isPrivate?(0,s.jsx)(d,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}):(0,s.jsx)(c,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,s.jsx)("span",{className:"font-medium text-sm truncate",children:t.name}),t.primaryLanguage&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground shrink-0",children:t.primaryLanguage.name}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground shrink-0 ml-auto",children:function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return"just now";let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let s=Math.floor(r/60);if(s<24)return`${s}h ago`;let a=Math.floor(s/24);if(a<30)return`${a}d ago`;let n=Math.floor(a/30);return`${n}mo ago`}(t.pushedAt)})]}),t.description&&(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-1 truncate",children:t.description})]},t.nameWithOwner))})]})}},89147:(e,t,r)=>{Promise.resolve().then(r.bind(r,15411))}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=89147)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46713],{8962:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(99537).A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},25182:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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"}]])},25325:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>l});var d=a(95155),h=a(73321),y=a(12115),s=a(3765),k=a(93273),p=a(70518);function l({params:e}){let{id:t}=(0,y.use)(e),a=(0,h.useSearchParams)(),c=a.get("cwd")||"",r=a.get("name")||void 0,i="true"===a.get("historyView");return(0,s.mq)(c||void 0),(0,s.tB)(t),(0,y.useEffect)(()=>{(0,p.MN)(t),(0,p.HC)(t)},[t]),(0,d.jsx)(k.I,{sessionId:t,cwd:c,initialName:r,historyView:i})}},25494:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(99537).A)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]])},50981:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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"}]])},64350:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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"}]])},89419:(e,t,a)=>{Promise.resolve().then(a.bind(a,25325))},92298:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});let d=(0,a(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"}]])}},e=>{e.O(0,[989,11242,3765,93273,28441,93794,77358],()=>e(e.s=89419)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1842],{9383:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(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"}]])},15064:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>w});var r=s(95155),i=s(92571),n=s(9383),l=s(31966),a=s(2125);let o=(0,s(99537).A)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);var c=s(18986),d=s(65738),x=s(73321),u=s(12115);let m=new Uint8Array(16),h=[];for(let e=0;e<256;++e)h.push((e+256).toString(16).slice(1));var f=s(3765),p=s(89239),g=s(81477),j=s(42763),v=s(60529);let y=e=>({id:"",type:e,name:"telegram"===e?"Telegram":"ntfy",enabled:!0,config:"telegram"===e?{botToken:"",chatId:""}:{serverUrl:"https://ntfy.sh",topic:"",token:""},filterPriorities:[],filterSources:[]});function b(e){let t=e.filterPriorities.length>0||e.filterSources.length>0?{priorities:e.filterPriorities.length>0?e.filterPriorities:void 0,sources:e.filterSources.length>0?e.filterSources:void 0}:void 0;return{id:e.id||(crypto.randomUUID?crypto.randomUUID():function(e,t,s){let r=(e=e||{}).random??e.rng?.()??crypto.getRandomValues(m);if(r.length<16)throw Error("Random bytes length must be >= 16");if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){if((s=s||0)<0||s+16>t.length)throw RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[s+e]=r[e];return t}return function(e,t=0){return(h[e[t+0]]+h[e[t+1]]+h[e[t+2]]+h[e[t+3]]+"-"+h[e[t+4]]+h[e[t+5]]+"-"+h[e[t+6]]+h[e[t+7]]+"-"+h[e[t+8]]+h[e[t+9]]+"-"+h[e[t+10]]+h[e[t+11]]+h[e[t+12]]+h[e[t+13]]+h[e[t+14]]+h[e[t+15]]).toLowerCase()}(r)}(void 0,void 0,void 0)),type:e.type,name:e.name,enabled:e.enabled,config:e.config,filter:t}}function N({enabled:e,onToggle:t}){return(0,r.jsx)("button",{type:"button",onClick:t,className:"shrink-0",children:(0,r.jsx)("span",{className:`inline-flex h-6 w-10 items-center rounded-full transition-colors ${e?"bg-green-500":"bg-muted-foreground/30"}`,children:(0,r.jsx)("span",{className:`inline-block h-4 w-4 rounded-full bg-white shadow transition-transform ${e?"translate-x-5":"translate-x-1"}`})})})}function k({selected:e,onChange:t}){return(0,r.jsx)("div",{className:"flex gap-1",children:["info","warning","error"].map(s=>{let i=e.includes(s);return(0,r.jsx)("button",{type:"button",onClick:()=>t(i?e.filter(e=>e!==s):[...e,s]),className:`px-2 py-0.5 text-xs rounded border transition-colors ${i?"bg-primary text-primary-foreground border-primary":"border-input hover:bg-accent"}`,children:s},s)})})}function C({form:e,onChange:t,onSave:s,onCancel:l,onTest:a,testing:o,testResult:c}){let d=(s,r)=>{t({...e,config:{...e.config,[s]:r}})};return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground",children:"Name"}),(0,r.jsx)(v.p,{value:e.name,onChange:s=>t({...e,name:s.target.value}),placeholder:"My notification"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground",children:"Type"}),(0,r.jsx)("div",{className:"flex gap-1 mt-1",children:["telegram","ntfy"].map(s=>{let i=["Telegram","ntfy"].includes(e.name)?"telegram"===s?"Telegram":"ntfy":e.name;return(0,r.jsx)(p.$,{variant:e.type===s?"default":"outline",size:"sm",onClick:()=>t({...y(s),id:e.id,name:i}),children:"telegram"===s?"Telegram":"ntfy.sh"},s)})})]}),"telegram"===e.type&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground",children:"Bot Token"}),(0,r.jsx)(v.p,{value:e.config.botToken||"",onChange:e=>d("botToken",e.target.value),placeholder:"123456:ABC-DEF..."})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground",children:"Chat ID"}),(0,r.jsx)(v.p,{value:e.config.chatId||"",onChange:e=>d("chatId",e.target.value),placeholder:"-1001234567890"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Message @userinfobot on Telegram to get your chat ID"})]})]}),"ntfy"===e.type&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground",children:"Server URL"}),(0,r.jsx)(v.p,{value:e.config.serverUrl||"",onChange:e=>d("serverUrl",e.target.value),placeholder:"https://ntfy.sh"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground",children:"Topic"}),(0,r.jsx)(v.p,{value:e.config.topic||"",onChange:e=>d("topic",e.target.value),placeholder:"my-cockpit-alerts"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground",children:"Token (optional)"}),(0,r.jsx)(v.p,{value:e.config.token||"",onChange:e=>d("token",e.target.value),placeholder:"Bearer token for authenticated instances"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground",children:"Filter by priority (empty = all)"}),(0,r.jsx)("div",{className:"mt-1",children:(0,r.jsx)(k,{selected:e.filterPriorities,onChange:s=>t({...e,filterPriorities:s})})})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between pt-2 border-t",children:[(0,r.jsxs)(p.$,{variant:"outline",size:"sm",onClick:a,disabled:o,children:[o?(0,r.jsx)(i.A,{className:"h-3.5 w-3.5 mr-1 animate-spin"}):(0,r.jsx)(n.A,{className:"h-3.5 w-3.5 mr-1"}),"Test"]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(p.$,{variant:"outline",size:"sm",onClick:l,children:"Cancel"}),(0,r.jsx)(p.$,{size:"sm",onClick:s,children:"Save"})]})]}),c&&(0,r.jsx)("p",{className:`text-xs ${"ok"===c?"text-green-500":"text-destructive"}`,children:"ok"===c?"Test notification sent":c})]})}function w(){(0,f.si)("Notifications");let e=(0,x.useRouter)(),[t,s]=(0,u.useState)({providers:[]}),[n,m]=(0,u.useState)(!0),[h,k]=(0,u.useState)(null),[w,A]=(0,u.useState)(!1),[S,T]=(0,u.useState)(null),[$,U]=(0,u.useState)(null),[z,P]=(0,u.useState)(""),R=(0,u.useCallback)(async()=>{let e=await fetch("/api/notifications");if(e.ok){let t=await e.json();s(t),P(t.baseUrl||"")}m(!1)},[]);(0,u.useEffect)(()=>{R()},[R]);let I=async e=>{s(e),await fetch("/api/notifications",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})},D=async()=>{if(h){A(!0),T(null);try{let e=await fetch("/api/notifications/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b(h)})});if(!e.ok&&e.headers.get("content-type")?.includes("text/html"))T("API route not available - rebuild required");else{let t=await e.json();T(t.success?"ok":t.error||"Failed")}}catch(e){T(e instanceof Error?e.message:"Network error")}A(!1)}};return n?(0,r.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,r.jsx)(i.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):(0,r.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,r.jsxs)(p.$,{variant:"ghost",size:"sm",onClick:()=>e.push("/settings"),children:[(0,r.jsx)(l.A,{className:"h-4 w-4 mr-1"}),"Settings"]}),(0,r.jsxs)(g.Zp,{children:[(0,r.jsx)(g.aR,{children:(0,r.jsx)(g.ZB,{className:"text-base",children:"Base URL"})}),(0,r.jsxs)(g.Wu,{children:[(0,r.jsx)("p",{className:"text-xs text-muted-foreground mb-2",children:"Used to build clickable links in notifications. Leave empty if Cockpit is not exposed externally."}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(v.p,{value:z,onChange:e=>P(e.target.value),placeholder:"https://cockpit.example.com",className:"flex-1"}),(0,r.jsx)(p.$,{size:"sm",variant:"outline",onClick:()=>{if(!t)return;let e=z.replace(/\/$/,"");I({...t,baseUrl:e||void 0})},children:"Save"})]})]})]}),(0,r.jsxs)(g.Zp,{children:[(0,r.jsx)(g.aR,{children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)(g.ZB,{className:"text-base",children:"Providers"}),(0,r.jsxs)(p.$,{size:"sm",variant:"outline",onClick:()=>k(y("telegram")),children:[(0,r.jsx)(a.A,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]})}),(0,r.jsxs)(g.Wu,{children:[t?.providers.length===0&&!h&&(0,r.jsxs)("div",{className:"flex flex-col items-center py-8 text-center",children:[(0,r.jsx)(o,{className:"h-10 w-10 text-muted-foreground/50 mb-3"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"No notification providers configured."}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"Add Telegram or ntfy.sh to receive alerts externally."})]}),!h&&t?.providers.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-3 py-2 border-b last:border-b-0",children:[(0,r.jsx)(N,{enabled:e.enabled,onToggle:()=>(e=>{if(!t)return;let s=t.providers.map(t=>t.id===e?{...t,enabled:!t.enabled}:t);I({...t,providers:s})})(e.id)}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-medium truncate",children:e.name}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:e.type})]}),e.filter?.priorities&&(0,r.jsxs)("span",{className:"text-xs text-muted-foreground",children:[e.filter.priorities.join(", ")," only"]})]}),(0,r.jsx)(p.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>{k(function(e){let t={};for(let[s,r]of Object.entries(e.config))t[s]=r??"";return{id:e.id,type:e.type,name:e.name,enabled:e.enabled,config:t,filterPriorities:e.filter?.priorities||[],filterSources:e.filter?.sources||[]}}(e)),T(null)},children:(0,r.jsx)(c.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)(p.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-destructive hover:text-destructive",onClick:()=>U(e.id),children:(0,r.jsx)(d.A,{className:"h-3.5 w-3.5"})})]},e.id)),h&&(0,r.jsx)("div",{className:"pt-2",children:(0,r.jsx)(C,{form:h,onChange:k,onSave:()=>{if(!h)return;let e=b(h),s=h.id?t.providers.map(t=>t.id===e.id?e:t):[...t.providers,e];I({...t,providers:s}),k(null),T(null)},onCancel:()=>{k(null),T(null)},onTest:D,testing:w,testResult:S})})]})]}),(0,r.jsx)(j.lG,{open:!!$,onOpenChange:()=>U(null),children:(0,r.jsxs)(j.Cf,{children:[(0,r.jsx)(j.c7,{children:(0,r.jsx)(j.L3,{children:"Delete Provider"})}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:"Remove this notification provider?"}),(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)(p.$,{variant:"outline",onClick:()=>U(null),children:"Cancel"}),(0,r.jsx)(p.$,{variant:"destructive",onClick:()=>{if(!$)return;let e=t.providers.filter(e=>e.id!==$);I({...t,providers:e}),U(null)},children:"Delete"})]})]})})]})}},18986:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(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"}]])},31966:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(99537).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},32052:(e,t,s)=>{Promise.resolve().then(s.bind(s,15064))}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=32052)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60109],{8081:(e,s,l)=>{"use strict";l.d(s,{AX:()=>d,Mi:()=>r,bs:()=>n,iz:()=>o,r5:()=>t,zQ:()=>i});let a=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",supportsExtendedContext:!1,contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",supportsExtendedContext:!0,contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Most capable",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0}];function n(e){if(e)return a.find(s=>s.modelId===e)}function t(e){return a.filter(s=>s.alias===e)}function i(e){return a.find(s=>s.alias===e&&s.isDefault)??t(e)[0]}function d(e){if(!e)return null;let s=e.replace(/\[.*\]$/,"");return"opus"===s||"sonnet"===s||"haiku"===s?i(s)??null:n(s)??null}function o(e){if(!e||"haiku"===e.alias)return[];let s=["low","medium","high"];return"opus"===e.alias&&"4.7"===e.version&&s.push("xhigh"),s.push("max"),s}function r(e){return e&&"haiku"!==e.alias?"opus"===e.alias&&"4.7"===e.version?"xhigh":"sonnet"===e.alias?"medium":"high":null}},14577:(e,s,l)=>{"use strict";l.d(s,{A:()=>a});let a=(0,l(99537).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},55838:(e,s,l)=>{"use strict";l.r(s),l.d(s,{default:()=>C});var a=l(95155),n=l(14577),t=l(76721),i=l(82749);let d=(0,l(99537).A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);var o=l(73321),r=l(12115),c=l(3765),u=l(89239),x=l(81477),m=l(22317),p=l(8081);let h=[{value:"split",label:"Side-by-side"},{value:"unified",label:"Inline"}],j=[{value:"light",label:"Light"},{value:"dark",label:"Dark"},{value:"system",label:"System"}];function f(e,s){return s?`${e}[1m]`:e}let b=[{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"xhigh",label:"XHigh"},{value:"max",label:"Max"}];function v({enabled:e,color:s,onToggle:l}){return(0,a.jsx)("button",{onClick:l,className:"shrink-0",children:(0,a.jsx)("span",{className:`inline-flex h-7 w-12 items-center rounded-full transition-colors ${e?s||"bg-green-500":"bg-muted-foreground/30"}`,children:(0,a.jsx)("span",{className:`inline-block h-5 w-5 rounded-full bg-white shadow transition-transform ${e?"translate-x-6":"translate-x-1"}`})})})}function g({text:e}){let[s,l]=(0,r.useState)(!1),t=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!s)return;let e=e=>{t.current&&!t.current.contains(e.target)&&l(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[s]),(0,a.jsxs)("div",{ref:t,className:"relative inline-flex",children:[(0,a.jsx)("button",{type:"button",onClick:()=>l(!s),className:"p-0.5 rounded hover:bg-accent",children:(0,a.jsx)(n.A,{className:"h-3.5 w-3.5 text-muted-foreground"})}),s&&(0,a.jsx)("div",{className:"absolute left-1/2 -translate-x-1/2 top-full mt-1.5 z-50 w-56 rounded-md border bg-popover px-3 py-2 text-xs text-popover-foreground shadow-md",children:e})]})}function k({label:e,hint:s,children:l}){return(0,a.jsxs)("div",{className:"flex items-start justify-between px-2 py-2 text-sm",children:[(0,a.jsxs)("span",{className:"py-1 flex items-center gap-1.5",children:[e,s&&(0,a.jsx)(g,{text:s})]}),l]})}function y({label:e,onClick:s}){return(0,a.jsxs)("button",{onClick:s,className:"flex w-full items-center justify-between rounded px-2 py-2.5 text-sm hover:bg-muted transition-colors",children:[(0,a.jsx)("span",{children:e}),(0,a.jsx)(t.A,{className:"h-4 w-4 text-muted-foreground"})]})}function N({options:e,value:s,onChange:l}){return(0,a.jsx)("div",{className:"flex flex-wrap gap-1 justify-end",children:e.map(e=>(0,a.jsx)(u.$,{variant:s===e.value?"default":"outline",size:"sm",onClick:()=>l(e.value),children:e.label},e.value))})}function C(){let{settings:e,updateSetting:s,loaded:l}=(0,m.t)(),[n,t]=(0,r.useState)("system"),[g,C]=(0,r.useState)(null),[w,E]=(0,r.useState)(!0),[S,L]=(0,r.useState)(!1),[I,Z]=(0,r.useState)(null),[R,A]=(0,r.useState)(null),[M,W]=(0,r.useState)(!0),T=(0,o.useRouter)(),$=(0,r.useRef)(null);(0,c.si)("Settings"),(0,r.useEffect)(()=>{let e=$.current;if(!e)return;let s=sessionStorage.getItem("settings-scroll");s&&(e.scrollTop=Number(s));let l=()=>sessionStorage.setItem("settings-scroll",String(e.scrollTop));return e.addEventListener("scroll",l,{passive:!0}),()=>e.removeEventListener("scroll",l)},[]);let B=(0,r.useCallback)(()=>{E(!0),fetch("/api/version").then(e=>e.json()).then(e=>C(e)).catch(()=>C(null)).finally(()=>E(!1))},[]),U=(0,r.useCallback)(()=>{W(!0),fetch("/api/version/cockpit").then(e=>e.json()).then(e=>A(e)).catch(()=>A(null)).finally(()=>W(!1))},[]);(0,r.useEffect)(()=>{t(localStorage.getItem("cockpit-theme")||"system")},[]),(0,r.useEffect)(()=>{B()},[B]),(0,r.useEffect)(()=>{U()},[U]);let z=(0,r.useCallback)(async()=>{L(!0),Z(null);try{let e=await fetch("/api/version",{method:"POST"}),s=await e.json();e.ok?(Z({ok:!0,message:"Updated successfully"}),B()):Z({ok:!1,message:s.error||"Update failed"})}catch{Z({ok:!1,message:"Update failed"})}finally{L(!1)}},[B]),D=(0,r.useCallback)(e=>{t(e),localStorage.setItem("cockpit-theme",e),"dark"===("system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e)?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},[]);return(0,a.jsxs)("div",{ref:$,className:`flex-1 min-h-0 overflow-y-auto p-4 space-y-4 transition-opacity duration-150 ${l?"opacity-100":"opacity-0"}`,children:[(0,a.jsxs)(x.Zp,{children:[(0,a.jsx)(x.aR,{children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)(x.ZB,{className:"text-base",children:"Claude Code"}),(0,a.jsx)("button",{onClick:B,disabled:w,className:"text-muted-foreground hover:text-foreground transition-colors",children:(0,a.jsx)(i.A,{className:`h-4 w-4 ${w?"animate-spin":""}`})})]})}),(0,a.jsx)(x.Wu,{children:(0,a.jsxs)("div",{className:"space-y-2 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,a.jsx)("span",{className:"text-muted-foreground",children:"Installed"}),(0,a.jsx)("span",{className:"font-mono",children:g?.installed||"..."})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,a.jsx)("span",{className:"text-muted-foreground",children:"Latest"}),(0,a.jsx)("span",{className:"font-mono",children:g?.latest||"..."})]}),g&&"unknown"!==g.installed&&"unknown"!==g.latest?0>g.installed.localeCompare(g.latest,void 0,{numeric:!0})?(0,a.jsxs)("div",{className:"space-y-2 px-2",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("p",{className:"text-xs text-amber-500",children:"Update available"}),(0,a.jsxs)(u.$,{size:"sm",variant:"outline",onClick:z,disabled:S,children:[(0,a.jsx)(d,{className:"h-3.5 w-3.5 mr-1"}),S?"Updating...":"Update"]})]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground font-mono break-all",children:g.updateCommand})]}):(0,a.jsx)("p",{className:"text-xs text-green-500 px-2",children:"Up to date"}):null,I&&(0,a.jsx)("p",{className:`text-xs px-2 ${I.ok?"text-green-500":"text-destructive"}`,children:I.message})]})})]}),(0,a.jsxs)(x.Zp,{children:[(0,a.jsx)(x.aR,{children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)(x.ZB,{className:"text-base",children:"Cockpit"}),(0,a.jsx)("button",{onClick:U,disabled:M,className:"text-muted-foreground hover:text-foreground transition-colors",children:(0,a.jsx)(i.A,{className:`h-4 w-4 ${M?"animate-spin":""}`})})]})}),(0,a.jsx)(x.Wu,{children:(0,a.jsxs)("div",{className:"space-y-2 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,a.jsx)("span",{className:"text-muted-foreground",children:"Installed"}),(0,a.jsx)("span",{className:"font-mono",children:R?.installed||"..."})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,a.jsx)("span",{className:"text-muted-foreground",children:"Latest"}),(0,a.jsx)("span",{className:"font-mono",children:R?.latest||"..."})]}),R&&"unknown"!==R.installed&&"unknown"!==R.latest?0>R.installed.localeCompare(R.latest,void 0,{numeric:!0})?(0,a.jsxs)("div",{className:"space-y-2 px-2",children:[(0,a.jsx)("p",{className:"text-xs text-amber-500",children:"Update available"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground font-mono break-all",children:"npm install -g @alexjbarnes/cockpit"})]}):(0,a.jsx)("p",{className:"text-xs text-green-500 px-2",children:"Up to date"}):null]})})]}),(0,a.jsxs)(x.Zp,{children:[(0,a.jsx)(x.aR,{children:(0,a.jsx)(x.ZB,{className:"text-base",children:"Session defaults"})}),(0,a.jsxs)(x.Wu,{className:"space-y-1",children:[(()=>{var l;let n,{base:t,extended:i}=(n=(l=e.model).includes("[1m]"),{base:l.replace(/\[.*\]$/,""),extended:n}),d=(0,p.AX)(t),o=d?.alias||"sonnet",r=(0,p.r5)(o),c=r.length>1,u=(0,p.iz)(d),x=b.filter(e=>u.includes(e.value));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(k,{label:"Model",children:(0,a.jsx)(N,{options:[{value:"haiku",label:"Haiku"},{value:"sonnet",label:"Sonnet"},{value:"opus",label:"Opus"}],value:o,onChange:e=>(function(e){let l=(0,p.zQ)(e);if(!l)return;s("model",l.modelId);let a=(0,p.Mi)(l);a&&s("thinkingLevel",a)})(e)})}),c&&(0,a.jsx)(k,{label:"Version",children:(0,a.jsx)(N,{options:r.map(e=>({value:e.version,label:e.version})),value:d?.version||r[0].version,onChange:function(l){let a=r.find(e=>e.version===l);if(a&&(s("model",f(a.modelId,i&&a.supportsExtendedContext)),!(0,p.iz)(a).includes(e.thinkingLevel))){let e=(0,p.Mi)(a);e&&s("thinkingLevel",e)}}})}),d?.supportsExtendedContext&&(0,a.jsx)(k,{label:"Context",children:(0,a.jsx)(N,{options:[{value:"default",label:"200K"},{value:"1m",label:"1M"}],value:i?"1m":"default",onChange:e=>s("model",f(d.modelId,"1m"===e))})}),x.length>0&&(0,a.jsx)(k,{label:"Thinking",children:(0,a.jsx)(N,{options:x,value:e.thinkingLevel,onChange:e=>s("thinkingLevel",e)})})]})})(),(0,a.jsx)(k,{label:"Bypass all permissions",children:(0,a.jsx)(v,{enabled:e.bypassAllPermissions,color:"bg-orange-500",onToggle:()=>s("bypassAllPermissions",!e.bypassAllPermissions)})})]})]}),(0,a.jsxs)(x.Zp,{children:[(0,a.jsx)(x.aR,{children:(0,a.jsx)(x.ZB,{className:"text-base",children:"Display"})}),(0,a.jsxs)(x.Wu,{className:"space-y-1",children:[(0,a.jsx)(k,{label:"Theme",children:(0,a.jsx)(N,{options:j,value:n,onChange:D})}),(0,a.jsx)(k,{label:"Diff style",children:(0,a.jsx)(N,{options:h,value:e.diffStyle,onChange:e=>s("diffStyle",e)})}),(0,a.jsx)(k,{label:"Thinking blocks",children:(0,a.jsx)(N,{options:[{value:"collapsed",label:"Collapsed"},{value:"expanded",label:"Expanded"}],value:e.thinkingExpanded?"expanded":"collapsed",onChange:e=>s("thinkingExpanded","expanded"===e)})}),(0,a.jsx)(k,{label:"Read results",children:(0,a.jsx)(N,{options:[{value:"collapsed",label:"Collapsed"},{value:"expanded",label:"Expanded"}],value:e.readExpanded?"expanded":"collapsed",onChange:e=>s("readExpanded","expanded"===e)})}),(0,a.jsx)(k,{label:"Edit results",children:(0,a.jsx)(N,{options:[{value:"collapsed",label:"Collapsed"},{value:"expanded",label:"Expanded"}],value:e.editExpanded?"expanded":"collapsed",onChange:e=>s("editExpanded","expanded"===e)})}),(0,a.jsx)(k,{label:"Tool calls",children:(0,a.jsx)(N,{options:[{value:"collapsed",label:"Collapsed"},{value:"expanded",label:"Expanded"}],value:e.toolCallsExpanded?"expanded":"collapsed",onChange:e=>s("toolCallsExpanded","expanded"===e)})}),(0,a.jsx)(k,{label:"Stitch messages across clears",hint:"Load messages from previous CLI sessions within the same Cockpit session, showing conversation history across /clear boundaries",children:(0,a.jsx)(v,{enabled:e.messageStitching,onToggle:()=>s("messageStitching",!e.messageStitching)})})]})]}),(0,a.jsxs)(x.Zp,{children:[(0,a.jsx)(x.aR,{children:(0,a.jsx)(x.ZB,{className:"text-base",children:"Input"})}),(0,a.jsx)(x.Wu,{children:(0,a.jsx)(k,{label:"Dismiss keyboard on send",children:(0,a.jsx)(v,{enabled:e.dismissKeyboardOnSend,onToggle:()=>s("dismissKeyboardOnSend",!e.dismissKeyboardOnSend)})})})]}),(0,a.jsxs)(x.Zp,{children:[(0,a.jsx)(x.aR,{children:(0,a.jsx)(x.ZB,{className:"text-base",children:"Sidebar"})}),(0,a.jsx)(x.Wu,{children:(0,a.jsx)(k,{label:"Reviews",hint:"Show the Reviews section in the sidebar for tracking PR reviews",children:(0,a.jsx)(v,{enabled:e.reviewsEnabled,onToggle:()=>s("reviewsEnabled",!e.reviewsEnabled)})})})]}),(0,a.jsxs)(x.Zp,{children:[(0,a.jsx)(x.aR,{children:(0,a.jsx)(x.ZB,{className:"text-base",children:"Notifications"})}),(0,a.jsx)(x.Wu,{className:"space-y-0.5",children:(0,a.jsx)(y,{label:"External providers",onClick:()=>T.push("/settings/notifications")})})]}),(0,a.jsxs)(x.Zp,{children:[(0,a.jsx)(x.aR,{children:(0,a.jsx)(x.ZB,{className:"text-base",children:"Customization"})}),(0,a.jsxs)(x.Wu,{className:"space-y-0.5",children:[(0,a.jsx)(y,{label:"Agents",onClick:()=>T.push("/agents")}),(0,a.jsx)(y,{label:"MCP Servers",onClick:()=>T.push("/mcp-servers")}),(0,a.jsx)(y,{label:"Skills",onClick:()=>T.push("/skills")}),(0,a.jsx)(y,{label:"Commands",onClick:()=>T.push("/commands")}),(0,a.jsx)(y,{label:"Hooks",onClick:()=>T.push("/hooks")}),(0,a.jsx)(y,{label:"CLAUDE.md",onClick:()=>T.push("/claude-md")})]})]})]})}},67475:(e,s,l)=>{Promise.resolve().then(l.bind(l,55838))}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=67475)),_N_E=e.O()}]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[15962],{378:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(95155),s=n(64577),a=n(99314),c=n(81402),o=n(73321),l=n(12115),u=n(
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[15962],{378:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(95155),s=n(64577),a=n(99314),c=n(81402),o=n(73321),l=n(12115),u=n(3765),i=n(98757),d=n(45160),f=n(89239),m=n(60529);let h=`---
|
|
2
2
|
description: What this skill does
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
Your skill instructions here. Use $ARGUMENTS for user input.
|
|
6
|
-
`;function p({params:e}){let{name:t}=(0,l.use)(e),n=(0,o.useSearchParams)(),x=(0,o.useRouter)(),v="new"===t,g=n.get("scope")||"user",w=n.get("cwd")||void 0;(0,u.si)(v?"New Skill":"Edit Skill");let[k,y]=(0,l.useState)(v?"":decodeURIComponent(t)),[b,N]=(0,l.useState)(v?h:""),[S,j]=(0,l.useState)(v?h:""),[C,E]=(0,l.useState)(!v),[R,$]=(0,l.useState)(!1),[L,U]=(0,l.useState)(null),[_,z]=(0,l.useState)(!1),O=b!==S;(0,l.useEffect)(()=>{if(v)return;let e=new URLSearchParams({scope:g});w&&e.set("cwd",w),fetch(`/api/skills/${encodeURIComponent(t)}?${e}`).then(e=>{if(!e.ok)throw Error("Not found");return e.json()}).then(e=>{N(e.content),j(e.content)}).catch(()=>{U("Failed to load skill")}).finally(()=>E(!1))},[v,t,g,w]);let P=(0,l.useCallback)(async()=>{let e=k.trim();if(!e)return void U("Name is required");if(!/^[a-zA-Z0-9_-]+$/.test(e))return void U("Name can only contain letters, numbers, hyphens, and underscores");$(!0),U(null);try{if(!(await fetch(`/api/skills/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:g,cwd:w,content:b})})).ok)throw Error("Save failed");if(j(b),U("Saved"),v){let t=new URLSearchParams({scope:g});w&&t.set("cwd",w),x.replace(`/skills/${encodeURIComponent(e)}?${t}`)}}catch{U("Failed to save")}finally{$(!1)}},[k,b,g,w,v,x]);return C?(0,r.jsx)("div",{className:"flex-1 min-h-0 p-4",children:(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading..."})}):(0,r.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex-1 min-w-0",children:v?(0,r.jsx)(m.p,{placeholder:"skill-name",value:k,onChange:e=>y(e.target.value),className:"font-mono"}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"font-mono font-bold text-lg",children:k}),(0,r.jsx)(d.E,{variant:"secondary",children:"user"===g?"Global":"Project"})]})}),(0,r.jsxs)(f.$,{size:"sm",variant:"outline",onClick:()=>{let e=document.createElement("textarea");e.value=b,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),z(!0),setTimeout(()=>z(!1),1500)},children:[_?(0,r.jsx)(s.A,{className:"h-4 w-4 mr-1"}):(0,r.jsx)(a.A,{className:"h-4 w-4 mr-1"}),_?"Copied":"Copy"]}),(0,r.jsxs)(f.$,{size:"sm",onClick:P,disabled:R||!v&&!O,children:[(0,r.jsx)(c.A,{className:"h-4 w-4 mr-1"}),R?"Saving...":"Save"]})]}),L&&(0,r.jsx)("p",{className:`text-sm ${"Saved"===L?"text-green-600":"text-destructive"}`,children:L}),(0,r.jsx)(i.B,{value:b,onChange:N,language:"markdown",onSave:P,className:"flex-1"})]})}},24922:(e,t,n)=>{Promise.resolve().then(n.bind(n,378))},98757:(e,t,n)=>{"use strict";n.d(t,{B:()=>h});var r=n(95155),s=n(13748),a=n(53649),c=n(27071),o=n(74059),l=n(89561),u=n(62465),i=n(12115);let d=l.Lz.theme({"&":{backgroundColor:"transparent"},".cm-gutters":{backgroundColor:"transparent",borderRight:"1px solid hsl(var(--border))"}});function f(){return!("u"<typeof document)&&document.documentElement.classList.contains("dark")}function m(e){switch(e){case"markdown":default:return(0,s.wD)();case"yaml":return(0,a.oQ)()}}function h({value:e,onChange:t,language:n,readOnly:s,className:a,onSave:p}){let x=(0,i.useRef)(null),v=(0,i.useRef)(null),g=(0,i.useRef)(new c.xx),w=(0,i.useRef)(new c.xx),k=(0,i.useRef)(new c.xx),y=(0,i.useRef)(t),b=(0,i.useRef)(p),N=(0,i.useRef)(e);return y.current=t,b.current=p,(0,i.useEffect)(()=>{if(!x.current)return;let e=c.$t.create({doc:N.current,extensions:[u.oQ,l.Lz.lineWrapping,g.current.of(f()?o.bM:d),w.current.of(m(n)),k.current.of(c.$t.readOnly.of(!!s)),l.w4.of([{key:"Mod-s",run:()=>(b.current?.(),!0)}]),l.Lz.updateListener.of(e=>{if(e.docChanged){let t=e.state.doc.toString();N.current=t,y.current(t)}})]}),t=new l.Lz({state:e,parent:x.current});return v.current=t,()=>{t.destroy(),v.current=null}},[]),(0,i.useEffect)(()=>{let t=v.current;t&&e!==N.current&&(N.current=e,t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}}))},[e]),(0,i.useEffect)(()=>{let e=v.current;if(!e)return;let t=new MutationObserver(()=>{e.dispatch({effects:g.current.reconfigure(f()?o.bM:d)})});return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()},[]),(0,i.useEffect)(()=>{let e=v.current;e&&e.dispatch({effects:w.current.reconfigure(m(n))})},[n]),(0,i.useEffect)(()=>{let e=v.current;e&&e.dispatch({effects:k.current.reconfigure(c.$t.readOnly.of(!!s))})},[s]),(0,r.jsx)("div",{ref:x,className:`overflow-auto rounded-md border bg-background text-sm [&_.cm-editor]:min-h-[200px] [&_.cm-editor.cm-focused]:outline-none ${a||""}`})}}},e=>{e.O(0,[6079,989,
|
|
6
|
+
`;function p({params:e}){let{name:t}=(0,l.use)(e),n=(0,o.useSearchParams)(),x=(0,o.useRouter)(),v="new"===t,g=n.get("scope")||"user",w=n.get("cwd")||void 0;(0,u.si)(v?"New Skill":"Edit Skill");let[k,y]=(0,l.useState)(v?"":decodeURIComponent(t)),[b,N]=(0,l.useState)(v?h:""),[S,j]=(0,l.useState)(v?h:""),[C,E]=(0,l.useState)(!v),[R,$]=(0,l.useState)(!1),[L,U]=(0,l.useState)(null),[_,z]=(0,l.useState)(!1),O=b!==S;(0,l.useEffect)(()=>{if(v)return;let e=new URLSearchParams({scope:g});w&&e.set("cwd",w),fetch(`/api/skills/${encodeURIComponent(t)}?${e}`).then(e=>{if(!e.ok)throw Error("Not found");return e.json()}).then(e=>{N(e.content),j(e.content)}).catch(()=>{U("Failed to load skill")}).finally(()=>E(!1))},[v,t,g,w]);let P=(0,l.useCallback)(async()=>{let e=k.trim();if(!e)return void U("Name is required");if(!/^[a-zA-Z0-9_-]+$/.test(e))return void U("Name can only contain letters, numbers, hyphens, and underscores");$(!0),U(null);try{if(!(await fetch(`/api/skills/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:g,cwd:w,content:b})})).ok)throw Error("Save failed");if(j(b),U("Saved"),v){let t=new URLSearchParams({scope:g});w&&t.set("cwd",w),x.replace(`/skills/${encodeURIComponent(e)}?${t}`)}}catch{U("Failed to save")}finally{$(!1)}},[k,b,g,w,v,x]);return C?(0,r.jsx)("div",{className:"flex-1 min-h-0 p-4",children:(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading..."})}):(0,r.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex-1 min-w-0",children:v?(0,r.jsx)(m.p,{placeholder:"skill-name",value:k,onChange:e=>y(e.target.value),className:"font-mono"}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"font-mono font-bold text-lg",children:k}),(0,r.jsx)(d.E,{variant:"secondary",children:"user"===g?"Global":"Project"})]})}),(0,r.jsxs)(f.$,{size:"sm",variant:"outline",onClick:()=>{let e=document.createElement("textarea");e.value=b,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),z(!0),setTimeout(()=>z(!1),1500)},children:[_?(0,r.jsx)(s.A,{className:"h-4 w-4 mr-1"}):(0,r.jsx)(a.A,{className:"h-4 w-4 mr-1"}),_?"Copied":"Copy"]}),(0,r.jsxs)(f.$,{size:"sm",onClick:P,disabled:R||!v&&!O,children:[(0,r.jsx)(c.A,{className:"h-4 w-4 mr-1"}),R?"Saving...":"Save"]})]}),L&&(0,r.jsx)("p",{className:`text-sm ${"Saved"===L?"text-green-600":"text-destructive"}`,children:L}),(0,r.jsx)(i.B,{value:b,onChange:N,language:"markdown",onSave:P,className:"flex-1"})]})}},24922:(e,t,n)=>{Promise.resolve().then(n.bind(n,378))},98757:(e,t,n)=>{"use strict";n.d(t,{B:()=>h});var r=n(95155),s=n(13748),a=n(53649),c=n(27071),o=n(74059),l=n(89561),u=n(62465),i=n(12115);let d=l.Lz.theme({"&":{backgroundColor:"transparent"},".cm-gutters":{backgroundColor:"transparent",borderRight:"1px solid hsl(var(--border))"}});function f(){return!("u"<typeof document)&&document.documentElement.classList.contains("dark")}function m(e){switch(e){case"markdown":default:return(0,s.wD)();case"yaml":return(0,a.oQ)()}}function h({value:e,onChange:t,language:n,readOnly:s,className:a,onSave:p}){let x=(0,i.useRef)(null),v=(0,i.useRef)(null),g=(0,i.useRef)(new c.xx),w=(0,i.useRef)(new c.xx),k=(0,i.useRef)(new c.xx),y=(0,i.useRef)(t),b=(0,i.useRef)(p),N=(0,i.useRef)(e);return y.current=t,b.current=p,(0,i.useEffect)(()=>{if(!x.current)return;let e=c.$t.create({doc:N.current,extensions:[u.oQ,l.Lz.lineWrapping,g.current.of(f()?o.bM:d),w.current.of(m(n)),k.current.of(c.$t.readOnly.of(!!s)),l.w4.of([{key:"Mod-s",run:()=>(b.current?.(),!0)}]),l.Lz.updateListener.of(e=>{if(e.docChanged){let t=e.state.doc.toString();N.current=t,y.current(t)}})]}),t=new l.Lz({state:e,parent:x.current});return v.current=t,()=>{t.destroy(),v.current=null}},[]),(0,i.useEffect)(()=>{let t=v.current;t&&e!==N.current&&(N.current=e,t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}}))},[e]),(0,i.useEffect)(()=>{let e=v.current;if(!e)return;let t=new MutationObserver(()=>{e.dispatch({effects:g.current.reconfigure(f()?o.bM:d)})});return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()},[]),(0,i.useEffect)(()=>{let e=v.current;e&&e.dispatch({effects:w.current.reconfigure(m(n))})},[n]),(0,i.useEffect)(()=>{let e=v.current;e&&e.dispatch({effects:k.current.reconfigure(c.$t.readOnly.of(!!s))})},[s]),(0,r.jsx)("div",{ref:x,className:`overflow-auto rounded-md border bg-background text-sm [&_.cm-editor]:min-h-[200px] [&_.cm-editor.cm-focused]:outline-none ${a||""}`})}}},e=>{e.O(0,[6079,989,11242,6802,3765,28441,93794,77358],()=>e(e.s=24922)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[44262],{46710:(e,s,t)=>{Promise.resolve().then(t.bind(t,74993))},74993:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>x});var n=t(95155),l=t(2125),a=t(65738),c=t(73321),r=t(12115),i=t(3765),o=t(45160),d=t(89239),m=t(81477),u=t(42763);function x(){(0,i.si)("Skills");let e="u">typeof localStorage&&localStorage.getItem("cockpit-agents-cwd")||void 0,{skills:s,loading:t,deleteSkill:a}=function(e){let[s,t]=(0,r.useState)([]),[n,l]=(0,r.useState)(!0),a=(0,r.useCallback)(()=>{l(!0);let s=new URLSearchParams;e&&s.set("cwd",e),fetch(`/api/skills?${s}`).then(e=>e.json()).then(e=>t(e.skills)).catch(()=>t([])).finally(()=>l(!1))},[e]);(0,r.useEffect)(()=>{a()},[a]);let c=(0,r.useCallback)(async(s,t)=>{let n=new URLSearchParams({scope:t});"project"===t&&e&&n.set("cwd",e);try{if((await fetch(`/api/skills/${encodeURIComponent(s)}?${n}`,{method:"DELETE"})).ok)return a(),!0;return!1}catch{return!1}},[e,a]);return{skills:s,loading:n,refresh:a,deleteSkill:c}}(e),o=(0,c.useRouter)(),[x,p]=(0,r.useState)(null),[j,f]=(0,r.useState)(!1),k=s.filter(e=>"user"===e.scope),N=s.filter(e=>"project"===e.scope);function b(s){f(!1);let t=new URLSearchParams({scope:s});"project"===s&&e&&t.set("cwd",e),o.push(`/skills/new?${t}`)}function g(s,t){let n=new URLSearchParams({scope:t});"project"===t&&e&&n.set("cwd",e),o.push(`/skills/${encodeURIComponent(s)}?${n}`)}async function v(){x&&(await a(x.name,x.scope),p(null))}return(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("div",{}),(0,n.jsxs)(d.$,{size:"sm",onClick:()=>f(!0),children:[(0,n.jsx)(l.A,{className:"h-4 w-4 mr-1"}),"New Skill"]})]}),t&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading skills..."}),!t&&0===s.length&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"No custom skills found. Create one to get started."}),k.length>0&&(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{children:(0,n.jsx)(m.ZB,{className:"text-base",children:"Global"})}),(0,n.jsx)(m.Wu,{className:"space-y-1",children:k.map(e=>(0,n.jsx)(h,{name:e.name,scope:"user",description:e.description,onClick:()=>g(e.name,"user"),onDelete:()=>p({name:e.name,scope:"user"})},e.name))})]}),N.length>0&&(0,n.jsxs)(m.Zp,{children:[(0,n.jsx)(m.aR,{children:(0,n.jsx)(m.ZB,{className:"text-base",children:"Project"})}),(0,n.jsx)(m.Wu,{className:"space-y-1",children:N.map(e=>(0,n.jsx)(h,{name:e.name,scope:"project",description:e.description,onClick:()=>g(e.name,"project"),onDelete:()=>p({name:e.name,scope:"project"})},e.name))})]}),(0,n.jsx)(u.lG,{open:j,onOpenChange:f,children:(0,n.jsxs)(u.Cf,{children:[(0,n.jsx)(u.c7,{children:(0,n.jsx)(u.L3,{children:"New Skill"})}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:"Where should this skill be saved?"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(d.$,{variant:"outline",className:"flex-1",onClick:()=>b("user"),children:"Global"}),(0,n.jsx)(d.$,{variant:"outline",className:"flex-1",onClick:()=>b("project"),disabled:!e,children:"Project"})]})]})}),(0,n.jsx)(u.lG,{open:!!x,onOpenChange:()=>p(null),children:(0,n.jsxs)(u.Cf,{children:[(0,n.jsx)(u.c7,{children:(0,n.jsx)(u.L3,{children:"Delete Skill"})}),(0,n.jsxs)("p",{className:"text-sm text-muted-foreground mb-4",children:["Delete ",(0,n.jsx)("span",{className:"font-mono font-bold",children:x?.name}),"? This cannot be undone."]}),(0,n.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,n.jsx)(d.$,{variant:"outline",onClick:()=>p(null),children:"Cancel"}),(0,n.jsx)(d.$,{variant:"destructive",onClick:v,children:"Delete"})]})]})})]})}function h({name:e,scope:s,description:t,onClick:l,onDelete:c}){return(0,n.jsxs)("div",{className:"flex items-center gap-3 rounded px-2 py-2 hover:bg-muted transition-colors",children:[(0,n.jsxs)("button",{type:"button",className:"flex-1 text-left min-w-0",onClick:l,children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"font-mono font-bold text-sm",children:e}),(0,n.jsx)(o.E,{variant:"secondary",className:"text-[10px]",children:"user"===s?"Global":"Project"})]}),t&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground truncate mt-0.5",children:t})]}),(0,n.jsx)("button",{type:"button",className:"shrink-0 p-1 rounded hover:bg-destructive/10 text-muted-foreground hover:text-destructive transition-colors",onClick:e=>{e.stopPropagation(),c()},children:(0,n.jsx)(a.A,{className:"h-4 w-4"})})]})}}},e=>{e.O(0,[989,11242,3765,28441,93794,77358],()=>e(e.s=46710)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1012,1097,1698,2260,6187,6873,10521,12170,14555,16988,17389,19398,21288,22481,24491,27936,30169,30802,30910,33004,34717,36709,36806,39396,39475,39796,42922,44387,44452,45285,46379,47178,47758,52316,52772,54490,56013,58129,61927,62504,63507,64622,67594,67851,67879,68977,71351,75237,76094,76444,76849,76930,77347,77606,79968,80048,80392,80469,80506,81840,84105,89744,91993,92084,92498,94896,96819,97472,98167],{84441:()=>{}},_=>{_.O(0,[28441,93794,77358],()=>_(_.s=84441)),_N_E=_.O()}]);
|