@alexjbarnes/cockpit 0.3.0 → 0.4.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 +11 -3
- package/.next/build-manifest.json +4 -4
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +21 -45
- package/.next/react-loadable-manifest.json +279 -267
- package/.next/routes-manifest.json +68 -12
- 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)/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)/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 -2
- package/.next/server/app/(app)/inbox/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/inbox/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/inbox/page.js +2 -2
- package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
- package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
- 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)/plugins/page.js +2 -0
- package/.next/server/app/(app)/{files → plugins}/page.js.nft.json +1 -1
- package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js +4 -4
- package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js +2 -2
- package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reviews/[owner]/[repo]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reviews/page.js +2 -2
- package/.next/server/app/(app)/reviews/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reviews/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/sessions/[id]/page.js +2 -2
- package/.next/server/app/(app)/sessions/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/appearance/page.js +2 -2
- package/.next/server/app/(app)/settings/appearance/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/appearance/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/notifications/page.js +2 -2
- package/.next/server/app/(app)/settings/notifications/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/notifications/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/page.js +2 -2
- package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/providers/[id]/page.js +2 -2
- package/.next/server/app/(app)/settings/providers/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/providers/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/providers/new/page.js +2 -2
- package/.next/server/app/(app)/settings/providers/new/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/providers/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/providers/page.js +2 -2
- package/.next/server/app/(app)/settings/providers/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/providers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/session/page.js +2 -2
- package/.next/server/app/(app)/settings/session/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/session/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.js.nft.json +1 -1
- 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.js.nft.json +1 -1
- 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/assistant-session/route.js +1 -0
- package/.next/server/app/api/assistant-session/route.js.nft.json +1 -0
- package/.next/server/app/api/assistant-session/route_client-reference-manifest.js +1 -0
- 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/config/cwd/route.js +1 -0
- package/.next/server/app/api/config/cwd/route.js.nft.json +1 -0
- package/.next/server/app/api/config/cwd/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/defaults/route.js +1 -1
- package/.next/server/app/api/filesystem/browse/route.js +1 -1
- package/.next/server/app/api/filesystem/files/route.js +1 -1
- package/.next/server/app/api/filesystem/mkdir/route.js +1 -1
- package/.next/server/app/api/filesystem/read/route.js +1 -1
- package/.next/server/app/api/git/clone/route.js +1 -1
- package/.next/server/app/api/git/commit/route.js +1 -1
- package/.next/server/app/api/git/diff/route.js +1 -1
- package/.next/server/app/api/git/discard/route.js +1 -1
- package/.next/server/app/api/git/generate-message/route.js +2 -2
- package/.next/server/app/api/git/push/route.js +1 -1
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/github/file-content/route.js +1 -1
- package/.next/server/app/api/github/orgs/route.js +1 -1
- package/.next/server/app/api/github/prs/checks/route.js +1 -1
- package/.next/server/app/api/github/prs/diff/route.js +1 -1
- package/.next/server/app/api/github/prs/review/route.js +1 -1
- package/.next/server/app/api/github/prs/route.js +1 -1
- package/.next/server/app/api/github/prs/view/route.js +1 -1
- package/.next/server/app/api/github/repos/route.js +1 -1
- package/.next/server/app/api/github/review-session/route.js +1 -1
- package/.next/server/app/api/github/review-session/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js +1 -1
- package/.next/server/app/api/hooks/route.js +1 -1
- package/.next/server/app/api/inbox/[id]/route.js +1 -5
- package/.next/server/app/api/inbox/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/inbox/route.js +1 -5
- package/.next/server/app/api/inbox/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/[id]/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/[id]/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/[id]/runs/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/stop/route.js +1 -0
- package/.next/server/app/api/jobs/[id]/stop/route.js.nft.json +1 -0
- package/.next/server/app/api/jobs/[id]/stop/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/jobs/[id]/trigger/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/trigger/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/mcp-discover/route.js +1 -1
- package/.next/server/app/api/jobs/mcp-discover/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/route.js +1 -1
- package/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/status/route.js +1 -1
- package/.next/server/app/api/mcp-servers/[name]/route.js +1 -1
- package/.next/server/app/api/mcp-servers/[name]/test/route.js +1 -1
- package/.next/server/app/api/mcp-servers/[name]/tools/route.js +1 -0
- package/.next/server/app/api/mcp-servers/[name]/tools/route.js.nft.json +1 -0
- package/.next/server/app/api/mcp-servers/[name]/tools/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/mcp-servers/route.js +1 -1
- package/.next/server/app/api/notifications/route.js +1 -1
- package/.next/server/app/api/notifications/test/route.js +3 -3
- package/.next/server/app/api/plugins/[id]/route.js +1 -0
- package/.next/server/app/api/plugins/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/[id]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/install/route.js +1 -0
- package/.next/server/app/api/plugins/install/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/install/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/marketplaces/[name]/route.js +1 -0
- package/.next/server/app/api/plugins/marketplaces/[name]/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/marketplaces/[name]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/marketplaces/route.js +1 -0
- package/.next/server/app/api/plugins/marketplaces/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/marketplaces/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/route.js +1 -0
- package/.next/server/app/api/plugins/route.js.nft.json +1 -0
- package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/providers/[id]/route.js +1 -1
- package/.next/server/app/api/providers/route.js +1 -1
- package/.next/server/app/api/reviews/pinned/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/mcp/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/search/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/search/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/tabs/route.js +1 -1
- package/.next/server/app/api/sessions/bulk-delete/route.js +1 -1
- package/.next/server/app/api/sessions/bulk-delete/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/by-ids/route.js +1 -1
- package/.next/server/app/api/sessions/by-ids/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/group/route.js +1 -1
- package/.next/server/app/api/sessions/group/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/pinned/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/sessions/search/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/thinking/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[name]/route.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/terminal/route.js +1 -1
- package/.next/server/app/api/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/usage/route.js +1 -1
- package/.next/server/app/api/version/changelog/route.js +1 -1
- package/.next/server/app/api/version/cockpit/changelog/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/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/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 -1
- package/.next/server/app/inbox.rsc +4 -4
- package/.next/server/app/inbox.segments/!KGFwcCk/inbox/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/inbox.segments/!KGFwcCk/inbox.segment.rsc +1 -1
- package/.next/server/app/inbox.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/inbox.segments/_full.segment.rsc +4 -4
- package/.next/server/app/inbox.segments/_head.segment.rsc +1 -1
- package/.next/server/app/inbox.segments/_index.segment.rsc +2 -2
- package/.next/server/app/inbox.segments/_tree.segment.rsc +2 -2
- 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.js.nft.json +1 -1
- 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 +3 -3
- package/.next/server/app/login.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- 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/plugins.html +1 -0
- package/.next/server/app/{changes.meta → plugins.meta} +3 -3
- package/.next/server/app/{changes.rsc → plugins.rsc} +4 -4
- package/.next/server/app/{files.segments/!KGFwcCk/files → plugins.segments/!KGFwcCk/plugins}/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/{changes.segments/!KGFwcCk/changes.segment.rsc → plugins.segments/!KGFwcCk/plugins.segment.rsc} +1 -1
- package/.next/server/app/{changes.segments → plugins.segments}/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/{changes.segments → plugins.segments}/_full.segment.rsc +4 -4
- package/.next/server/app/{changes.segments → plugins.segments}/_head.segment.rsc +1 -1
- package/.next/server/app/{files.segments → plugins.segments}/_index.segment.rsc +2 -2
- package/.next/server/app/{changes.segments → plugins.segments}/_tree.segment.rsc +2 -2
- package/.next/server/app/reviews.html +1 -1
- package/.next/server/app/reviews.rsc +4 -4
- package/.next/server/app/reviews.segments/!KGFwcCk/reviews/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/reviews.segments/!KGFwcCk/reviews.segment.rsc +1 -1
- package/.next/server/app/reviews.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/reviews.segments/_full.segment.rsc +4 -4
- package/.next/server/app/reviews.segments/_head.segment.rsc +1 -1
- package/.next/server/app/reviews.segments/_index.segment.rsc +2 -2
- package/.next/server/app/reviews.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/appearance.html +1 -1
- package/.next/server/app/settings/appearance.rsc +4 -4
- package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance.segment.rsc +1 -1
- package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings.segment.rsc +1 -1
- package/.next/server/app/settings/appearance.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/settings/appearance.segments/_full.segment.rsc +4 -4
- package/.next/server/app/settings/appearance.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/appearance.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/appearance.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/notifications.html +1 -1
- package/.next/server/app/settings/notifications.rsc +4 -4
- package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications.segment.rsc +1 -1
- package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings.segment.rsc +1 -1
- package/.next/server/app/settings/notifications.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/settings/notifications.segments/_full.segment.rsc +4 -4
- package/.next/server/app/settings/notifications.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/notifications.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/notifications.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/providers/new.html +1 -1
- package/.next/server/app/settings/providers/new.rsc +4 -4
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new.segment.rsc +1 -1
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers.segment.rsc +1 -1
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings.segment.rsc +1 -1
- package/.next/server/app/settings/providers/new.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/settings/providers/new.segments/_full.segment.rsc +4 -4
- package/.next/server/app/settings/providers/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/providers/new.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/providers/new.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/providers.html +1 -1
- package/.next/server/app/settings/providers.rsc +4 -4
- package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers.segment.rsc +1 -1
- package/.next/server/app/settings/providers.segments/!KGFwcCk/settings.segment.rsc +1 -1
- package/.next/server/app/settings/providers.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/settings/providers.segments/_full.segment.rsc +4 -4
- package/.next/server/app/settings/providers.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/providers.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/providers.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/session.html +1 -1
- package/.next/server/app/settings/session.rsc +4 -4
- package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session.segment.rsc +1 -1
- package/.next/server/app/settings/session.segments/!KGFwcCk/settings.segment.rsc +1 -1
- package/.next/server/app/settings/session.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/settings/session.segments/_full.segment.rsc +4 -4
- package/.next/server/app/settings/session.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/session.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/session.segments/_tree.segment.rsc +2 -2
- 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 +11 -3
- package/.next/server/chunks/1011.js +1 -1
- package/.next/server/chunks/1327.js +1 -1
- package/.next/server/chunks/1979.js +7 -2
- package/.next/server/chunks/2666.js +1 -0
- package/.next/server/chunks/3136.js +11 -0
- package/.next/server/chunks/319.js +45 -0
- package/.next/server/chunks/3445.js +2 -2
- package/.next/server/chunks/3764.js +1 -1
- package/.next/server/chunks/4053.js +4971 -0
- package/.next/server/chunks/5292.js +201 -0
- package/.next/server/chunks/5318.js +1 -1
- package/.next/server/chunks/5472.js +1 -1
- package/.next/server/chunks/6304.js +1 -1
- package/.next/server/chunks/6705.js +1 -1
- package/.next/server/chunks/7539.js +5 -0
- package/.next/server/chunks/7891.js +1 -0
- package/.next/server/chunks/8578.js +1 -1
- package/.next/server/chunks/8728.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/12644.84908edd1bec8b5a.js +1 -0
- package/.next/static/chunks/1550-9a32fa02f6722fc7.js +25 -0
- package/.next/static/chunks/18977.393a8bc1bef44fc4.js +1 -0
- package/.next/static/chunks/{2503.bb9d3528c3c7ccae.js → 2503.68e12779c4b14adb.js} +1 -1
- package/.next/static/chunks/25781-c77dc5d11fb85d82.js +201 -0
- package/.next/static/chunks/{27455.1bce740b63d7c3cc.js → 27455.8f2189c777c63368.js} +1 -1
- package/.next/static/chunks/33072.3d32bb7b2a85ca9b.js +1 -0
- package/.next/static/chunks/39267.0c93a6bed8e46ac0.js +1 -0
- package/.next/static/chunks/52333.ff3bf0753b68875e.js +1 -0
- package/.next/static/chunks/69940.42e1ca99efc62caf.js +1 -0
- package/.next/static/chunks/70400.ffe0412efe741888.js +1 -0
- package/.next/static/chunks/7113.336a2a8deabe2aa5.js +1 -0
- package/.next/static/chunks/{71642.852436e8f0287b89.js → 71642.e11bcaa30efbf1f2.js} +1 -1
- package/.next/static/chunks/{72839.a5325a99f8c12fed.js → 72839.225c36dd5e767a20.js} +1 -1
- package/.next/static/chunks/{69427.a0b463c808aa54c8.js → 81272.b0027c9bc80050aa.js} +1 -1
- package/.next/static/chunks/85853.421f0c913b3d332b.js +1 -0
- package/.next/static/chunks/86155.3c5c1468fa2f446e.js +1 -0
- package/.next/static/chunks/86339.ba009abde9765665.js +1 -0
- package/.next/static/chunks/86939-51ae17d3d12c0310.js +1 -0
- package/.next/static/chunks/93794-b87eef7d177fe7b3.js +32 -0
- package/.next/static/chunks/989-6074551b2b54a168.js +3 -0
- package/.next/static/chunks/app/(app)/agents/[name]/page-6954a12623e4bdcf.js +8 -0
- package/.next/static/chunks/app/(app)/agents/{page-6fcfd7ab6781814e.js → page-b984c01f39aed22e.js} +1 -1
- package/.next/static/chunks/app/(app)/claude-md/edit/page-575c5ccdc585516c.js +1 -0
- package/.next/static/chunks/app/(app)/claude-md/{page-cd9e2176a12ba241.js → page-aab6df0c14c657f3.js} +1 -1
- package/.next/static/chunks/app/(app)/commands/[name]/page-ea86a4400fd29210.js +6 -0
- package/.next/static/chunks/app/(app)/commands/{page-f126b608b04747ac.js → page-3867a45c1378c6fe.js} +1 -1
- package/.next/static/chunks/app/(app)/hooks/[event]/{page-28038323fd29adfa.js → page-2c41e810c15a1149.js} +2 -2
- package/.next/static/chunks/app/(app)/hooks/{page-f1f39284e53c0344.js → page-49f9dbb78a3f97df.js} +1 -1
- package/.next/static/chunks/app/(app)/inbox/[id]/page-885a258b67e47b00.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-592249fc155b9fe4.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-121bf977a839488c.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/page-ba516fa01db89ea0.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-0650e6f678fae5b8.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/page-da3fe23a43277e67.js +1 -0
- package/.next/static/chunks/app/(app)/{layout-ce9e1be301c60fe5.js → layout-3cd80708648e0723.js} +1 -1
- package/.next/static/chunks/app/(app)/mcp-servers/[name]/{page-d6d805a27ec0b0c0.js → page-9290a7940a32d9ac.js} +1 -1
- package/.next/static/chunks/app/(app)/mcp-servers/page-1e828264f81ee08c.js +1 -0
- package/.next/static/chunks/app/(app)/{page-027a5382da30ddb9.js → page-2d171ffc3e1945e1.js} +1 -1
- package/.next/static/chunks/app/(app)/plugins/page-7e70e0b3ead44a99.js +1 -0
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-4396e9d6df189336.js +13 -0
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/{page-c5fd013309ab3eba.js → page-76a072cbfe3d9f0e.js} +1 -1
- package/.next/static/chunks/app/(app)/reviews/{page-47530d93bb9d4a76.js → page-deaa44f0ce253da8.js} +1 -1
- package/.next/static/chunks/app/(app)/sessions/[id]/page-95bcce2e0b9f827a.js +1 -0
- package/.next/static/chunks/app/(app)/settings/appearance/{page-95902da748ac5f1e.js → page-433fcfb9b95fb22e.js} +1 -1
- package/.next/static/chunks/app/(app)/settings/notifications/page-e5309337f125a059.js +1 -0
- package/.next/static/chunks/app/(app)/settings/{page-8ed16a66fdde10cd.js → page-353ef8c508418af1.js} +1 -1
- package/.next/static/chunks/app/(app)/settings/providers/[id]/page-2cacea2e60ba435c.js +1 -0
- package/.next/static/chunks/app/(app)/settings/providers/new/page-d40acef3abfc7c19.js +1 -0
- package/.next/static/chunks/app/(app)/settings/providers/page-098d8f399c663944.js +1 -0
- package/.next/static/chunks/app/(app)/settings/session/page-706118ba33c2b99f.js +1 -0
- package/.next/static/chunks/app/(app)/skills/[name]/page-7dd7c0f316742c01.js +6 -0
- package/.next/static/chunks/app/(app)/skills/{page-c52773eacb27c04e.js → page-48d0bbe201180fc8.js} +1 -1
- package/.next/static/chunks/app/_global-error/page-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/agents/[name]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/agents/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/assistant-session/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/auth/check/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/auth/setup/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/auth/ws-token/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/btw/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/claude-md/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/commands/[name]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/commands/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/config/cwd/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/defaults/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/filesystem/browse/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/filesystem/files/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/filesystem/mkdir/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/filesystem/read/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/git/clone/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/git/commit/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/git/discard/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/git/generate-message/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/git/push/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/file-content/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/orgs/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/prs/checks/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/prs/diff/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/prs/review/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/prs/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/prs/view/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/repos/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/github/review-session/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/health/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/hooks/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/inbox/[id]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/inbox/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/runs/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/stop/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/[id]/trigger/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/mcp-discover/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/jobs/status/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/[name]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/[name]/tools/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/mcp-servers/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/notifications/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/notifications/test/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/plugins/[id]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/plugins/install/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/plugins/marketplaces/[name]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/plugins/marketplaces/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/providers/[id]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/providers/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/reviews/pinned/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/mcp/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/search/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/tabs/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/bulk-delete/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/by-ids/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/group/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/pinned/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/sessions/thinking/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/skills/[name]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/skills/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/terminal/[id]/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/terminal/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/usage/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/version/changelog/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/version/cockpit/changelog/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/version/cockpit/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/app/api/version/route-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/{framework-6fd9f138158c42e0.js → framework-45a1aae1a0f575fd.js} +1 -1
- package/.next/static/chunks/{main-5dac9bfffcc23702.js → main-eb9ff0b73c75808a.js} +3 -3
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-bf8153dffcb47d46.js +1 -0
- package/.next/static/chunks/webpack-76a545b642140725.js +1 -0
- package/.next/static/css/483101dd9c42fb97.css +1 -0
- package/.next/static/mmHo0MmzQHWjZATtI-VbH/_buildManifest.js +1 -0
- package/README.md +13 -4
- package/bin/cockpit-hook-bridge.mjs +93 -24
- package/dist/server.js +10 -0
- package/dist/src/lib/cli-commands.js +147 -0
- package/dist/src/lib/models.js +8 -0
- package/dist/src/lib/paste-detect.js +161 -0
- package/dist/src/server/assistant-settings.js +35 -0
- package/dist/src/server/claude-bin.js +21 -0
- package/dist/src/server/cli-init-fetch.js +6 -1
- package/dist/src/server/inbox.js +2 -2
- package/dist/src/server/job-scheduler.js +146 -4
- package/dist/src/server/job-storage.js +33 -0
- package/dist/src/server/mcp/cockpit-agent-prompt.js +5 -0
- package/dist/src/server/mcp/cockpit-config-server.js +632 -0
- package/dist/src/server/mcp/run-context.js +23 -0
- package/dist/src/server/notifications.js +51 -10
- package/dist/src/server/plugins.js +103 -0
- package/dist/src/server/providers.js +25 -2
- package/dist/src/server/pty-runtime.js +112 -3
- package/dist/src/server/pty-session.js +7 -4
- package/dist/src/server/session-manager.js +338 -100
- package/dist/src/server/singleton.js +9 -0
- package/dist/src/server/terminal-buffer.js +17 -0
- package/dist/src/server/terminal-manager.js +9 -13
- package/dist/src/server/transcript.js +39 -22
- package/dist/src/server/ws-handler.js +18 -6
- package/next.config.ts +1 -0
- package/package.json +3 -2
- package/.next/server/app/(app)/changes/page.js +0 -2
- package/.next/server/app/(app)/changes/page.js.nft.json +0 -1
- package/.next/server/app/(app)/changes/page_client-reference-manifest.js +0 -1
- package/.next/server/app/(app)/files/page.js +0 -2
- package/.next/server/app/(app)/files/page_client-reference-manifest.js +0 -1
- package/.next/server/app/changes.html +0 -1
- package/.next/server/app/changes.segments/!KGFwcCk/changes/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/changes.segments/_index.segment.rsc +0 -5
- package/.next/server/app/files.html +0 -1
- package/.next/server/app/files.meta +0 -16
- package/.next/server/app/files.rsc +0 -23
- package/.next/server/app/files.segments/!KGFwcCk/files.segment.rsc +0 -5
- package/.next/server/app/files.segments/!KGFwcCk.segment.rsc +0 -7
- package/.next/server/app/files.segments/_full.segment.rsc +0 -23
- package/.next/server/app/files.segments/_head.segment.rsc +0 -6
- package/.next/server/app/files.segments/_tree.segment.rsc +0 -2
- package/.next/server/chunks/3006.js +0 -199
- package/.next/server/chunks/4342.js +0 -1
- package/.next/server/chunks/4352.js +0 -1
- package/.next/server/chunks/4445.js +0 -1
- package/.next/server/chunks/63.js +0 -45
- package/.next/server/chunks/7782.js +0 -6
- package/.next/server/chunks/8148.js +0 -1
- package/.next/server/chunks/9599.js +0 -11
- package/.next/static/chunks/18977.a98edaf19c6df2d4.js +0 -1
- package/.next/static/chunks/26126-97874904b42befb8.js +0 -1
- package/.next/static/chunks/31010-6e87f77b97544424.js +0 -1
- package/.next/static/chunks/33072.9c3cd19e8d515dea.js +0 -1
- package/.next/static/chunks/3765-d323c6675307a63e.js +0 -20
- package/.next/static/chunks/39267.ef60669ade47cf4c.js +0 -1
- package/.next/static/chunks/41487-d802643f4a8fad3c.js +0 -199
- package/.next/static/chunks/48273-bbd15bac6733dfc4.js +0 -6
- package/.next/static/chunks/52333.f98d1cca9a127b34.js +0 -1
- package/.next/static/chunks/6935-f436a624267529fb.js +0 -1
- package/.next/static/chunks/70400.1816c247ad90f9bc.js +0 -1
- package/.next/static/chunks/7113.39704408fef3d26e.js +0 -1
- package/.next/static/chunks/85853.39872899093b140a.js +0 -1
- package/.next/static/chunks/86155.40f687f9aaa13854.js +0 -1
- package/.next/static/chunks/86339.4dbd51a9b9871f65.js +0 -1
- package/.next/static/chunks/86939-dfc6f8eb395caa89.js +0 -1
- package/.next/static/chunks/93794-5f89a674d8cefcff.js +0 -32
- package/.next/static/chunks/989-94bf2b9d242776c3.js +0 -3
- package/.next/static/chunks/app/(app)/agents/[name]/page-8bdd0359043537d4.js +0 -8
- package/.next/static/chunks/app/(app)/changes/page-4549a5bd72d77e3e.js +0 -1
- package/.next/static/chunks/app/(app)/claude-md/edit/page-08e6e120e71979f4.js +0 -1
- package/.next/static/chunks/app/(app)/commands/[name]/page-7cdfdef29ded0aa0.js +0 -6
- package/.next/static/chunks/app/(app)/files/page-f526eb95821e000e.js +0 -1
- package/.next/static/chunks/app/(app)/inbox/[id]/page-bc1ff3a0db0114a4.js +0 -1
- package/.next/static/chunks/app/(app)/inbox/page-82e03870103ce9bd.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-7fb788f772ff2129.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/[id]/page-a5856b9ae967ff59.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-b7c513402db11db6.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/page-e9bbd6c116b9699f.js +0 -1
- package/.next/static/chunks/app/(app)/mcp-servers/page-4b7276d43451cd43.js +0 -1
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-9ab2955c455bb5fa.js +0 -13
- package/.next/static/chunks/app/(app)/sessions/[id]/page-94f891e1b54fd05f.js +0 -1
- package/.next/static/chunks/app/(app)/settings/notifications/page-229f1db6beb1d19c.js +0 -1
- package/.next/static/chunks/app/(app)/settings/providers/[id]/page-13654263246617b3.js +0 -1
- package/.next/static/chunks/app/(app)/settings/providers/new/page-e1798e321ccbc6df.js +0 -1
- package/.next/static/chunks/app/(app)/settings/providers/page-0bb4c1db2ee35b3d.js +0 -1
- package/.next/static/chunks/app/(app)/settings/session/page-ab216a8fa37a0f76.js +0 -1
- package/.next/static/chunks/app/(app)/skills/[name]/page-8ab85d5090967ee4.js +0 -6
- package/.next/static/chunks/app/_global-error/page-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/agents/[name]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/agents/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/auth/check/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/auth/setup/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/auth/ws-token/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/btw/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/claude-md/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/commands/[name]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/commands/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/defaults/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/filesystem/browse/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/filesystem/files/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/filesystem/mkdir/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/filesystem/read/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/git/clone/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/git/commit/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/git/discard/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/git/generate-message/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/git/push/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/file-content/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/orgs/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/prs/checks/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/prs/diff/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/prs/review/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/prs/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/prs/view/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/repos/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/github/review-session/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/health/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/hooks/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/inbox/[id]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/inbox/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/runs/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/jobs/[id]/trigger/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/jobs/mcp-discover/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/jobs/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/jobs/status/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/mcp-servers/[name]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/mcp-servers/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/notifications/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/notifications/test/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/providers/[id]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/providers/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/reviews/pinned/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/mcp/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/search/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/tabs/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/bulk-delete/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/by-ids/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/group/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/pinned/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/thinking/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/skills/[name]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/skills/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/terminal/[id]/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/terminal/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/usage/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/version/changelog/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/version/cockpit/changelog/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/version/cockpit/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/app/api/version/route-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fc747760bd4c8a4b.js +0 -1
- package/.next/static/chunks/webpack-e31bb45fa59caed8.js +0 -1
- package/.next/static/css/3f8af4ae6f812d5c.css +0 -1
- package/.next/static/zr8XZzqb74eHitdlkpo-C/_buildManifest.js +0 -1
- /package/.next/static/{zr8XZzqb74eHitdlkpo-C → mmHo0MmzQHWjZATtI-VbH}/_ssgManifest.js +0 -0
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=7782,exports.ids=[7782],exports.modules={12637:(a,b,c)=>{c.d(b,{G:()=>e});var d=c(67484);function e(){let[a,b]=(0,d.useState)(()=>!1);return a}},15096:(a,b,c)=>{c.d(b,{I:()=>aP});var d=c(48249),e=c(69357),f=c(34460),g=c(82902),h=c(86765),i=c(19099),j=c(67484);function k(a){if("system"===a.role)return"";if("user"===a.role)return a.content;let b=a.blocks.filter(a=>"text"===a.type).map(a=>a.text);return b.length>0?b.join("\n"):a.content}var l=c(28213),m=c(93571),n=c(23077),o=c(94856),p=c(14490),q=c(3284),r=c(61022),s=c(45535),t=c(46303),u=c(64571),v=c(35101),w=c(26773),x=c(35471),y=c(54183),z=c(24422),A=c(67254),B=c(27993),C=c(21422),D=c(48581),E=c(53061),F=c(91995),G=c(57684),H=c(15741),I=c(87359),J=c(67612),K=c(52839),L=c(80592),M=c(67151),N=c(36606),O=c(42377),P=c(18908),Q=c(91404),R=c(57762),S=c(2864),T=c(25297);function U({open:a,onOpenChange:b,sessionId:c,initData:f}){let g=(0,i.useRouter)(),[h,k]=(0,j.useState)([]),[l,m]=(0,j.useState)(!1),[n,o]=(0,j.useState)(null),[q,r]=(0,j.useState)(null),t=(0,j.useCallback)(()=>{c&&(m(!0),fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`).then(a=>{if(!a.ok)throw Error("Failed to fetch");return a.json()}).then(a=>{a.mcpServers&&k(a.mcpServers)}).catch(()=>{}).finally(()=>m(!1)))},[c]),u=(0,j.useCallback)(async(a,b)=>{if(!c)return;let d="disabled"===b;r(a),k(b=>b.map(b=>b.name===a?{...b,status:d?"connecting":"disabled"}:b));try{await fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"toggle",serverName:a,enabled:d})}),k(b=>b.map(b=>b.name===a?{...b,status:d?"connected":"disabled"}:b))}catch{k(c=>c.map(c=>c.name===a?{...c,status:b}:c))}finally{r(null)}},[c]),v=(0,j.useCallback)(async a=>{if(c){r(a),k(b=>b.map(b=>b.name===a?{...b,status:"connecting",error:void 0}:b));try{await fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"reconnect",serverName:a})}),k(b=>b.map(b=>b.name===a?{...b,status:"connected"}:b))}catch{k(b=>b.map(b=>b.name===a?{...b,status:"failed"}:b))}finally{r(null)}}},[c]);return 0!==(f?.mcpServers?.length??0)&&a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&b(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-lg mx-4 rounded-lg border bg-background p-5 shadow-lg max-h-[80vh] flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(E.A,{className:"h-4 w-4"}),(0,d.jsx)("h2",{className:"text-base font-semibold",children:"MCP Servers"}),(0,d.jsx)(S.E,{variant:"secondary",className:"text-xs",children:h.length})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(T.$,{variant:"ghost",size:"icon",onClick:t,title:"Refresh",children:(0,d.jsx)(B.A,{className:(0,p.cn)("h-4 w-4",l&&"animate-spin")})}),(0,d.jsx)(T.$,{variant:"ghost",size:"icon",onClick:()=>b(!1),children:(0,d.jsx)(s.A,{className:"h-4 w-4"})})]})]}),l&&0===h.length&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(e.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),!l&&n&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:n}),h.length>0&&(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto border rounded",children:h.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2.5 border-b last:border-b-0",children:[(0,d.jsx)("div",{className:(0,p.cn)("h-2 w-2 rounded-full shrink-0",function(a){switch(a){case"connected":return"bg-green-500";case"disabled":return"bg-muted-foreground/40";case"failed":return"bg-red-500";default:return"bg-yellow-500"}}(a.status))}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono text-sm font-bold truncate",children:a.name}),a.scope&&(0,d.jsx)(S.E,{variant:"outline",className:"text-[10px] shrink-0",children:a.scope})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:function(a){switch(a){case"connected":return"Connected";case"connecting":return"Connecting...";case"disabled":return"Disabled";case"failed":return"Failed";default:return a}}(a.status)}),a.tools&&a.tools.length>0&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[a.tools.length," tools"]}),a.config?.type&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:a.config.type})]}),a.error&&(0,d.jsx)("p",{className:"text-xs text-red-500 mt-0.5 truncate",children:a.error})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:["failed"===a.status&&c&&(0,d.jsx)(T.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>v(a.name),disabled:q===a.name,title:"Reconnect",children:(0,d.jsx)(B.A,{className:(0,p.cn)("h-3.5 w-3.5",q===a.name&&"animate-spin")})}),c&&(0,d.jsx)(T.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>u(a.name,a.status),disabled:q===a.name,title:"disabled"===a.status?"Enable":"Disable",children:"disabled"===a.status?(0,d.jsx)(P.A,{className:"h-3.5 w-3.5"}):(0,d.jsx)(Q.A,{className:"h-3.5 w-3.5"})})]})]},a.name))}),!l&&0===h.length&&!n&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No MCP servers configured"}),(0,d.jsx)("div",{className:"flex justify-end mt-3",children:(0,d.jsxs)(T.$,{variant:"outline",size:"sm",className:"gap-1.5",onClick:()=>{b(!1),g.push("/mcp-servers")},children:[(0,d.jsx)(R.A,{className:"h-3.5 w-3.5"}),"Manage servers"]})})]})}):null}let V=[{name:"Explore",description:"Fast codebase exploration"},{name:"Plan",description:"Design implementation plans"},{name:"general-purpose",description:"Multi-step tasks and code changes"},{name:"claude-code-guide",description:"Claude Code documentation"}];function W({query:a,cwd:b,selectedIndex:c,onSelect:e,onItemsChange:f,initAgents:g}){let h=(0,j.useRef)(null),[i,k]=(0,j.useState)([]),[l,m]=(0,j.useState)([]);(0,j.useRef)(null);let n=a.toLowerCase(),p=(0,j.useMemo)(()=>{if(g&&g.length>0)return g.map(a=>({name:a.name,description:a.description}));let a=new Set(l.map(a=>a.name));return[...V.filter(b=>!a.has(b.name)).map(a=>({name:a.name,description:a.description})),...l.map(a=>({name:a.name,description:a.description}))]},[g,l]),q=(0,j.useMemo)(()=>p.filter(a=>a.name.toLowerCase().includes(n)).map(a=>({value:a.name,label:a.name,description:a.description,kind:"agent"})),[n,p]),r=(0,j.useMemo)(()=>i.map(a=>({value:a,label:a,kind:"file"})),[i]);return 0===(0,j.useMemo)(()=>[...q,...r],[q,r]).length?null:(0,d.jsxs)("div",{ref:h,className:"absolute bottom-full left-0 mb-1 w-80 max-h-60 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md",children:[q.length>0&&r.length>0&&(0,d.jsx)("div",{className:"px-3 py-1 text-xs text-muted-foreground font-medium",children:"Agents"}),q.map((a,b)=>(0,d.jsxs)("button",{type:"button","data-index":b,className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${b===c?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),e(a.value)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:a.label}),(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a.description})]},a.value)),r.length>0&&q.length>0&&(0,d.jsx)("div",{className:"px-3 py-1 text-xs text-muted-foreground font-medium",children:"Files"}),r.map((a,b)=>{let f=q.length+b,g=(0,o.uk)(a.value),h=(0,o.ww)(a.value)||null;return(0,d.jsxs)("button",{type:"button","data-index":f,className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${f===c?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),e(a.value)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:g}),h&&(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:h})]},a.value)})]})}let X=[{command:"/clear",description:"Clear conversation and start fresh"},{command:"/compact",description:"Compact conversation context"},{command:"/cost",description:"Show token usage"},{command:"/context",description:"Show context window usage"},{command:"/model",description:"Show or switch model"},{command:"/rename",description:"Rename this session"},{command:"/commit",description:"Commit changes"},{command:"/review",description:"Review code changes"},{command:"/help",description:"Show available commands"}],Y=[{command:"/btw",description:"Nudge Claude while it's working"},{command:"/mcp",description:"Show MCP server status"}];function Z({query:a,selectedIndex:b,onSelect:c,cwd:e,onItemsChange:f,initCommands:g}){let h,i,k,l,m=(0,j.useRef)(null),[n,o]=(0,j.useState)([]),p=g?(h=new Map(X.map(a=>[a.command,a])),k=new Set((i=g.map(a=>{let b=a.startsWith("/")?a:"/"+a;return h.get(b)||{command:b,description:""}})).map(a=>a.command)),[...i,...X.filter(a=>!k.has(a.command))]):(l=new Set(X.map(a=>a.command)),[...X,...n.filter(a=>!l.has(a.command))]),q=new Set,r=[];for(let a of[...p,...Y])q.has(a.command)||(q.add(a.command),r.push(a));let s=r.filter(b=>b.command.startsWith("/"+a));return 0===s.length?null:(0,d.jsx)("div",{ref:m,className:"absolute bottom-full left-0 mb-1 w-80 max-h-60 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md",children:s.map((a,e)=>(0,d.jsxs)("button",{type:"button",className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${e===b?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),c(a)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:a.command}),(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a.description})]},a.command))})}var $=c(38393);let _={asm:"asm",awk:"awk",batch:"bat",c:"c",clojure:"clj",cmake:"cmake",cobol:"cob",coffeescript:"coffee",cpp:"cpp",cs:"cs",css:"css",csv:"csv",dart:"dart",diff:"diff",dockerfile:"dockerfile",elixir:"ex",erlang:"erl",fortran:"f90",gleam:"gleam",go:"go",gradle:"gradle",groovy:"groovy",h:"h",handlebars:"hbs",haskell:"hs",hcl:"tf",hpp:"hpp",html:"html",ini:"ini",java:"java",javascript:"js",json:"json",jsonc:"jsonc",jsonl:"jsonl",jsx:"jsx",julia:"jl",kotlin:"kt",latex:"tex",less:"less",lisp:"lisp",lua:"lua",makefile:"makefile",markdown:"md",matlab:"m",nim:"nim",objectivec:"m",ocaml:"ml",odin:"odin",pascal:"pas",perl:"pl",php:"php",powershell:"ps1",prolog:"pl",proto:"proto",python:"py",r:"r",rst:"rst",ruby:"rb",rust:"rs",scala:"scala",scheme:"scm",scss:"scss",shell:"sh",solidity:"sol",sql:"sql",svelte:"svelte",svg:"svg",swift:"swift",tcl:"tcl",toml:"toml",tsx:"tsx",typescript:"ts",vba:"vba",verilog:"v",vhdl:"vhdl",vue:"vue",xml:"xml",yaml:"yaml",yara:"yar",zig:"zig"};function aa(a){return a.split(/\r?\n/).length>=10}let ab=null;async function ac(a){try{ab||(ab=c.e(4293).then(c.bind(c,44293)).then(a=>a.Magika.create()));let b=await ab,d=new TextEncoder().encode(a.slice(0,8192)),e=(await b.identifyBytes(d)).prediction.output.label;if("txt"===e||"unknown"===e||"empty"===e)return null;return _[e]?e:null}catch{return null}}var ad=c(27962);function ae(a){return a>=1e3?`${(a/1e3).toFixed(1)}k`:String(a)}function af({usage:a,onCompact:b}){let[c,e]=(0,j.useState)(!1),f=Math.round(a.used/a.total*100),g=f>80?"#ef4444":f>50?"#f97316":"#22c55e",h=2*Math.PI*6,i=Math.min(f,100)/100*h;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>e(!0),className:"flex items-center justify-center w-8 h-6 rounded-md hover:bg-muted transition-colors",title:`Context: ${f}%`,"data-testid":"context-indicator",children:(0,d.jsxs)("svg",{width:14,height:14,className:"-rotate-90",children:[(0,d.jsx)("circle",{cx:7,cy:7,r:6,fill:"none",stroke:"currentColor",strokeWidth:2,className:"text-muted-foreground/25"}),(0,d.jsx)("circle",{cx:7,cy:7,r:6,fill:"none",stroke:g,strokeWidth:2,strokeDasharray:h,strokeDashoffset:h-i,strokeLinecap:"round"})]})}),c&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&e(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Context Usage"}),(0,d.jsx)(T.$,{variant:"ghost",size:"icon",onClick:()=>e(!1),children:(0,d.jsx)(s.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex justify-between text-sm mb-2",children:[(0,d.jsx)("span",{children:"Tokens used"}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:[f,"%"]})]}),(0,d.jsx)("div",{className:"h-2.5 rounded-full bg-muted overflow-hidden mb-2",children:(0,d.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${Math.min(f,100)}%`,backgroundColor:g}})}),(0,d.jsxs)("div",{className:"flex justify-between text-xs text-muted-foreground",children:[(0,d.jsxs)("span",{"data-testid":"context-used",children:[ae(a.used)," used"]}),(0,d.jsxs)("span",{"data-testid":"context-total",children:[ae(a.total)," total"]})]}),b&&(0,d.jsxs)(T.$,{variant:"outline",size:"sm",className:"w-full mt-4",onClick:()=>{b(),e(!1)},children:[(0,d.jsx)(ad.A,{className:"h-3.5 w-3.5 mr-2"}),"Compact now"]})]})})]})}var ag=c(29813);function ah({open:a,prompts:b,onSelect:c,onClose:e}){let[f,g]=(0,j.useState)(""),[h,i]=(0,j.useState)(0),k=(0,j.useRef)(null),l=(0,j.useRef)(null),m=(0,j.useMemo)(()=>{if(!f.trim())return b;let a=f.toLowerCase();return b.filter(b=>b.toLowerCase().includes(a))},[b,f]),n=(0,j.useCallback)(a=>{if("Escape"===a.key){a.preventDefault(),e();return}if("ArrowUp"===a.key){a.preventDefault(),i(a=>a<m.length-1?a+1:0);return}if("ArrowDown"===a.key){a.preventDefault(),i(a=>a>0?a-1:m.length-1);return}if("Enter"===a.key){a.preventDefault(),m[h]&&c(m[h]);return}},[m,h,c,e]);return a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-end justify-center",onMouseDown:a=>a.target===a.currentTarget&&e(),children:(0,d.jsxs)("div",{className:"w-full max-w-3xl mb-24 mx-4 rounded-lg border bg-background shadow-lg overflow-hidden",onKeyDown:n,children:[(0,d.jsxs)("div",{ref:l,className:"max-h-80 overflow-y-auto p-1 flex flex-col-reverse",children:[0===m.length&&(0,d.jsx)("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:f?"No matching prompts":"No prompt history"}),m.map((a,b)=>(0,d.jsxs)("button",{onClick:()=>c(a),onMouseEnter:()=>i(b),className:`flex w-full items-start gap-2 rounded px-3 py-2 text-left text-sm transition-colors ${h===b?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"shrink-0 font-mono text-xs text-muted-foreground/50 w-5 text-right pt-0.5",children:b+1}),(0,d.jsx)("span",{className:"line-clamp-2 break-all",children:a})]},`${b}-${a.slice(0,20)}`))]}),(0,d.jsxs)("div",{className:"border-t px-3 py-2 flex items-center gap-2",children:[(0,d.jsx)(ag.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,d.jsx)("input",{ref:k,value:f,onChange:a=>g(a.target.value),placeholder:"Search prompts...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground shrink-0",children:[m.length," prompt",1!==m.length?"s":""]})]})]})}):null}var ai=c(82078),aj=c(54171);function ak({open:a,onOpenChange:b,messages:c,paused:e,onDelete:f,onEdit:g,onResume:h}){return a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&b(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Queued Messages"}),(0,d.jsx)(T.$,{variant:"ghost",size:"icon",onClick:()=>b(!1),children:(0,d.jsx)(s.A,{className:"h-4 w-4"})})]}),0===c.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No queued messages"}):(0,d.jsx)("div",{className:"space-y-2 max-h-64 overflow-y-auto",children:c.map((a,c)=>(0,d.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border px-3 py-2.5",children:[(0,d.jsxs)("span",{className:"text-xs text-muted-foreground mt-0.5 shrink-0",children:[c+1,"."]}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"text-sm break-words line-clamp-3",children:a.text}),(0,d.jsx)("span",{className:`text-[10px] mt-0.5 inline-block ${e?"text-yellow-500":"text-muted-foreground"}`,children:e?"paused":"queued"})]}),(0,d.jsxs)("div",{className:"flex gap-1 shrink-0",children:[(0,d.jsx)("button",{onClick:()=>{g(a.id),b(!1)},className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors",title:"Edit (move to input)",children:(0,d.jsx)(ai.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("button",{onClick:()=>f(a.id),className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-destructive transition-colors",title:"Delete",children:(0,d.jsx)(G.A,{className:"h-3.5 w-3.5"})})]})]},a.id))}),e&&c.length>0&&(0,d.jsx)("div",{className:"mt-4 pt-4 border-t",children:(0,d.jsxs)(T.$,{variant:"default",size:"sm",className:"w-full",onClick:()=>{h(),b(!1)},children:[(0,d.jsx)(aj.A,{className:"h-3.5 w-3.5 mr-2"}),"Resume queue"]})})]})}):null}let al=[{value:"haiku",label:"Haiku"},{value:"sonnet",label:"Sonnet"},{value:"opus",label:"Opus"}];function am(a,b){let c=a.replace(/\[.*\]$/,"");if("opus"===c||"sonnet"===c||"haiku"===c)return{alias:c,entry:(0,l.zQ)(c)??null,contextSize:b};let d=(0,l.bs)(c)??null;return{alias:d?.alias??null,entry:d,contextSize:b}}function an(a){return 1===(0,l.r5)(a.alias).length&&a.isDefault?a.alias:a.modelId}let ao=[{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"xhigh",label:"XHigh"},{value:"max",label:"Max"}],ap=new Set(["image/png","image/jpeg","image/gif","image/webp"]),aq=new Set([".txt",".md",".py",".js",".ts",".tsx",".jsx",".json",".csv",".xml",".yaml",".yml",".html",".css",".log",".sh",".go",".rs",".java",".c",".cpp",".h",".rb",".swift",".kt",".toml",".cfg",".ini",".env",".sql",".r",".lua",".pl",".php"]);function ar(a){return new Promise(b=>{let c=new FileReader;c.onload=()=>{b(c.result.split(",")[1]||null)},c.onerror=()=>b(null),c.readAsDataURL(a)})}let as=["image/*",".pdf",...Array.from(aq)].join(","),at=new Map;function au({sessionId:a,promptHistory:b=[],onSend:c,onInterrupt:f,isResponding:g,bypassActive:h,onSetBypass:i,planMode:k,onSetPlanMode:n,thinkingLevel:o,onSetThinking:p,currentModel:q,currentContextSize:P,onSetModel:Q,contextUsage:R,dismissKeyboard:S,cwd:V,onCompact:X,initData:Y,hasQueuedMessage:ab,queuedMessages:ad,queuePaused:ae,onDeleteQueued:ag,onEditQueued:ai,onResumeQueue:aj,restoredText:av,onClearRestoredText:aw,btw:ax,onDismissBtw:ay,currentRuntime:az,onSetRuntime:aA,onRestart:aB,providers:aC}){let aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,{connected:aQ}=(0,m.h)(),[aR,aS]=(0,j.useState)(()=>at.get(a)||""),[aT,aU]=(0,j.useState)(!1),[aV,aW]=(0,j.useState)(!1),[aX,aY]=(0,j.useState)(!1),[aZ,a$]=(0,j.useState)(0),[a_,a0]=(0,j.useState)(!1),[a1,a2]=(0,j.useState)("model"),[a3,a4]=(0,j.useState)("anthropic"),[a5,a6]=(0,j.useState)(0),[a7,a8]=(0,j.useState)(0),[a9,ba]=(0,j.useState)([]),[bb,bc]=(0,j.useState)([]),[bd,be]=(0,j.useState)([]),[bf,bg]=(0,j.useState)(!1),[bh,bi]=(0,j.useState)(null),bj=(0,j.useRef)(null),bk=(0,j.useRef)(null),bl=(0,j.useRef)([]),bm=(0,j.useRef)([]),bn=(0,j.useRef)(!1),bo=(aD=aR.slice(0,a7).match(/(?:^|\s)\/([^\s]*)$/))?{active:!0,query:aD[1],start:a7-1-aD[1].length}:{active:!1,query:"",start:0},bp=bo.active,bq=bo.query,br=(aE=aR.slice(0,a7).match(/@([^\s]*)$/))?{active:!0,query:aE[1],start:a7-aE[0].length}:{active:!1,query:"",start:0},bs=!bp&&br.active&&!!V,bt=(0,j.useCallback)(a=>{let b=aR.slice(0,bo.start),c=aR.slice(a7);aS(b+a.command+" "+c),a$(0);let d=bo.start+a.command.length+1;a8(d),requestAnimationFrame(()=>{let a=bj.current;a&&(a.focus(),a.setSelectionRange(d,d))})},[aR,bo.start,a7]),bu=(0,j.useCallback)(a=>{aS(aR.slice(0,br.start)+"@"+a+" "+aR.slice(a7)),a6(0);let b=br.start+1+a.length+1;a8(b),requestAnimationFrame(()=>{let a=bj.current;a&&(a.focus(),a.setSelectionRange(b,b))})},[aR,br.start,a7]),bv=a9.length>0||bb.length>0||bd.length>0,bw=(0,j.useCallback)(()=>{let a=aR.trim();if((a||bv)&&aQ){if(/^\/mcp\s*$/i.test(a)){aS(""),aW(!0);return}c(a,a9.length>0?a9:void 0,bb.length>0?bb:void 0,bd.length>0?bd:void 0),aS(""),ba([]),bc([]),be([]),a$(0),bj.current&&(bj.current.style.height="auto",S&&"ontouchstart"in window?bj.current.blur():bj.current.focus())}},[aR,bv,a9,bb,bd,c,S,aQ]),bx=(0,j.useCallback)(a=>{if(bp){let b=bm.current;if(b.length>0){if("ArrowDown"===a.key){a.preventDefault(),a$(a=>(a+1)%b.length);return}if("ArrowUp"===a.key){a.preventDefault(),a$(a=>(a-1+b.length)%b.length);return}if("Enter"===a.key||"Tab"===a.key){a.preventDefault(),bt(b[aZ]);return}}if("Escape"===a.key){a.preventDefault(),a.stopPropagation(),aS(aR.slice(0,bo.start)+aR.slice(a7));let b=bo.start;a8(b),requestAnimationFrame(()=>{let a=bj.current;a&&a.setSelectionRange(b,b)});return}}if(bs&&bl.current.length>0){let b=bl.current.length;if("ArrowDown"===a.key){a.preventDefault(),a6(a=>(a+1)%b);return}if("ArrowUp"===a.key){a.preventDefault(),a6(a=>(a-1+b)%b);return}if("Enter"===a.key||"Tab"===a.key){a.preventDefault(),bu(bl.current[a5].value);return}if("Escape"===a.key){a.preventDefault(),a.stopPropagation(),aS(aR.slice(0,br.start)+aR.slice(a7));let b=br.start;a8(b),requestAnimationFrame(()=>{let a=bj.current;a&&a.setSelectionRange(b,b)});return}}if("Tab"===a.key&&!a.shiftKey){a.preventDefault(),n(!k);return}if("Escape"===a.key&&g){a.preventDefault(),f();return}if("ArrowUp"===a.key&&!aR.trim()&&b.length>0){a.preventDefault(),aY(!0);return}"Enter"!==a.key||a.shiftKey||bn.current||(a.preventDefault(),bw())},[bp,bs,aZ,a5,bw,bt,bu,aR,br.start,bo.start,a7,g,f,k,n,b]),by=(0,j.useCallback)(()=>{let a=bj.current;a&&(a.style.height="auto",a.style.height=Math.min(a.scrollHeight,200)+"px")},[]),bz=(0,j.useRef)(0),bA=(0,j.useCallback)(a=>{bz.current+=1;let b=bz.current,c=b>1?`-${b}`:"",d=`paste${c}`;be(b=>[...b,{name:d,content:a}]),ac(a).then(b=>{if(!b)return;let e=_[b];if(!e)return;let f=`paste${c}.${e}`;be(c=>c.map(c=>c.name===d&&c.content===a?{...c,name:f,language:b}:c))})},[]),bB=(0,j.useCallback)(a=>{let b=a.target.value,c=b.length-aR.length;if(c>0){let d=a.target.selectionStart??b.length,e=b.slice(d-c,d);if(aa(e)){let a=b.slice(0,d-c);aS(a+b.slice(d)),bA(e),a8(a.length),a$(0),a6(0);return}}aS(b),a8(a.target.selectionStart??0),a$(0),a6(0)},[aR,bA]),bC=(0,j.useCallback)(async a=>{for(let b of a)if(ap.has(b.type)){let a=await function(a){return a.size<=35e5?ar(a).then(b=>b?{mediaType:a.type,data:b}:null):function(a){return new Promise(b=>{let c=URL.createObjectURL(a),d=new Image;d.onload=()=>{URL.revokeObjectURL(c);let e=document.createElement("canvas"),f=Math.sqrt(35e5/a.size),g=Math.round(d.width*f),h=Math.round(d.height*f);e.width=g,e.height=h;let i=e.getContext("2d");if(!i)return void b(null);i.drawImage(d,0,0,g,h);let j=.85,k=e.toDataURL("image/jpeg",j).split(",")[1]||"";for(;k.length>45e5&&j>.3;)j-=.1,k=e.toDataURL("image/jpeg",j).split(",")[1]||"";b({mediaType:"image/jpeg",data:k})},d.onerror=()=>{URL.revokeObjectURL(c),b(null)},d.src=c})}(a)}(b);a&&ba(b=>[...b,a])}else if("application/pdf"===b.type){let a=await ar(b);a&&bc(c=>[...c,{mediaType:"application/pdf",data:a,name:b.name}])}else if(aq.has(function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name))||b.type.startsWith("text/")){let a=await function(a){return new Promise(b=>{let c=new FileReader;c.onload=()=>b(c.result),c.onerror=()=>b(null),c.readAsText(a)})}(b);null!==a&&be(c=>[...c,{name:b.name,content:a}])}},[]),bD=(0,j.useCallback)(a=>{bn.current=!0,requestAnimationFrame(()=>{bn.current=!1});let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a=0;a<b.length;a++){let d=b[a];if("file"===d.kind){let a=d.getAsFile();a&&c.push(a)}}if(0===c.length&&a.clipboardData?.files?.length)for(let b=0;b<a.clipboardData.files.length;b++)c.push(a.clipboardData.files[b]);if(0===c.length){let b=a.clipboardData?.getData("text/html");if(b){let a=b.match(/<img[^>]+src="(data:image\/[^;]+;base64,[^"]+)"/);if(a){let[b,d]=a[1].split(","),e=b.match(/data:([^;]+)/);if(e&&d){let a=e[1],b=atob(d),f=new Uint8Array(b.length);for(let a=0;a<b.length;a++)f[a]=b.charCodeAt(a);let g=new Blob([f],{type:a});c.push(new File([g],`pasted-image.${a.split("/")[1]||"png"}`,{type:a}))}}}}if(c.length>0){a.preventDefault(),bC(c);return}let d=a.clipboardData?.getData("text/plain");d&&aa(d)&&(a.preventDefault(),bA(d))},[bC,bA]),bE=(0,j.useCallback)(a=>{a.preventDefault(),bg(!0)},[]),bF=(0,j.useCallback)(a=>{a.preventDefault(),bg(!1)},[]),bG=(0,j.useCallback)(a=>{a.preventDefault(),bg(!1);let b=[];if(a.dataTransfer?.files)for(let c=0;c<a.dataTransfer.files.length;c++)b.push(a.dataTransfer.files[c]);b.length>0&&bC(b)},[bC]),bH=(0,j.useCallback)(a=>{ba(b=>b.filter((b,c)=>c!==a))},[]),bI=(0,j.useCallback)(a=>{bc(b=>b.filter((b,c)=>c!==a))},[]),bJ=(0,j.useCallback)(a=>{be(b=>b.filter((b,c)=>c!==a))},[]),bK=(0,j.useCallback)(()=>{bk.current?.click()},[]),bL=(0,j.useCallback)(a=>{let b=a.target.files;b&&0!==b.length&&(bC(Array.from(b)),a.target.value="")},[bC]);return(0,d.jsxs)("div",{className:`border-t bg-background px-1 pt-2 pb-1 ${bf?"ring-2 ring-primary ring-inset":""}`,onDragOver:bE,onDragLeave:bF,onDrop:bG,children:[(0,d.jsxs)("div",{className:"mx-auto max-w-3xl",children:[ax&&(0,d.jsxs)("div",{className:"mb-2 rounded-md border border-input bg-muted/50 p-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)(r.A,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:"Side question"})]}),(0,d.jsx)("button",{onClick:ay,className:"text-muted-foreground hover:text-foreground",children:(0,d.jsx)(s.A,{className:"h-3.5 w-3.5"})})]}),(0,d.jsx)("p",{className:"text-sm font-medium px-1 mb-1",children:ax.question}),ax.loading&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground px-1 py-1",children:[(0,d.jsx)(e.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,d.jsx)("span",{children:"Thinking..."})]}),ax.error&&(0,d.jsx)("p",{className:"text-xs text-destructive px-1",children:ax.error}),ax.answer&&(0,d.jsx)(O.Y,{variant:"lite",content:ax.answer,className:"text-xs px-1 border-t pt-1 max-h-48 overflow-y-auto"})]}),a_&&(aF=am(q,P),aG=[{id:"anthropic",name:"Anthropic"},...(aC||[]).filter(a=>!a.isBuiltin).map(a=>({id:a.id,name:a.name}))],aI=(aH=aF.alias?(0,l.r5)(aF.alias):[]).length>1,aJ=(a,b)=>q===b.modelId||q===`${a.id}:${b.modelId}`,aK=(()=>{if(aF.entry)return aF.entry.contextSizes;if(!aC||!q)return[];for(let a of aC){let b=a.models.find(b=>aJ(a,b));if(b)return b.contextSizes??[]}return[]})(),aM=new Set((aL=(()=>{if(!aC||!q)return[];for(let a of aC){let b=a.models.find(b=>aJ(a,b));if(b)return b.effortLevels??[]}return[]})()).length>0?aL:(0,l.iz)(aF.entry)),aN=ao.filter(a=>aM.has(a.value)),(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&a0(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-xl mx-4 rounded-lg border bg-background shadow-lg overflow-hidden flex flex-col max-h-[85vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b shrink-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(t.A,{className:"h-4 w-4"}),(0,d.jsx)("h2",{className:"text-sm font-semibold",children:"Session settings"})]}),(0,d.jsx)("button",{onClick:()=>a0(!1),className:"rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted",children:(0,d.jsx)(s.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,d.jsxs)("aside",{className:"w-28 border-r shrink-0 p-2 flex flex-col gap-1",children:[(0,d.jsxs)("button",{onClick:()=>a2("model"),className:`flex items-center gap-2 px-3 py-2 rounded text-xs font-medium transition-colors ${"model"===a1?"bg-primary/10 text-primary border-l-2 border-primary":"text-muted-foreground hover:text-foreground hover:bg-muted border-l-2 border-transparent"}`,children:[(0,d.jsx)(u.A,{className:"h-3.5 w-3.5"}),"Model"]}),(0,d.jsxs)("button",{onClick:()=>a2("runtime"),className:`flex items-center gap-2 px-3 py-2 rounded text-xs font-medium transition-colors ${"runtime"===a1?"bg-primary/10 text-primary border-l-2 border-primary":"text-muted-foreground hover:text-foreground hover:bg-muted border-l-2 border-transparent"}`,children:[(0,d.jsx)(v.A,{className:"h-3.5 w-3.5"}),"Harness"]})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-4 min-h-[320px]",children:["model"===a1&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(w.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-xs font-medium text-foreground",children:"Provider"})]}),(0,d.jsx)("select",{value:a3,onChange:a=>a4(a.target.value),className:"rounded border border-input bg-background px-2 py-1 text-xs focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",children:aG.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))})]}),"anthropic"===a3?(0,d.jsx)("div",{className:"space-y-0.5",children:al.map(a=>{let b=(0,l.zQ)(a.value),c=aF.alias===a.value;return(0,d.jsxs)("button",{onClick:()=>{var b;let c;return Q((b=a.value,(c=(0,l.zQ)(b))?an(c):b))},className:`flex w-full items-center gap-3 rounded px-3 py-2 text-xs transition-colors ${c?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"}`,children:[(0,d.jsx)("div",{className:"w-3 shrink-0",children:c?(0,d.jsx)(x.A,{className:"h-3 w-3"}):(0,d.jsx)("div",{className:"h-3 w-3 rounded-full border border-muted-foreground/40"})}),(0,d.jsx)("span",{className:"font-mono font-medium",children:a.label}),b&&(0,d.jsx)("span",{className:"text-muted-foreground ml-auto",children:b.modelId})]},a.value)})}):(aO=aC?.find(a=>a.id===a3))?(0,d.jsx)("div",{className:"space-y-0.5",children:aO.models.map(a=>{let b=`${aO.id}:${a.modelId}`,c=q===b||q===a.modelId;return(0,d.jsxs)("button",{onClick:()=>Q(b),className:`flex w-full items-center gap-3 rounded px-3 py-2 text-xs transition-colors ${c?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"}`,children:[(0,d.jsx)("div",{className:"w-3 shrink-0",children:c?(0,d.jsx)(x.A,{className:"h-3 w-3"}):(0,d.jsx)("div",{className:"h-3 w-3 rounded-full border border-muted-foreground/40"})}),(0,d.jsx)("span",{className:"font-mono font-medium",children:a.modelId}),(0,d.jsx)("span",{className:"text-muted-foreground ml-auto",children:a.displayName})]},a.modelId)})}):null,aI&&(0,d.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,d.jsx)(y.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Version"}),(0,d.jsx)("div",{className:"ml-auto flex gap-1",children:aH.map(a=>(0,d.jsx)("button",{onClick:()=>Q(an(a)),className:`rounded px-2 py-0.5 text-xs transition-colors ${aF.entry?.modelId===a.modelId?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.version},a.modelId))})]}),aK.length>=2&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(z.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Context"}),(0,d.jsx)("div",{className:"ml-auto flex gap-1",children:aK.map(a=>(0,d.jsx)("button",{onClick:()=>Q(q,a),className:`rounded px-2 py-0.5 text-xs transition-colors ${aF.contextSize===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:l.XR[a].label},a))})]}),aM.size>0&&(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(u.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0 mt-0.5"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground py-0.5 shrink-0",children:"Thinking"}),(0,d.jsx)("div",{className:"ml-auto flex flex-wrap gap-1 justify-end",children:aN.map(a=>(0,d.jsx)("button",{onClick:()=>p(a.value),"data-testid":`thinking-${a.value}`,className:`rounded px-2 py-0.5 text-xs transition-colors ${o===a.value?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.label},a.value))})]})]}),"runtime"===a1&&(0,d.jsxs)("div",{className:"space-y-5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(v.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Agent harness:"}),(0,d.jsx)("span",{className:"text-xs font-medium text-foreground",children:"Claude Code"})]}),aA&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(A.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Backend"}),(0,d.jsxs)("div",{className:"ml-auto flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>aA("pty"),"data-testid":"runtime-pty",className:`rounded px-2 py-0.5 text-xs transition-colors ${"pty"===az?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"PTY"}),(0,d.jsx)("button",{onClick:()=>aA("stream"),"data-testid":"runtime-stream",className:`rounded px-2 py-0.5 text-xs transition-colors ${"stream"===az?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"Stream"})]})]}),(0,d.jsxs)("button",{onClick:()=>{aB?.(),a0(!1)},className:"flex w-full items-center justify-center gap-2 rounded-lg border border-border px-4 py-2.5 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors",children:[(0,d.jsx)(B.A,{className:"h-3.5 w-3.5"}),"Restart agent harness"]}),(0,d.jsxs)("button",{onClick:()=>i(!h),className:"flex w-full items-center justify-between rounded-lg border border-border px-4 py-3 text-xs hover:bg-muted/50 transition-colors",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[h?(0,d.jsx)(C.A,{className:"h-4 w-4 text-orange-500"}):(0,d.jsx)(D.A,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)("span",{className:h?"text-orange-500 font-medium":"text-muted-foreground",children:"Bypass all permissions"})]}),(0,d.jsx)("span",{className:`inline-flex h-5 w-9 items-center rounded-full transition-colors shrink-0 ${h?"bg-orange-500":"bg-muted-foreground/30"}`,children:(0,d.jsx)("span",{className:`inline-block h-4 w-4 rounded-full bg-white transition-transform shadow-sm ${h?"translate-x-4.5":"translate-x-0.5"}`})})]}),Y?.mcpServers&&Y.mcpServers.length>0&&(0,d.jsxs)("button",{onClick:()=>aW(!0),className:"flex w-full items-center justify-between rounded-lg border border-border px-4 py-3 text-xs hover:bg-muted/50 transition-colors",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(E.A,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"MCP Servers"})]}),(0,d.jsxs)("span",{className:"flex items-center gap-1 text-muted-foreground",children:[Y.mcpServers.filter(a=>"connected"===a.status).length,"/",Y.mcpServers.length,(0,d.jsx)(F.A,{className:"h-3 w-3"})]})]})]})]})]}),(0,d.jsx)("div",{className:"flex items-center justify-end px-5 py-3 border-t shrink-0",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>a0(!1),className:"px-3 py-1.5 text-xs rounded-md border border-input text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>a0(!1),className:"px-4 py-1.5 text-xs rounded-md bg-primary text-primary-foreground hover:brightness-110 transition-all",children:"Done"})]})})]})})),bv&&(0,d.jsxs)("div",{className:"mb-1 flex gap-2 flex-wrap px-9",children:[a9.map((a,b)=>(0,d.jsxs)("div",{className:"relative group",children:[(0,d.jsx)("img",{src:`data:${a.mediaType};base64,${a.data}`,className:"h-16 rounded border object-contain cursor-pointer",alt:"",onClick:()=>bi({type:"image",src:`data:${a.mediaType};base64,${a.data}`,index:b})}),(0,d.jsx)("button",{onClick:()=>bH(b),className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(G.A,{className:"h-3.5 w-3.5"})})]},`img-${b}`)),bb.map((a,b)=>(0,d.jsxs)("div",{className:"relative group flex items-center gap-1.5 rounded border px-2 py-1 text-xs bg-muted h-16",children:[(0,d.jsx)(H.A,{className:"h-4 w-4 text-red-500 shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-[120px]",children:a.name}),(0,d.jsx)("button",{onClick:()=>bI(b),className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(G.A,{className:"h-3.5 w-3.5"})})]},`doc-${b}`)),bd.map((a,b)=>(0,d.jsxs)("div",{className:"relative group flex items-center gap-1.5 rounded border px-2 py-1 text-xs bg-muted h-16 cursor-pointer",onClick:()=>bi({type:"text",content:a.content,name:a.name,index:b}),children:[(0,d.jsx)(H.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-[120px]",children:a.name}),(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),bJ(b)},className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(G.A,{className:"h-3.5 w-3.5"})})]},`txt-${b}`))]}),ab&&(0,d.jsxs)("button",{type:"button",onClick:()=>aU(!0),className:"mb-2 mx-9 flex items-center gap-2 rounded-md border border-dashed px-3 py-1.5 text-xs hover:bg-muted transition-colors cursor-pointer",children:[(0,d.jsx)(r.A,{className:`h-3.5 w-3.5 shrink-0 ${ae?"text-yellow-500":"text-primary"}`}),(0,d.jsxs)("span",{className:ae?"text-yellow-500":"text-muted-foreground",children:[ad?.length??0," message",(ad?.length??0)!==1?"s":""," ",ae?"paused":"queued"]}),(0,d.jsx)("span",{className:"text-muted-foreground/50 ml-auto",children:"click to manage"})]}),(0,d.jsxs)("div",{className:"relative flex items-stretch gap-1",children:[bp&&(0,d.jsx)(Z,{query:bq,selectedIndex:aZ,onSelect:bt,cwd:V,onItemsChange:a=>{bm.current=a},initCommands:Y?.slashCommands}),bs&&V&&(0,d.jsx)(W,{query:br.query,cwd:V,selectedIndex:a5,onSelect:bu,onItemsChange:a=>{bl.current=a},initAgents:Y?.agents}),(0,d.jsx)("input",{ref:bk,type:"file",accept:as,multiple:!0,onChange:bL,className:"hidden"}),(0,d.jsxs)("div",{className:"flex flex-col items-center justify-evenly w-8 shrink-0",children:[R&&(0,d.jsx)(af,{usage:R,onCompact:X}),(0,d.jsx)(T.$,{size:"icon",variant:"ghost","data-testid":"btn-session-settings",className:`h-8 w-8 ${h?"text-orange-500":""}`,onClick:()=>a0(a=>{if(!a)if(am(q,P).alias)a4("anthropic");else{let a=aC?.find(a=>a.models.some(a=>a.modelId===q));a4(a?.id??"anthropic")}return!a}),children:(0,d.jsx)(t.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"relative flex-1 mr-1",children:[(0,d.jsx)("textarea",{ref:bj,"data-testid":"message-input",value:aR,onChange:bB,onKeyDown:bx,onInput:by,onPaste:bD,placeholder:ab?ae?"Queue paused (send to discard, or manage in modal)":"Message queued (Esc to interrupt)":g?"Use /btw to nudge, or type to queue...":k?"Plan with Claude...":"Send a message...",rows:2,className:`w-full resize-none rounded-md border bg-background px-3 py-2 pb-7 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 overflow-y-auto scrollbar-none ${k?"border-blue-500/50 focus-visible:ring-blue-500/50":"border-input focus-visible:ring-ring"}`}),(0,d.jsx)("button",{onClick:bK,title:"Attach file",className:"absolute bottom-2.5 right-1.5 rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors disabled:opacity-50",children:(0,d.jsx)(I.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center w-12 shrink-0 overflow-visible",children:[aQ?!g||aR.trim()||bv?(0,d.jsx)(T.$,{size:"icon",className:"h-8 w-8",onClick:bw,disabled:!aR.trim()&&!bv,"data-testid":"btn-send",children:(0,d.jsx)(K.A,{className:"h-4 w-4"})}):(0,d.jsx)(T.$,{size:"icon",variant:"destructive",className:"h-8 w-8",onClick:()=>f(),children:(0,d.jsx)(J.A,{className:"h-4 w-4"})}):(0,d.jsx)(T.$,{size:"icon",variant:"ghost",className:"h-8 w-8",disabled:!0,title:"Connecting...",children:(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),(0,d.jsxs)("button",{onClick:()=>n(!k),title:k?"Switch to Build mode (Tab)":"Switch to Plan mode (Tab)",className:`mt-4 flex items-center gap-0.5 whitespace-nowrap rounded-full px-1.5 py-0.5 text-[10px] font-medium transition-colors ${k?"bg-blue-500/15 text-blue-500 hover:bg-blue-500/25":"bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground"}`,children:[k?(0,d.jsx)(L.A,{className:"h-2.5 w-2.5"}):(0,d.jsx)(M.A,{className:"h-2.5 w-2.5"}),k?"Plan":"Build"]})]})]})]}),(0,d.jsx)($.lG,{open:null!==bh,onOpenChange:()=>bi(null),className:"max-w-3xl",children:(0,d.jsxs)($.Cf,{className:"max-h-[80vh] overflow-auto",onClose:()=>bi(null),onDelete:()=>{bh&&("image"===bh.type?bH(bh.index):bJ(bh.index),bi(null))},children:[bh?.type==="image"&&(0,d.jsx)("img",{src:bh.src,className:"w-full rounded object-contain",alt:""}),bh?.type==="text"&&((aP=(0,N.WG)(bh.name))?(0,d.jsx)(N.NG,{code:bh.content,language:aP,fullHeight:!0}):(0,d.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:bh.content}))]})}),(0,d.jsx)(ak,{open:aT,onOpenChange:aU,messages:ad??[],paused:ae??!1,onDelete:ag??(()=>{}),onEdit:ai??(()=>{}),onResume:aj??(()=>{})}),(0,d.jsx)(U,{open:aV,onOpenChange:aW,sessionId:a,initData:Y}),(0,d.jsx)(ah,{open:aX,prompts:b,onSelect:a=>{aY(!1),aS(a),requestAnimationFrame(()=>bj.current?.focus())},onClose:()=>{aY(!1),requestAnimationFrame(()=>bj.current?.focus())}})]})}var av=c(20390);function aw({currentModel:a,currentContextSize:b,onSelect:c,providers:e,slot:f}){let g=function(a){let b=[];for(let c of a)for(let a of c.models){let d=a.effortLevels.length>0?`Thinking: ${a.effortLevels.join(", ")}`:"No thinking";b.push({key:`${c.id}::${a.modelId}`,value:a.modelId,label:a.displayName,description:d,providerId:c.id,providerName:c.name,sizes:a.contextSizes})}return b}(e),h="";return(0,d.jsx)("div",{className:"mx-auto max-w-3xl",children:(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4 space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between pb-2",children:[(0,d.jsx)("div",{className:"text-sm font-medium",children:f?`Switch ${f} model`:"Switch model"}),(0,d.jsxs)("div",{className:"text-xs text-muted-foreground font-mono",children:["Current: ",a]})]}),g.map(e=>{let f=e.providerName!==h;h=e.providerName;let g=e.value===a;return(0,d.jsxs)("div",{children:[f&&(0,d.jsx)("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider pt-3 pb-1 px-3",children:e.providerName}),(0,d.jsxs)("button",{onClick:()=>c(e.value),className:`w-full flex items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors ${g?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"}`,children:[(0,d.jsx)("div",{className:"w-4 shrink-0",children:g&&(0,d.jsx)(x.A,{className:"h-4 w-4"})}),(0,d.jsx)("span",{className:"font-mono font-bold",children:e.value}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,d.jsx)("span",{className:"text-muted-foreground ml-auto text-xs",children:e.description})]}),e.sizes.length>=2&&(0,d.jsx)("div",{className:"flex gap-1 pl-10 pt-1 pb-2",children:e.sizes.map(f=>(0,d.jsx)("button",{onClick:()=>c(e.value,f),className:`rounded px-2 py-0.5 text-xs transition-colors ${e.value===a&&b===f?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:l.XR[f].label},f))})]},e.key)})]})})}var ax=c(18835);let ay={session:"session",localSettings:"project (local)",projectSettings:"project",userSettings:"global",cliArg:"session"};function az({permission:a,onRespond:b}){let c=(0,j.useRef)(null),e=(0,j.useMemo)(()=>{if(!a.input)return{};try{return JSON.parse(a.input)}catch{return{}}},[a.input]),f=function(a,b){switch(a){case"Bash":case"bash":{let a=b.command||"";return a.length>80?a.slice(0,80)+"...":a}case"Write":case"write":case"Edit":case"edit":case"Read":case"read":{let a=b.file_path||"";return a?(0,o._1)(a):""}default:return""}}(a.toolName,e),g=a.suggestions,h=g&&g.length>0;return(0,d.jsx)("div",{className:"mx-auto max-w-3xl","data-testid":"permission-prompt",children:(0,d.jsx)("div",{className:"rounded-lg border border-yellow-500/50 bg-yellow-500/10 p-4",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(ax.A,{className:"h-5 w-5 shrink-0 text-yellow-500 mt-0.5"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 space-y-2",children:[(0,d.jsxs)("div",{className:"text-sm font-medium",children:["Permission requested: ",(0,d.jsx)("span",{className:"font-mono",children:a.toolName})]}),f&&(0,d.jsx)("div",{className:"font-mono text-xs text-muted-foreground truncate",children:f}),a.input&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-black/10 dark:bg-white/5 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto",children:a.input.length>500?a.input.slice(0,500)+"\n... (truncated)":a.input}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,d.jsx)("button",{ref:c,onClick:()=>b(a.requestId,!0,"allow"),className:"rounded bg-primary px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/90","data-testid":"btn-allow",children:"Allow"}),h?g.map((c,e)=>(0,d.jsx)("button",{onClick:()=>b(a.requestId,!0,"allow_always",e),className:"rounded bg-primary/70 px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/60",title:JSON.stringify(c,null,2),children:function(a){let b=ay[a.destination||""]||a.destination||"session";if("setMode"===a.type&&a.mode)return`${a.mode} mode (${b})`;if("addDirectories"===a.type&&a.directories?.length){let c=a.directories[0],d=(0,o.uk)(c)||c;return`Allow dir ${d} (${b})`}if(!a.rules?.length)return`Always allow (${b})`;let c=a.rules[0],d=c.toolName,e=c.ruleContent;if(!e)return`Always ${d} (${b})`;let f=e.length>30?e.slice(0,30)+"...":e;return`${d}(${f}) (${b})`}(c)},e)):(0,d.jsxs)("button",{onClick:()=>b(a.requestId,!0,"allow_always"),className:"rounded bg-primary/70 px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/60",children:["Always for ",a.toolName]}),(0,d.jsx)("button",{onClick:()=>b(a.requestId,!0,"allow_all"),className:"rounded bg-orange-600 px-3 py-1 text-xs font-medium text-white hover:bg-orange-700",children:"Bypass All"}),(0,d.jsx)("button",{onClick:()=>b(a.requestId,!1,"deny"),className:"rounded bg-muted px-3 py-1 text-xs font-medium text-muted-foreground hover:bg-muted/80",children:"Deny"})]})]})]})})})}var aA=c(45414),aB=c(28470),aC=c(53649);let aD=[{label:"Yes, clear context and auto-accept edits",clearContext:!0,autoAccept:!0},{label:"Yes, clear context and manually approve edits",clearContext:!0,autoAccept:!1},{label:"Yes, auto-accept edits",clearContext:!1,autoAccept:!0},{label:"Yes, manually approve edits",clearContext:!1,autoAccept:!1}],aE=[{label:"Yes, clear context and implement",clearContext:!0,autoAccept:!0},{label:"Yes, continue implementing",clearContext:!1,autoAccept:!0}];function aF({permission:a,bypassActive:b,onRespond:c,onSendMessage:e,onSetBypass:f,onSetPlanMode:g}){let h=b?aE:aD,[i,k]=(0,j.useState)(0),[l,m]=(0,j.useState)(!1),[n,o]=(0,j.useState)(""),[p,q]=(0,j.useState)(!1),r=(0,j.useRef)(null),s=(0,j.useRef)(null),t=(0,j.useMemo)(()=>{if(!a.input)return[];try{return JSON.parse(a.input).allowedPrompts||[]}catch{return[]}},[a.input]),u=(0,j.useCallback)(b=>{let d=h[b];if(d.autoAccept&&f(!0),d.clearContext){let b=a.planFilePath?` at ${a.planFilePath}`:"";c(a.requestId,!1,"deny"),g(!1),setTimeout(()=>{e("/clear"),setTimeout(()=>e(`Implement the plan${b}`),200)},100)}else c(a.requestId,!0,"allow")},[h,a.requestId,a.planFilePath,c,e,f,g]),v=(0,j.useCallback)(()=>{c(a.requestId,!1,"deny"),setTimeout(()=>g(!0),100)},[a.requestId,c,g]),w=(0,j.useCallback)(()=>{let b=n.trim();b&&(c(a.requestId,!1,"deny"),setTimeout(()=>e(b),100))},[n,a.requestId,c,e]),x=(0,j.useCallback)(a=>{if(l)return void("Escape"===a.key?(a.preventDefault(),m(!1),r.current?.focus()):"Enter"!==a.key||a.shiftKey||(a.preventDefault(),w()));if("Escape"===a.key){a.preventDefault(),v();return}"ArrowUp"===a.key||"k"===a.key?(a.preventDefault(),k(a=>Math.max(0,a-1))):"ArrowDown"===a.key||"j"===a.key?(a.preventDefault(),k(a=>Math.min(h.length+1,a+1))):"Enter"===a.key&&(a.preventDefault(),i===h.length?m(!0):i===h.length+1?v():u(i))},[h,l,i,u,w,v]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"mx-auto max-w-3xl","data-testid":"plan-approval-prompt",children:(0,d.jsx)("div",{ref:r,tabIndex:-1,onKeyDown:x,className:"rounded-lg border border-blue-500/50 bg-blue-500/10 p-4 outline-none",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(aA.A,{className:"h-5 w-5 shrink-0 text-blue-500 mt-0.5"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"text-sm font-medium",children:"Would you like to proceed?"}),a.planContent&&(0,d.jsxs)("button",{onClick:()=>q(!0),className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-blue-500 hover:bg-blue-500/10",children:[(0,d.jsx)(aB.A,{className:"h-3 w-3"}),"View plan"]})]}),t.length>0&&(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:"Permissions requested for implementation:"}),(0,d.jsx)("ul",{className:"text-xs text-muted-foreground space-y-0.5",children:t.map((a,b)=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5 pl-2",children:[(0,d.jsx)("span",{className:"font-mono text-foreground/70",children:a.tool}),(0,d.jsx)("span",{children:a.prompt})]},b))})]}),(0,d.jsxs)("div",{className:"space-y-0.5",children:[h.map((a,b)=>(0,d.jsxs)("button",{onClick:()=>u(b),onMouseEnter:()=>k(b),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${i===b?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"shrink-0 font-mono text-blue-500 w-4",children:[b+1,"."]}),(0,d.jsx)("span",{children:a.label}),0===b&&(0,d.jsx)("span",{className:"ml-auto text-[10px] text-muted-foreground hidden sm:inline",children:"default"})]},b)),(0,d.jsxs)("button",{onClick:()=>m(!0),onMouseEnter:()=>k(h.length),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${i===h.length?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"shrink-0 font-mono text-blue-500 w-4",children:[h.length+1,"."]}),(0,d.jsx)("span",{children:"Tell Claude what to change"})]}),(0,d.jsxs)("button",{onClick:v,onMouseEnter:()=>k(h.length+1),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${i===h.length+1?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"shrink-0 font-mono text-muted-foreground w-4",children:"Esc"}),(0,d.jsx)("span",{children:"Dismiss"})]})]}),l&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("textarea",{ref:s,value:n,onChange:a=>o(a.target.value),placeholder:"Describe what you'd like to change about the plan...",className:"w-full rounded border border-border bg-background px-3 py-2 text-xs resize-none focus:outline-none focus:ring-1 focus:ring-blue-500",rows:3}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsxs)("button",{onClick:w,disabled:!n.trim(),className:"flex items-center gap-1.5 rounded bg-blue-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,d.jsx)(K.A,{className:"h-3 w-3"}),"Send feedback"]}),(0,d.jsx)("button",{onClick:()=>{m(!1),r.current?.focus()},className:"rounded px-3 py-1.5 text-xs text-muted-foreground hover:bg-muted",children:"Cancel"})]})]})]})]})})}),a.planContent&&a.planFilePath&&(0,d.jsx)(aC.G,{open:p,onOpenChange:q,content:a.planContent,filePath:a.planFilePath})]})}var aG=c(83394),aH=c(82373);function aI(a){try{return JSON.parse(a).questions||[]}catch{return[]}}function aJ({tool:a}){let b=(0,j.useMemo)(()=>aI(a.input),[a.input]),c=(0,j.useMemo)(()=>(function(a){let b=new Map;for(let c of a.matchAll(/"([^"]+)"="([^"]+)"/g))b.set(c[1],c[2]);return b})(a.output||""),[a.output]);return 0===b.length?null:(0,d.jsx)("div",{className:"rounded-lg border border-border bg-background/50 p-3 space-y-3",children:b.map((a,b)=>{let e=c.get(a.question),f=e&&!a.options.some(a=>a.label===e);return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"text-sm font-medium flex items-center gap-2",children:[(0,d.jsx)(aG.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),a.question]}),(0,d.jsxs)("div",{className:"space-y-0.5 pl-6",children:[a.options.map((a,b)=>{let c=e===a.label;return(0,d.jsxs)("div",{className:`flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs ${c?"bg-primary/10":""}`,children:[c?(0,d.jsx)(x.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aH.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:c?"font-medium text-foreground":"text-muted-foreground",children:a.label}),c&&a.description&&(0,d.jsx)("div",{className:"text-muted-foreground text-[11px] mt-0.5",children:a.description})]})]},b)}),f&&(0,d.jsxs)("div",{className:"flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs bg-primary/10",children:[(0,d.jsx)(ai.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}),(0,d.jsx)("div",{className:"min-w-0",children:(0,d.jsx)("div",{className:"font-medium text-foreground",children:e})})]})]})]},b)})})}let aK="__other__";function aL({questions:a,requestId:b,onSubmit:c}){let[e,f]=(0,j.useState)({}),[g,h]=(0,j.useState)({}),[i,k]=(0,j.useState)(!1),l=(0,j.useRef)({}),m=(0,j.useCallback)((a,b)=>{i||f(c=>({...c,[a]:c[a]===b?"":b}))},[i]),n=(0,j.useCallback)(a=>{i||(f(b=>({...b,[a]:aK})),setTimeout(()=>l.current[a]?.focus(),0))},[i]),o=a.every(a=>{let b=e[a.question];return!!b&&(b!==aK||!!g[a.question]?.trim())}),p=(0,j.useCallback)(()=>{if(!o||i)return;k(!0);let d={};for(let b of a){let a=e[b.question];d[b.question]=a===aK?g[b.question]:a}c(b,d)},[o,i,b,e,g,a,c]);return(0,d.jsx)("div",{className:"rounded-lg border border-border bg-card p-4",children:(0,d.jsxs)("div",{className:"space-y-3",children:[a.map((a,b)=>{let c=e[a.question],f=c===aK;return(0,d.jsxs)("div",{className:"space-y-2",children:[a.header&&(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:a.header}),(0,d.jsxs)("div",{className:"text-sm font-medium flex items-center gap-2",children:[(0,d.jsx)(aG.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),a.question]}),(0,d.jsxs)("div",{className:"space-y-0.5 pl-6",children:[a.options.map((b,e)=>{let f=c===b.label,g=i?"div":"button";return(0,d.jsxs)(g,{onClick:i?void 0:()=>m(a.question,b.label),className:`flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs text-left transition-colors ${f?"bg-primary/10":i?"":"hover:bg-muted/50 cursor-pointer"}`,children:[f?(0,d.jsx)(x.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aH.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:f?"font-medium text-foreground":i?"text-muted-foreground":"text-foreground",children:b.label}),b.description&&(0,d.jsx)("div",{className:"text-muted-foreground text-[11px] mt-0.5",children:b.description})]})]},e)}),i?f&&(0,d.jsxs)("div",{className:"flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs bg-primary/10",children:[(0,d.jsx)(x.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}),(0,d.jsx)("div",{className:"min-w-0",children:(0,d.jsx)("div",{className:"font-medium text-foreground",children:g[a.question]})})]}):(0,d.jsxs)("div",{className:`rounded-md transition-colors ${f?"bg-primary/10":"hover:bg-muted/50"}`,children:[(0,d.jsxs)("button",{type:"button",onClick:()=>n(a.question),className:"flex w-full items-start gap-2.5 px-2.5 py-2 text-xs text-left cursor-pointer",children:[f?(0,d.jsx)(x.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aH.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsx)("div",{className:"min-w-0 flex-1",children:(0,d.jsx)("div",{className:f?"font-medium text-foreground":"text-foreground",children:"Other"})})]}),f&&(0,d.jsx)("div",{className:"px-2.5 pb-2 pl-9",children:(0,d.jsx)("input",{ref:b=>{l.current[a.question]=b},type:"text",value:g[a.question]||"",onChange:b=>h(c=>({...c,[a.question]:b.target.value})),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),p())},placeholder:"Tell Claude what to do instead...",className:"w-full rounded border border-border bg-background px-2 py-1 text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary"})})]})]})]},b)}),!i&&(0,d.jsx)("div",{className:"flex justify-end pt-1",children:(0,d.jsx)("button",{disabled:!o,onClick:p,className:`rounded px-4 py-1.5 text-xs font-medium transition-colors ${o?"bg-primary text-primary-foreground hover:bg-primary/90":"bg-muted text-muted-foreground cursor-not-allowed"}`,children:"Submit"})})]})})}var aM=c(20878);function aN({count:a,onCopy:b,onCancel:c}){return(0,d.jsx)("div",{className:"fixed bottom-20 left-1/2 -translate-x-1/2 z-50 animate-in slide-in-from-bottom-4 fade-in duration-200",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-full border bg-background px-4 py-2 shadow-lg",children:[(0,d.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:[a," selected"]}),(0,d.jsxs)(T.$,{size:"sm",variant:"default",onClick:b,className:"gap-1.5",children:[(0,d.jsx)(aM.A,{className:"h-3.5 w-3.5"}),"Copy"]}),(0,d.jsx)(T.$,{size:"sm",variant:"ghost",onClick:c,children:(0,d.jsx)(s.A,{className:"h-3.5 w-3.5"})})]})})}function aO({open:a,models:b,onStrip:c,onNewSession:g,onCancel:h}){let[i,k]=(0,j.useState)(!1),l=async()=>{k(!0);try{await c()}finally{k(!1)}};return(0,d.jsx)($.lG,{open:a,onOpenChange:a=>!a&&h(),children:(0,d.jsxs)($.Cf,{onClose:h,children:[(0,d.jsx)($.c7,{children:(0,d.jsxs)($.L3,{className:"flex items-center gap-2",children:[(0,d.jsx)(f.A,{className:"h-5 w-5 text-amber-500"}),"Incompatible Thinking Blocks"]})}),(0,d.jsxs)("div",{className:"space-y-3 mt-1",children:[(0,d.jsxs)("p",{className:"text-sm text-muted-foreground",children:["This session contains thinking blocks from ",(0,d.jsx)("span",{className:"font-mono text-foreground",children:b.join(", ")}),". Anthropic models cannot continue a conversation that includes non-Anthropic thinking blocks."]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 pt-2",children:[(0,d.jsx)(T.$,{onClick:l,disabled:i,variant:"default",children:i?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin mr-2"}),"Stripping..."]}):"Strip thinking blocks and switch"}),(0,d.jsx)(T.$,{onClick:g,variant:"outline",disabled:i,children:"Start a new session instead"}),(0,d.jsx)(T.$,{onClick:h,variant:"ghost",disabled:i,className:"text-muted-foreground",children:"Cancel"})]})]})]})})}function aP({sessionId:a,cwd:b,initialName:c,initialContext:o,historyView:r,onSendMessage:s,className:t}){let{messages:u,historyLoaded:v,isResponding:w,errorActive:x,pendingPermissions:y,pendingQuestions:z,modelPicker:A,currentModel:B,currentContextSize:C,bypassActive:D,planMode:E,thinkingLevel:F,contextUsage:G,rateLimitStatus:H,apiError:I,sessionName:J,initData:K,activeModelId:L,hasQueuedMessage:M,queuedMessages:N,queuePaused:O,backgroundTasks:P,todos:Q,btw:R,promptHistory:S,hasMoreHistory:T,loadingMore:U,requestMoreHistory:V,sendMessage:W,interrupt:X,respondToPermission:Y,respondToQuestion:Z,setModel:$,setBypassAll:_,setPlanMode:aa,setThinkingLevel:ab,cancelQueuedMessage:ac,deleteQueuedMessage:ad,editQueuedMessage:ae,resumeQueue:af,restoredText:ag,clearRestoredText:ah,dismissBtw:ai,retry:aj,currentRuntime:ak,setRuntime:al,restartSession:am,thinkingCheck:an,confirmThinkingStrip:ao,cancelThinkingCheck:ap}=function(a,b){let{send:c,subscribe:d,connected:e}=(0,m.h)(),[f,g]=(0,j.useState)([]),[h,i]=(0,j.useState)(!1),[k,n]=(0,j.useState)([]),[o,p]=(0,j.useState)([]),[q,r]=(0,j.useState)(null),[s,t]=(0,j.useState)("sonnet"),[u,v]=(0,j.useState)(l.w6),[w,x]=(0,j.useState)("stream"),[y,z]=(0,j.useState)(!1),[A,B]=(0,j.useState)(!1),[C,D]=(0,j.useState)("high"),[E,F]=(0,j.useState)(!1),[G,H]=(0,j.useState)(null),[I,J]=(0,j.useState)(null),[K,L]=(0,j.useState)(null),[M,N]=(0,j.useState)([]),[O,P]=(0,j.useState)(null),[Q,R]=(0,j.useState)(null),[S,T]=(0,j.useState)(null),[U,V]=(0,j.useState)([]),[W,X]=(0,j.useState)([]),[Y,Z]=(0,j.useState)(null),[$,_]=(0,j.useState)([]),[aa,ab]=(0,j.useState)(!1),[ac,ad]=(0,j.useState)(!1),[ae,af]=(0,j.useState)(!1),[ag,ah]=(0,j.useState)([]),[ai,aj]=(0,j.useState)(!1),[ak,al]=(0,j.useState)(null),[am,an]=(0,j.useState)(!1);(0,j.useRef)(void 0);let ao=(0,j.useRef)(!1),ap=(0,j.useRef)([]),aq=(0,j.useRef)(s),ar=(0,j.useRef)(null),as=(0,j.useRef)([]),at=(0,j.useRef)(null),au=(0,j.useRef)([]),av=(0,j.useRef)(null);null!==av.current&&av.current!==a&&(at.current=null,au.current=[],av.current=null,_([]),ab(!1),ad(!1));let aw=(0,j.useCallback)(()=>{if(ac||!aa)return;let b=ap.current[0];b&&(ad(!0),c({type:"history:request_more",sessionId:a,beforeMessageId:b.id}))},[ac,aa,a,c]);(0,j.useRef)(0),(0,j.useCallback)(async()=>{try{let c=new URLSearchParams;b&&c.set("cwd",b);let d=await fetch(`/api/sessions/${a}?${c}`);if(!d.ok)return void console.warn(`[fallback] HTTP check failed (${d.status})`);let e=await d.json();if("idle"===e.session.status){console.log("[fallback] session is idle, recovering");let a=new Set,b=e.messages.filter(b=>!a.has(b.id)&&(a.add(b.id),!0));g(b),b.length>0&&(at.current=b[b.length-1].id);for(let a=b.length-1;a>=0;a--){let c=b[a];if("assistant"===c.role&&c.model){T(c.model);break}}i(!1),ao.current=!1,ar.current=null,as.current=[]}}catch{}},[a,b]);let ax=(0,j.useCallback)((d,e,f,h)=>{let i=d;if(h?.length&&(i=h.map(a=>`<file path="${a.name}">
|
|
2
|
-
${a.content}
|
|
3
|
-
</file>`).join("\n\n")+(d?"\n\n"+d:"")),ao.current&&/^\/btw\s/i.test(d.trim())){let a=d.trim().replace(/^\/btw\s+/i,"");if(!a)return;Z({question:a,answer:null,loading:!0,error:null}),fetch("/api/btw",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:a,context:ap.current.filter(a=>"user"===a.role||"assistant"===a.role).slice(-20).map(a=>({role:a.role,content:a.content.slice(0,2e3)})),model:aq.current,cwd:b})}).then(a=>a.json()).then(a=>{a.error?Z(b=>b?{...b,loading:!1,error:a.error}:null):Z(b=>b?{...b,loading:!1,answer:a.answer}:null)}).catch(a=>{Z(b=>b?{...b,loading:!1,error:a.message}:null)});return}if(ao.current){au.current.push({text:d,images:e,documents:f,textFiles:h}),c({type:"message:send",sessionId:a,text:i,images:e?.length?e:void 0,documents:f?.length?f:void 0});return}ai&&(au.current=[],ah([]),aj(!1),af(!1));let j={id:"user-"+Date.now(),role:"user",content:d,toolUses:[],blocks:[],timestamp:Date.now(),images:e?.length?e:void 0,documents:f?.length?f:void 0,textFiles:h?.length?h:void 0};g(a=>[...a,j]),N([]);let k=d.replace(/^\[Attached [^\]]+\]\n*/gm,"").trim();k&&!k.startsWith("/")&&_(a=>a[0]===k?a:[k,...a.filter(a=>a!==k)]),c({type:"message:send",sessionId:a,text:i,images:e?.length?e:void 0,documents:f?.length?f:void 0})},[c,a,ai,b]),ay=(0,j.useCallback)(()=>{c({type:"session:interrupt",sessionId:a})},[c,a]),az=(0,j.useCallback)((b,d,e,f)=>{c({type:"permission:response",sessionId:a,requestId:b,allowed:d,permissionMode:e,suggestionIndex:f}),n(a=>a.filter(a=>a.requestId!==b))},[c,a]),aA=(0,j.useCallback)((b,d)=>{console.log("[question-debug] respondToQuestion",b),c({type:"question:response",sessionId:a,requestId:b,answers:d}),p(a=>(console.log("[question-debug] marking answered, current pending:",a.map(a=>({id:a.requestId,answered:a.answered}))),a.map(a=>a.requestId===b?{...a,answered:!0}:a)))},[c,a]),[aB,aC]=(0,j.useState)(null),aD=(0,j.useCallback)((b,d)=>{r(null),t(b),void 0!==d&&v(d),c({type:"session:set_model",sessionId:a,model:b,contextSize:d})},[c,a]),aE=(0,j.useCallback)(async(b,c)=>{let d=b.replace(/\[.*\]$/,"");if(!(d.startsWith("claude")||null!==(0,l.AX)(d)))return void aD(b,c);try{let d=await fetch(`/api/sessions/thinking?sessionId=${encodeURIComponent(a)}`),e=await d.json();if(e.hasNonAnthropicThinking){r(null),aC({pending:!0,targetModel:b,models:e.models,contextSize:c});return}}catch{}aD(b,c)},[a,aD]),aF=(0,j.useCallback)((a,b)=>{aE(a,b)},[aE]),aG=(0,j.useCallback)(async()=>{if(!aB)return;let{targetModel:b,contextSize:c}=aB;await fetch("/api/sessions/thinking",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:a})}),aC(null),aD(b,c)},[aB,a,aD]),aH=(0,j.useCallback)(()=>{aC(null)},[]),aI=(0,j.useCallback)((b,d)=>{"main"===b&&t(d),c({type:"session:set_model_slot",sessionId:a,slot:b,modelId:d})},[c,a]),aJ=(0,j.useCallback)(b=>{z(b),c({type:"permission:set_bypass",sessionId:a,enabled:b})},[c,a]),aK=(0,j.useCallback)(b=>{B(b),c({type:"session:set_plan_mode",sessionId:a,enabled:b})},[c,a]),aL=(0,j.useCallback)(b=>{D(b),g(a=>[...a,{id:"thinking-"+Date.now(),role:"system",content:`Thinking: ${b}`,toolUses:[],blocks:[],timestamp:Date.now()}]),c({type:"session:set_thinking",sessionId:a,level:b})},[c,a]),aM=(0,j.useCallback)(()=>{c({type:"message:cancel_queued",sessionId:a})},[c,a]),aN=(0,j.useCallback)(b=>{c({type:"message:delete_queued",sessionId:a,messageId:b})},[c,a]),aO=(0,j.useCallback)(b=>{c({type:"message:edit_queued",sessionId:a,messageId:b})},[c,a]),aP=(0,j.useCallback)(()=>{c({type:"message:resume_queue",sessionId:a})},[c,a]),aQ=(0,j.useCallback)(()=>{al(null)},[]),aR=(0,j.useCallback)(()=>{if(Y?.answer){let a=Date.now();g(b=>[...b,{id:`btw-q-${a}`,role:"user",content:`[side question] ${Y.question}`,toolUses:[],blocks:[],timestamp:a},{id:`btw-a-${a}`,role:"assistant",content:Y.answer,toolUses:[],blocks:[],timestamp:a+1}])}Z(null)},[Y]),aS=(0,j.useCallback)(()=>{L(null),c({type:"message:send",sessionId:a,text:"Continue from where you left off."})},[c,a]);return{messages:f,historyLoaded:E,isResponding:h,errorActive:am,pendingPermissions:k,pendingQuestions:o,modelPicker:q,currentModel:s,currentContextSize:u,bypassActive:y,planMode:A,thinkingLevel:C,contextUsage:G,rateLimitStatus:I,apiError:K,suggestions:M,sessionName:O,initData:Q,activeModelId:S,hasQueuedMessage:ae,queuedMessages:ag,queuePaused:ai,backgroundTasks:U,todos:W,btw:Y,promptHistory:$,hasMoreHistory:aa,loadingMore:ac,requestMoreHistory:aw,sendMessage:ax,interrupt:ay,respondToPermission:az,respondToQuestion:aA,setModel:aF,setModelSlot:aI,setBypassAll:aJ,setPlanMode:aK,setThinkingLevel:aL,cancelQueuedMessage:aM,deleteQueuedMessage:aN,editQueuedMessage:aO,resumeQueue:aP,restoredText:ak,clearRestoredText:aQ,dismissBtw:aR,retry:aS,currentRuntime:w,setRuntime:(0,j.useCallback)(b=>{x(b),c({type:"session:set_runtime",sessionId:a,runtime:b})},[c,a]),restartSession:(0,j.useCallback)(()=>{c({type:"session:restart",sessionId:a})},[c,a]),thinkingCheck:aB,confirmThinkingStrip:aG,cancelThinkingCheck:aH}}(a,b),{settings:aq}=(0,n.t)(),ar=(0,i.useRouter)(),{setHeader:as,setBackgroundTasks:at,setTodos:ax,setInitData:ay,setRuntime:aA}=(0,q.E2)(),aB=(0,j.useRef)(null),aC=(0,j.useRef)(!0),[aD,aE]=(0,j.useState)(!1),aG=(0,j.useRef)(0),[aH,aK]=(0,j.useState)(50),aM=(0,j.useRef)(0),aQ=(0,j.useRef)(0),{selectedIds:aR,selectionMode:aS,enterSelection:aT,toggleSelect:aU,clearSelection:aV,copySelected:aW}=function(){let[a,b]=(0,j.useState)(new Set),c=a.size>0,d=(0,j.useCallback)(a=>{b(new Set([a]))},[]),e=(0,j.useCallback)(a=>{b(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),f=(0,j.useCallback)(()=>{b(new Set)},[]),g=(0,j.useCallback)(async c=>{let d=c.filter(b=>a.has(b.id)&&"system"!==b.role).map(k).filter(Boolean).join("\n\n---\n\n");if(d)if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(d);else{let a=document.createElement("textarea");a.value=d,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}b(new Set)},[a]);return{selectedIds:a,selectionMode:c,enterSelection:d,toggleSelect:e,clearSelection:f,copySelected:g}}(),aX=(0,j.useRef)(new Set),[aY,aZ]=(0,j.useState)(!1),[a$,a_]=(0,j.useState)([]),a0=(0,j.useMemo)(()=>{let a=new Set;return u.filter(b=>!a.has(b.id)&&(a.add(b.id),!0))},[u]),a1=Math.max(0,a0.length-aH),a2=(0,j.useMemo)(()=>a0.slice(a1),[a0,a1]),a3=a1>0,{send:a4}=(0,m.h)();(0,j.useCallback)(b=>{a4({type:"message:send",sessionId:a,text:`/rename ${b}`})},[a4,a]);let a5=(0,j.useCallback)(()=>{if(Date.now()<aG.current)return;let a=aB.current;if(!a)return;let b=a.scrollHeight-a.scrollTop-a.clientHeight;aC.current=b<80,aE(b>300),a.scrollTop<800&&Date.now()>aM.current&&(aM.current=Date.now()+100,a3?(aQ.current=a.scrollHeight,aK(a=>a+30)):T&&!U&&(aQ.current=a.scrollHeight,V()))},[a3,T,U,V]),a6=(0,j.useCallback)(()=>{let a=aB.current;a&&(a.scrollTop=a.scrollHeight),aG.current=Date.now()+150,aE(!1)},[]),a7=(0,j.useRef)(!1),a8=(0,j.useCallback)((a,b,c,d)=>{aC.current=!0,o&&!a7.current&&0===u.length?(a7.current=!0,W(`${a}
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
${o}`,b,c,d)):W(a,b,c,d)},[W,o,u.length]),a9=(0,j.useCallback)(()=>{W("/compact")},[W]),ba=(0,j.useCallback)(()=>{aW(a0)},[aW,a0]),bb=(0,j.useCallback)(async()=>{if(!b)return;ap();let a=an?.targetModel;try{let c=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:b,runtime:ak,model:a})});if(c.ok){let a=await c.json();ar.push(`/sessions/${a.sessionId}?cwd=${encodeURIComponent(b)}`)}}catch{}},[b,ak,an?.targetModel,ap,ar]);return(0,d.jsxs)("div",{className:(0,p.cn)("flex flex-col flex-1 min-h-0",t),children:[(0,d.jsx)("div",{ref:aB,"data-chat-scroll":!0,tabIndex:aY?void 0:-1,className:"flex-1 min-h-0 overflow-y-auto p-4 outline-none",onScroll:a5,children:(0,d.jsxs)("div",{className:"mx-auto max-w-3xl lg:max-w-4xl xl:max-w-5xl 2xl:max-w-6xl space-y-4",children:[0===a0.length&&(0,d.jsx)("div",{className:"flex flex-col items-center pt-20 text-sm text-muted-foreground",children:v?(0,d.jsx)("p",{children:"Send a message to start the conversation."}):(0,d.jsx)(e.A,{className:"h-5 w-5 animate-spin"})}),(a3||U)&&(0,d.jsx)("div",{className:"flex justify-center py-2",children:(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),a2.map((a,b)=>{let c=b>0&&"__compacted__"===a2[b-1].content;if("assistant"===a.role){let{before:b,questionBlock:e,after:f}=function(a){let b=a.findIndex(a=>"tool_use"===a.type&&"AskUserQuestion"===a.toolUse.name);if(b<0)return{before:a,questionBlock:null,after:[]};let c=a[b];return{before:a.slice(0,b),questionBlock:c,after:a.slice(b+1).filter(a=>"tool_use"!==a.type||"AskUserQuestion"!==a.toolUse.name)}}(a.blocks||[]);if(e){let g=z.find(()=>!0),h=!!e.toolUse.output;return console.log(`[question-debug] Place1 render: msgId=${a.id.slice(0,8)}, hasOutput=${h}, pending=${!!g}, pendingCount=${z.length}`),(0,d.jsxs)("div",{"data-message-id":a.id,className:"space-y-4",children:[b.length>0&&(0,d.jsx)(av.s,{message:{...a,blocks:b,content:""},collapsedByDefault:c,expandedToolIds:aX,selectionMode:aS,selected:aR.has(a.id),onEnterSelection:aT,onToggleSelect:aU}),(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsx)("div",{className:"max-w-[85%]",children:h?(0,d.jsx)(aJ,{tool:e.toolUse}):g?(0,d.jsx)(aL,{questions:aI(g.questions),onSubmit:Z,requestId:g.requestId}):null})}),f.length>0&&(0,d.jsx)(av.s,{message:{...a,blocks:f,content:""},collapsedByDefault:!1,expandedToolIds:aX,selectionMode:aS,selected:aR.has(a.id),onEnterSelection:aT,onToggleSelect:aU})]},a.id)}}return(0,d.jsx)("div",{"data-message-id":a.id,className:"space-y-4",children:(0,d.jsx)(av.s,{message:a,collapsedByDefault:c,expandedToolIds:aX,selectionMode:aS,selected:aR.has(a.id),onEnterSelection:aT,onToggleSelect:aU})},a.id)}),(w||x)&&0===y.length&&!z.some(a=>!a.answered)&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin"}),x&&!w&&(0,d.jsx)("span",{className:"text-xs text-red-500",children:"API error, retrying..."}),H&&(0,d.jsx)("span",{className:"text-xs",children:"Rate limited, retrying..."})]}),I&&!w&&!x&&(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsxs)("div",{className:"max-w-[85%] rounded-lg border border-red-500/30 bg-red-500/5 px-4 py-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-red-500 mb-1",children:[(0,d.jsx)(f.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"API Error"})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mb-3",children:I}),(0,d.jsxs)("button",{onClick:aj,className:"flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-xs hover:bg-muted transition-colors",children:[(0,d.jsx)(g.A,{className:"h-3 w-3"}),"Retry"]})]})}),y.map(a=>"ExitPlanMode"===a.toolName?(0,d.jsx)(aF,{permission:a,bypassActive:D,onRespond:Y,onSendMessage:W,onSetBypass:_,onSetPlanMode:aa},a.requestId):(0,d.jsx)(az,{permission:a,onRespond:Y},a.requestId)),z.length>0&&!a2.some(a=>"assistant"===a.role&&(a.blocks||[]).some(a=>"tool_use"===a.type&&"AskUserQuestion"===a.toolUse.name))&&z.map(a=>(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsx)("div",{className:"max-w-[85%]",children:(0,d.jsx)(aL,{questions:aI(a.questions),onSubmit:Z,requestId:a.requestId})})},a.requestId)),null!==A&&(0,d.jsx)(aw,{currentModel:A,currentContextSize:C,activeModelId:L,onSelect:(a,b)=>$(a,b),providers:a$}),(0,d.jsx)(aO,{open:null!==an,models:an?.models??[],onStrip:ao,onNewSession:bb,onCancel:ap}),(0,d.jsx)("div",{})]})}),aS&&(0,d.jsx)(aN,{count:aR.size,onCopy:ba,onCancel:aV}),aD&&(0,d.jsx)("div",{className:"relative z-10 flex justify-center pointer-events-none",style:{marginTop:-52},children:(0,d.jsx)("button",{onClick:()=>{a6(),aC.current=!0,aE(!1)},className:"pointer-events-auto rounded-full border bg-background/90 backdrop-blur p-3 shadow-md text-muted-foreground hover:text-foreground transition-colors",children:(0,d.jsx)(h.A,{className:"h-5 w-5"})})}),(0,d.jsx)("div",{className:"shrink-0",children:(0,d.jsx)(au,{sessionId:a,promptHistory:S,onSend:a8,onInterrupt:X,isResponding:w||x,bypassActive:D,onSetBypass:_,planMode:E,onSetPlanMode:aa,thinkingLevel:F,onSetThinking:ab,currentModel:B,currentContextSize:C,onSetModel:$,contextUsage:G,dismissKeyboard:aq.dismissKeyboardOnSend,cwd:b,onCompact:a9,initData:K,hasQueuedMessage:M,queuedMessages:N,queuePaused:O,onCancelQueued:ac,onDeleteQueued:ad,onEditQueued:ae,onResumeQueue:af,restoredText:ag,onClearRestoredText:ah,btw:R,onDismissBtw:ai,currentRuntime:ak,onSetRuntime:al,onRestart:am,providers:a$})})]})}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=8148,exports.ids=[8148],exports.modules={42315:(a,b,c)=>{c.d(b,{X:()=>f});var d=c(48249),e=c(67484);function f({onResize:a}){let b=(0,e.useRef)(!1),c=(0,e.useRef)(0),g=(0,e.useCallback)(d=>{d.preventDefault(),b.current=!0,c.current=d.clientX;let e=d=>{if(!b.current)return;let e=c.current-d.clientX;c.current=d.clientX,a(e)},f=()=>{b.current=!1,document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",f),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",e),document.addEventListener("mouseup",f)},[a]);return(0,d.jsx)("div",{onMouseDown:g,className:"w-1 shrink-0 cursor-col-resize bg-border hover:bg-primary/30 transition-colors"})}},98148:(a,b,c)=>{c.d(b,{V:()=>P});var d=c(48249),e=c(47388),f=c(25500),g=c(35471),h=c(33636),i=c(46940),j=c(78321),k=c(11577),l=c(69627),m=c(69357),n=c(85448),o=c(90069),p=c(28624),q=c(54183),r=c(81965),s=c(41926);let t=(0,s.A)("arrow-up-from-line",[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]]),u=(0,s.A)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);var v=c(52839),w=c(57684),x=c(19099),y=c(67484),z=c(3284),A=c(15096),B=c(42708),C=c(42315),D=c(25297),E=c(12637),F=c(23077),G=c(93571),H=c(47244),I=c(14490);function J({checked:a,onChange:b,onClick:c}){return(0,d.jsx)("button",{type:"button",role:"checkbox","aria-checked":a,onClick:a=>{c?.(a),b()},className:(0,I.cn)("h-4 w-4 shrink-0 rounded border flex items-center justify-center transition-colors",a?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/40 bg-transparent hover:border-muted-foreground/60"),children:a&&(0,d.jsx)(g.A,{className:"h-3 w-3",strokeWidth:3})})}function K(a){switch(a){case"added":case"untracked":return(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 text-green-500 shrink-0"});case"deleted":return(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 text-red-500 shrink-0"});case"renamed":return(0,d.jsx)(j.A,{className:"h-3.5 w-3.5 text-blue-500 shrink-0"});default:return(0,d.jsx)(k.A,{className:"h-3.5 w-3.5 text-yellow-500 shrink-0"})}}function L(){return!("u"<typeof document)&&document.documentElement.classList.contains("dark")}function M(a,b,c){let d=b.split(/\r?\n/).map(a=>a+"\n"),e=c.split(/\r?\n/).map(a=>a+"\n");for(let b of a.hunks){let a=b.deletionStart-1-b.deletionLineIndex,c=b.additionStart-1-b.additionLineIndex;for(let d of(b.deletionLineIndex=b.deletionStart-1,b.additionLineIndex=b.additionStart-1,b.hunkContent))d.deletionLineIndex+=a,d.additionLineIndex+=c}a.deletionLines=d,a.additionLines=e,a.isPartial=!1}function N({files:a,cwd:b,diffStyle:c,scrollToFile:g,onScrolled:h,onViewFile:i,checkedFiles:j,onToggleFile:k,refreshKey:p}){let[q,r]=(0,y.useState)(new Map),s=(0,y.useRef)(new Map);(0,y.useRef)(new Set),(0,y.useRef)(p);let[t,u]=(0,y.useState)(new Set);(0,y.useCallback)(a=>{r(b=>{let c=new Map(b);return c.set(a,{diff:b.get(a)?.diff||null,fileDiff:b.get(a)?.fileDiff||null,loading:!0}),c}),fetch(`/api/git/diff?cwd=${encodeURIComponent(b)}&file=${encodeURIComponent(a)}`).then(a=>{if(!a.ok)throw Error("Failed");return a.json()}).then(b=>{let c=null;try{let a=(0,e.J2)(b.diff);a.length>0&&a[0].files.length>0&&(c=a[0].files[0],null!=b.oldContent&&null!=b.newContent&&M(c,b.oldContent,b.newContent))}catch{}r(d=>{let e=new Map(d);return e.set(a,{diff:b.diff,fileDiff:c,loading:!1}),e})}).catch(()=>{r(b=>{let c=new Map(b);return c.set(a,{diff:null,fileDiff:null,loading:!1}),c})})},[b]);let v=(0,y.useCallback)(a=>{u(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),w=(0,y.useCallback)(a=>{k(a),j.has(a)||u(b=>new Set(b).add(a))},[k,j]);return 0===a.length?(0,d.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"No changes"}):(0,d.jsx)("div",{className:"p-4 space-y-3",children:a.map(a=>{let b=q.get(a.path),e=j.has(a.path),g=t.has(a.path);return(0,d.jsx)("div",{ref:b=>{b&&s.current.set(a.path,b)},className:(0,I.cn)("rounded border overflow-clip",e&&!g&&"opacity-60"),children:g?(0,d.jsxs)("div",{className:"flex items-center gap-2 w-full px-4 py-2 text-sm text-muted-foreground",children:[(0,d.jsx)(J,{checked:e,onChange:()=>{k(a.path),e&&u(b=>{let c=new Set(b);return c.delete(a.path),c})},onClick:a=>a.stopPropagation()}),(0,d.jsxs)("button",{onClick:()=>v(a.path),className:"flex items-center gap-2 flex-1 min-w-0 hover:text-foreground transition-colors",children:[(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,d.jsx)("span",{className:"font-mono text-xs truncate text-left",dir:"rtl",title:a.path,children:(0,d.jsx)("bdo",{dir:"ltr",children:a.path})})]})]}):b?.loading&&!b.diff?(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(m.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}):b?.diff?(0,d.jsxs)(d.Fragment,{children:[(0,d.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","data-testid":"sticky-diff-header",children:[K(a.status),(0,d.jsx)("span",{className:"font-mono text-xs truncate flex-1 min-w-0 text-left",dir:"rtl",title:a.path,children:(0,d.jsx)("bdo",{dir:"ltr",children:a.path})}),(0,d.jsx)(J,{checked:e,onChange:()=>w(a.path),onClick:a=>a.stopPropagation()}),(0,d.jsx)("button",{onClick:()=>v(a.path),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",title:"Collapse",children:(0,d.jsx)(n.A,{className:"h-3 w-3"})}),(0,d.jsx)("button",{onClick:()=>i(a.path),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:(0,d.jsx)(o.A,{className:"h-3 w-3"})})]}),(0,d.jsx)(B.sU,{fallback:(0,d.jsx)("pre",{className:"p-4 text-xs text-muted-foreground whitespace-pre-wrap",children:b.diff}),children:b.fileDiff?(0,d.jsx)(f.Q,{fileDiff:b.fileDiff,options:{theme:{dark:"pierre-dark",light:"pierre-light"},themeType:L()?"dark":"light",overflow:"wrap",diffStyle:c,disableFileHeader:!0,hunkSeparators:"line-info",expansionLineCount:20,unsafeCSS:B.j8}}):(0,d.jsx)("pre",{className:"p-4 text-xs text-muted-foreground whitespace-pre-wrap",children:b.diff})})]}):(0,d.jsx)("div",{className:"px-4 py-3 text-xs text-muted-foreground",children:"No diff available"})},a.path)})})}let O=new Map;function P({cwd:a,sessionId:b,embeddedChat:c=!0,manageSidebar:h=!0}){let i,j,k,{settings:s}=(0,F.t)(),{setSidebarSection:Q,removeSidebarSection:R,closeSidebar:S}=(0,z.E2)(),{send:T,subscribe:U}=(0,G.h)(),V=(0,x.useRouter)(),W=(0,E.G)(),[X,Y]=(0,y.useState)(null),[Z,$]=(0,y.useState)(!0),[_,aa]=(0,y.useState)(null),ab=O.get(a)||{selectedFile:null,commitMsg:"",commitPanelOpen:!1,pushOnCommit:!1,stackedMode:!0,chatRatio:.3},[ac,ad]=(0,y.useState)(ab.selectedFile),[ae,af]=(0,y.useState)(null),[ag,ah]=(0,y.useState)(null),[ai,aj]=(0,y.useState)(!1),[ak,al]=(0,y.useState)(null),[am,an]=(0,y.useState)(ab.commitMsg),[ao,ap]=(0,y.useState)(!1),[aq,ar]=(0,y.useState)(null),{checkedFiles:as,toggleFile:at,toggleAll:au,setCheckedFiles:av}=(0,H.e)(a),[aw,ax]=(0,y.useState)(ab.pushOnCommit),[ay,az]=(0,y.useState)(ab.commitPanelOpen),[aA,aB]=(0,y.useState)(!1),[aC,aD]=(0,y.useState)(!1),[aE,aF]=(0,y.useState)(null),[aG,aH]=(0,y.useState)(ab.stackedMode),[aI,aJ]=(0,y.useState)(ab.chatRatio),[aK,aL]=(0,y.useState)(null),[aM,aN]=(0,y.useState)(0),aO=(0,y.useRef)(null),aP=(0,y.useCallback)(b=>{b?.refresh||$(!0),aa(null);let c=new URLSearchParams({cwd:a});b?.gitFetch&&c.set("fetch","1"),fetch(`/api/git/status?${c}`).then(a=>{if(!a.ok)throw Error("Failed");return a.json()}).then(a=>{Y(a),b?.refresh&&aN(a=>a+1)}).catch(()=>aa("Not a git repository")).finally(()=>$(!1))},[a]);(0,y.useRef)(null);let aQ=(0,y.useCallback)(b=>{aj(!0),af(null),ah(null),fetch(`/api/git/diff?cwd=${encodeURIComponent(a)}&file=${encodeURIComponent(b)}`).then(a=>{if(!a.ok)throw Error("Failed");return a.json()}).then(a=>{af(a.diff);try{let b=(0,e.J2)(a.diff);if(b.length>0&&b[0].files.length>0){let c=b[0].files[0];null!=a.oldContent&&null!=a.newContent&&M(c,a.oldContent,a.newContent),ah(c)}}catch{}}).catch(()=>af(null)).finally(()=>aj(!1))},[a]);(0,y.useRef)(aM),(0,y.useCallback)(a=>{aG?aL(a.path):(ad(a.path),aQ(a.path),al(null),S())},[aG,aQ,S]),(0,y.useCallback)((a,b)=>{a.preventDefault(),al({x:a.clientX,y:a.clientY,file:b})},[]);let aR=(0,y.useCallback)(async b=>{al(null);try{if(!(await fetch("/api/git/discard",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,file:b.path,status:b.status})})).ok)throw Error("Failed");ac===b.path&&(ad(null),af(null)),aP()}catch{}},[a,ac,aP]),aS=(0,y.useCallback)(async()=>{if(am.trim()&&0!==as.size){ap(!0),ar(null);try{let b=await fetch("/api/git/commit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,message:am.trim(),files:Array.from(as),push:aw})});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to commit")}ar({ok:!0,message:aw?"Committed and pushed":"Committed"}),an(""),av(new Set),ad(null),af(null),aP()}catch(a){ar({ok:!1,message:a instanceof Error?a.message:"Failed"})}finally{ap(!1)}}},[a,am,as,aw,aP,av]),aT=(0,y.useCallback)(async()=>{if(0!==as.size){aB(!0);try{let b=await fetch("/api/git/generate-message",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,files:Array.from(as)})}),c=await b.json();if(!b.ok)throw Error(c.error||"Failed");c.message&&an(c.message)}catch(a){console.error("[generate-message]",a)}finally{aB(!1)}}},[a,as]),aU=(0,y.useCallback)(async()=>{aD(!0),aF(null);try{let b=await fetch("/api/git/push",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to push")}aF({ok:!0,message:"Pushed"}),aP()}catch(a){aF({ok:!1,message:a instanceof Error?a.message:"Failed"})}finally{aD(!1)}},[a,aP]);(0,y.useCallback)(()=>{X&&au(X.files.map(a=>a.path))},[X,au]);let aV=(0,y.useCallback)(a=>{let b=window.innerWidth||1;aJ(c=>Math.max(.15,Math.min(.5,c+a/b)))},[]),aW=(0,y.useCallback)(()=>{aL(null)},[]),aX=(0,y.useCallback)(b=>{let c=b.startsWith("/")?b:`${a}/${b}`;V.push(`/files?cwd=${encodeURIComponent(a)}&file=${encodeURIComponent(c)}`)},[a,V]);return Z?(0,d.jsx)("div",{className:"flex items-center justify-center flex-1",children:(0,d.jsx)(m.A,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):_?(0,d.jsx)("div",{className:"flex items-center justify-center flex-1",children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:_})}):X?(0,d.jsxs)("div",{className:"flex flex-col flex-1 min-h-0",children:[(0,d.jsxs)("div",{className:"shrink-0 border-b px-4 py-2 flex items-center gap-3",children:[(0,d.jsx)(p.A,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)("span",{className:"font-mono text-sm font-bold",children:X.branch}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[X.files.length," file",1!==X.files.length?"s":""," changed"]}),(i=X.files.reduce((a,b)=>a+b.additions,0),j=X.files.reduce((a,b)=>a+b.deletions,0),i>0||j>0?(0,d.jsxs)("span",{className:"text-xs font-mono flex items-center gap-1",children:[i>0&&(0,d.jsxs)("span",{className:"text-green-500",children:["+",i]}),j>0&&(0,d.jsxs)("span",{className:"text-red-500",children:["-",j]})]}):null),X.ahead>0&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[X.ahead," unpushed"]}),aE&&(0,d.jsxs)("span",{className:(0,I.cn)("text-xs flex items-center gap-1",aE.ok?"text-green-500":"text-red-500"),children:[aE.ok&&(0,d.jsx)(g.A,{className:"h-3 w-3"}),aE.message]}),(0,d.jsx)("div",{className:"flex-1"}),X.files.length>0&&(0,d.jsxs)("div",{className:"flex items-center gap-0.5 rounded-md border p-0.5",children:[(0,d.jsx)("button",{onClick:()=>aH(!0),className:(0,I.cn)("rounded px-1.5 py-0.5 text-xs transition-colors",aG?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),title:"Stacked view",children:(0,d.jsx)(q.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("button",{onClick:()=>aH(!1),className:(0,I.cn)("rounded px-1.5 py-0.5 text-xs transition-colors",aG?"text-muted-foreground hover:text-foreground":"bg-primary text-primary-foreground"),title:"Single file view",children:(0,d.jsx)(r.A,{className:"h-3.5 w-3.5"})})]}),X.ahead>0&&(0,d.jsxs)(D.$,{variant:"outline",size:"sm",onClick:aU,disabled:aC,className:"gap-1.5",children:[aC?(0,d.jsx)(m.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,d.jsx)(t,{className:"h-3.5 w-3.5"}),"Push"]}),(0,d.jsx)(D.$,{variant:"ghost",size:"sm",onClick:()=>aP({gitFetch:!0}),children:"Refresh"})]}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 flex flex-row",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:aG?(0,d.jsx)(N,{files:X.files,cwd:a,diffStyle:s.diffStyle,scrollToFile:aK,onScrolled:aW,onViewFile:aX,checkedFiles:as,onToggleFile:at,refreshKey:aM}):ai?(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)(m.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):ac&&ae?(0,d.jsx)("div",{className:"p-4",children:(0,d.jsxs)("div",{className:"rounded-lg border overflow-hidden",children:[(k=X.files.find(a=>a.path===ac))?(0,d.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:[K(k.status),(0,d.jsx)("span",{className:"font-mono text-xs truncate flex-1 min-w-0 text-left",dir:"rtl",title:k.path,children:(0,d.jsx)("bdo",{dir:"ltr",children:k.path})}),(0,d.jsx)(J,{checked:as.has(k.path),onChange:()=>at(k.path),onClick:a=>a.stopPropagation()}),(0,d.jsx)("button",{onClick:()=>aX(k.path),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",title:"Open in editor",children:(0,d.jsx)(o.A,{className:"h-3 w-3"})})]}):null,(0,d.jsx)(B.sU,{fallback:(0,d.jsx)("pre",{className:"p-4 text-xs text-muted-foreground whitespace-pre-wrap",children:ae}),children:ag?(0,d.jsx)(f.Q,{fileDiff:ag,options:{theme:{dark:"pierre-dark",light:"pierre-light"},themeType:L()?"dark":"light",overflow:"wrap",diffStyle:s.diffStyle,disableFileHeader:!0,hunkSeparators:"line-info",expansionLineCount:20,unsafeCSS:B.j8}}):(0,d.jsx)("pre",{className:"p-4 text-xs text-muted-foreground whitespace-pre-wrap",children:ae})})]})}):(0,d.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground text-center px-4",children:X.files.length>0?"Select a file from the sidebar to view changes":"No changes"})}),X.files.length>0&&(0,d.jsxs)("div",{className:"shrink-0 border-t",children:[(0,d.jsxs)("button",{onClick:()=>az(!ay),className:"w-full px-4 py-2 flex items-center gap-2 text-sm font-medium hover:bg-muted/50",children:[ay?(0,d.jsx)(l.A,{className:"h-3.5 w-3.5"}):(0,d.jsx)(n.A,{className:"h-3.5 w-3.5"}),"Commit (",as.size," file",1!==as.size?"s":"",")"]}),ay&&(0,d.jsxs)("div",{className:"px-4 pb-3 space-y-2",children:[(0,d.jsx)("textarea",{value:am,onChange:a=>an(a.target.value),placeholder:"Commit message...",className:"w-full rounded border bg-background px-3 py-2 text-sm resize-none focus:outline-none focus:ring-1 focus:ring-ring",rows:3}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsxs)(D.$,{size:"sm",variant:"outline",onClick:aT,disabled:aA||0===as.size,className:"gap-1.5",children:[aA?(0,d.jsx)(m.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,d.jsx)(u,{className:"h-3.5 w-3.5"}),aA?"Generating...":"Generate"]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground cursor-pointer",children:[(0,d.jsx)(J,{checked:aw,onChange:()=>ax(!aw)}),"Push after commit"]}),(0,d.jsx)("div",{className:"flex-1"}),aq&&(0,d.jsxs)("span",{className:(0,I.cn)("text-xs flex items-center gap-1",aq.ok?"text-green-500":"text-red-500"),children:[aq.ok&&(0,d.jsx)(g.A,{className:"h-3 w-3"}),aq.message]}),(0,d.jsxs)(D.$,{size:"sm",onClick:aS,disabled:ao||!am.trim()||0===as.size,className:"gap-1.5",children:[ao?(0,d.jsx)(m.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,d.jsx)(v.A,{className:"h-3.5 w-3.5"}),aw?"Commit & Push":"Commit"]})]})]})]})]}),c&&W&&!!b&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(C.X,{onResize:aV}),(0,d.jsx)("div",{className:"flex flex-col shrink-0 border-l min-h-0",style:{width:`${100*aI}%`},children:(0,d.jsx)(A.I,{sessionId:b,cwd:a})})]})]}),ak&&(0,d.jsx)("div",{ref:aO,className:"fixed z-50 rounded border bg-background shadow-lg py-1 min-w-[140px]",style:{left:ak.x,top:ak.y},children:(0,d.jsxs)("button",{onClick:()=>aR(ak.file),className:"w-full px-3 py-1.5 text-sm text-left hover:bg-muted flex items-center gap-2 text-red-500",children:[(0,d.jsx)(w.A,{className:"h-3.5 w-3.5"}),"Discard changes"]})})]}):null}}};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=9599,exports.ids=[9599],exports.modules={22211:(a,b,c)=>{c.d(b,{$K:()=>s,Z3:()=>n,Zi:()=>p,f9:()=>q,h1:()=>r,sO:()=>o});var d=c(73024),e=c(76760),f=c(78796),g=c(64423),h=c(99417);function i(){return(0,e.join)((0,h.j_)(),"providers.json")}function j(a){for(let b of a.models)if(!Array.isArray(b.contextSizes)||0===b.contextSizes.length)throw Error(`provider${a.id?` ${a.id}`:""}: model ${b.modelId} has empty contextSizes`)}function k(){return{id:"anthropic",name:"Anthropic",envVars:{},models:(0,g.J$)(),isBuiltin:!0}}let l=null;function m(a){try{(0,d.mkdirSync)((0,h.j_)(),{recursive:!0}),(0,d.writeFileSync)(i(),JSON.stringify(a,null,2)+"\n")}catch{}}function n(){return l||(l=[k(),...function(){try{return JSON.parse((0,d.readFileSync)(i(),"utf-8"))}catch{return[]}}()]),l}function o(a){return n().find(b=>b.id===a)}function p(a){let b={...a,id:(0,f.A)()};j(b);let c=n().filter(a=>!a.isBuiltin);return c.push(b),m(c),l=[k(),...c],b}function q(a,b){if("anthropic"===a)throw Error("Cannot modify built-in provider");let c=n().filter(a=>!a.isBuiltin),d=c.findIndex(b=>b.id===a);if(-1===d)throw Error(`Provider not found: ${a}`);let e={...c[d],...b,id:a};return j(e),c[d]=e,m(c),l=[k(),...c],c[d]}function r(a){if("anthropic"===a)throw Error("Cannot delete built-in provider");let b=n(),c=b.filter(b=>!b.isBuiltin&&b.id!==a);if(c.length===b.filter(a=>!a.isBuiltin).length)throw Error(`Provider not found: ${a}`);m(c),l=[k(),...c]}function s(a){if(!a)return null;let b=a.indexOf(":");if(b>0){let c=a.slice(0,b),d=a.slice(b+1),e=o(c);if(e){let a=e.models.find(a=>a.modelId===d);if(a)return{provider:e,model:a}}return null}for(let b of n()){let c=b.models.find(b=>b.modelId===a);if(c)return{provider:b,model:c}}return null}},51675:(a,b,c)=>{c.d(b,{P:()=>j,r:()=>i});var d=c(73024),e=c(76760),f=c(99417);function g(){return(0,e.join)((0,f.j_)(),"defaults.json")}let h={thinkingLevel:"high",bypassAllPermissions:!1,diffStyle:"split",dismissKeyboardOnSend:!0,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,modelSlots:{main:"sonnet"},messageStitching:!0,reviewsEnabled:!0};function i(){try{let a=JSON.parse((0,d.readFileSync)(g(),"utf-8"));return a.model&&!a.modelSlots&&(a.modelSlots={main:a.model},delete a.model),{...h,...a}}catch{return{...h}}}function j(a){let b={...i(),...a};try{(0,d.mkdirSync)((0,f.j_)(),{recursive:!0}),(0,d.writeFileSync)(g(),JSON.stringify(b,null,2)+"\n")}catch{}return b}},99599:(a,b,c)=>{c.d(b,{hW:()=>_,Rb:()=>Z,wF:()=>Y,AU:()=>$});var d=c(31421),e=c(78474),f=c(73024),g=c(76760),h=c.n(g),i=c(78796),j=c(64423),k=c(99417),l=c(22211),m=c(13075),n=c(51675);class o{parseLine(a){let b,c=a.trim();if(!c)return[];try{b=JSON.parse(c)}catch{return[]}let d=b.type;if("assistant"===d)return this.parseAssistantEvent(b);if("user"===d)return this.parseUserEvent(b);if("result"===d)return this.parseResultEvent(b);if("control_request"===d)return this.parseControlRequest(b);if("tool_progress"===d){let a=b.tool_use_id,c=b.content;return a&&c?[{type:"tool_progress",toolId:a,text:c}]:[]}if("rate_limit_event"===d){let a=b.rate_limit_info;return a?[{type:"rate_limit",rateLimitInfo:{status:a.status||"unknown",retryAfterMs:a.retry_after_ms}}]:[]}if("prompt_suggestion"===d){let a=b.suggestions||b.prompt_suggestions;return a?.length?[{type:"prompt_suggestion",suggestions:a}]:[]}if("auth_status"===d)return[{type:"system_message",text:`__auth::${b.status||"unknown"}`}];if("tool_use_summary"===d||"stream_event"===d)return[];if("control_response"===d){let a=b.response;if(!a)return[];let c=a.subtype,d=a.response||a;if("success"!==c||!d.models)return[];let e=d.models||[],f=d.account,g=d.commands||[],h=d.agents||[];return[{type:"init",initData:{slashCommands:g.map(a=>a.name||""),skills:[],agents:h.map(a=>({name:a.name||"",description:a.description||void 0})),version:"",model:"",mcpServers:[],models:e.map(a=>({value:a.value||"",displayName:a.displayName||"",description:a.description||"",supportsEffort:a.supportsEffort,supportedEffortLevels:a.supportedEffortLevels,supportsAdaptiveThinking:a.supportsAdaptiveThinking,supportsFastMode:a.supportsFastMode,supportsAutoMode:a.supportsAutoMode})),account:f?{email:f.email||"",organization:f.organization||"",subscriptionType:f.subscriptionType||""}:void 0,commands:g.map(a=>({name:a.name||"",description:a.description||"",argumentHint:a.argumentHint}))}}]}if("system"===d){let a=b.subtype;if("compact_boundary"===a)return[{type:"system_message",text:"__compact_boundary__"}];if("status"===a&&"compacting"===b.status)return[{type:"system_message",text:"__compact::start"}];if("status"===a&&b.permissionMode){let a=b.permissionMode;return[{type:"system_message",text:`__permission_mode::${a}`}]}if("hook_started"===a){let a=b.hook_name||b.name||"unknown";return[{type:"system_message",text:`__hook::started::${a}`}]}if("hook_progress"===a){let a=b.content||"";return[{type:"system_message",text:`__hook::progress::${a}`}]}if("hook_response"===a)return[{type:"system_message",text:"__hook::done"}];if("task_started"===a)return[{type:"task_update",taskInfo:{taskId:b.task_id||"",toolUseId:b.tool_use_id||"",status:"running",description:b.description||""}}];if("task_progress"===a)return[{type:"task_update",taskInfo:{taskId:b.task_id||"",toolUseId:b.tool_use_id||"",status:"progress",description:b.description||""}}];if("task_notification"===a)return[{type:"task_update",taskInfo:{taskId:b.task_id||"",toolUseId:b.tool_use_id||"",status:"completed",description:b.description||"",summary:b.summary||""}}];if("init"===a){let a=b.slash_commands||[],c=b.skills||[],d=(b.agents||[]).map(a=>"string"==typeof a?{name:a}:{name:a.name||"",description:a.description}),e=b.claude_code_version||"";return[{type:"init",initData:{slashCommands:a,skills:c,agents:d,version:e,model:b.model||"",mcpServers:(b.mcp_servers||[]).map(a=>({name:a.name||"",status:a.status||""}))}}]}if(a)return[{type:"system_message",text:`__system::${a}`}]}return[]}parseAssistantEvent(a){let b=a.message;if(!b?.content)return[];b.model&&(this.lastAssistantModel=b.model);let c=b.id||void 0,d=[];for(let a of b.content)if("thinking"===a.type){let b=!a.thinking&&!!a.signature;if(!a.thinking&&!b)continue;d.push({type:"thinking",text:a.thinking??"",redacted:b,assistantMessageId:c})}else"text"===a.type&&a.text?d.push({type:"text_delta",text:a.text,assistantMessageId:c}):"tool_use"===a.type&&d.push({type:"tool_use_start",toolName:a.name||"unknown",toolId:a.id,toolInput:a.input?JSON.stringify(a.input):"",assistantMessageId:c});return d}parseUserEvent(a){let b=a.message;if(!b?.content||!Array.isArray(b.content))return[];let c=[];for(let a of b.content)if("tool_result"===a.type&&a.tool_use_id){let b=this.extractToolResultOutput(a),d=this.extractFilePath(a);c.push({type:"tool_result",toolId:a.tool_use_id,toolOutput:b,filePath:d})}return c}extractToolResultOutput(a){if("string"==typeof a.content)return a.content;if(Array.isArray(a.content)){let b=[];for(let c of a.content)"string"==typeof c?b.push(c):"text"===c.type&&c.text&&b.push(c.text);return b.join("\n")}return""}extractFilePath(a){if(Array.isArray(a.content)){for(let b of a.content)if("string"!=typeof b){let a=b.input;if(a){if("string"==typeof a.file_path)return a.file_path;if("string"==typeof a.filePath)return a.filePath;if("string"==typeof a.path)return a.path}}}}parseControlRequest(a){let b=a.request;return b?.subtype==="can_use_tool"?[{type:"permission_request",requestId:a.request_id,toolName:b.tool_name||"unknown",toolInput:b.input?JSON.stringify(b.input):"",rawToolInput:b.input,permissionSuggestions:b.permission_suggestions}]:[]}parseResultEvent(a){let b=a.result,c=a.uuid,d=a.subtype;return[{type:"message_done",message:{id:c||(0,i.A)(),role:"assistant",content:b||"",toolUses:[],blocks:[],timestamp:Date.now(),model:this.lastAssistantModel??void 0},interrupted:"error_during_execution"===d}]}constructor(){this.lastAssistantModel=null}}var p=c(51455),q=c(48161);let r=null,s=["PreToolUse","PostToolUse","Stop","StopFailure","UserPromptSubmit","UserPromptExpansion","SubagentStart","SubagentStop","Notification","PermissionRequest","PreCompact","PostCompact"];async function t(a){let b=function(){if(r)return r;let a=process.env.COCKPIT_HOOK_BRIDGE_BIN;if(a&&(0,f.existsSync)(a))return r=a,a;let b=h().resolve(process.cwd(),"bin","cockpit-hook-bridge.mjs");if((0,f.existsSync)(b))return r=b,b;throw Error(`cockpit-hook-bridge.mjs not found at ${b}`)}(),c=await v(),d=function(a){let b={};for(let d of s){var c;let e={type:"command",command:`node ${(c=a,/[\s"'\\$`]/.test(c)?`'${c.replace(/'/g,"'\\''")}'`:c)} ${d}`};"PermissionRequest"===d&&(e.timeout=86400),b[d]=[{matcher:"",hooks:[e]}]}return b}(b);for(let[a,b]of Object.entries(c.hooks??{}))Array.isArray(b)&&b.length>0&&d[a]&&(d[a]=[...b,...d[a]]);let e=Array.isArray(c.permissions?.allow)?c.permissions.allow:[],g=Array.isArray(c.permissions?.deny)?c.permissions.deny:[],i={...c,hooks:d,permissions:{...c.permissions??{},allow:[...e,...a.allowList??[]],deny:[...g,...a.denyList??[]]},skipDangerousModePermissionPrompt:!0},j=await y(),k=h().join(j,`${a.sessionId}.json`);return await (0,p.writeFile)(k,JSON.stringify(i,null,2),{mode:384}),{settingsPath:k,env:{COCKPIT_HOOK_URL:a.hookUrl,COCKPIT_HOOK_TOKEN:a.hookToken,COCKPIT_SESSION_ID:a.sessionId}}}async function u(a){let b=await y(),c=h().join(b,`${a}.json`);await (0,p.rm)(c,{force:!0})}async function v(){let a={};for(let b of[h().join((0,k.Wc)(),"settings.json"),h().join((0,k.Wc)(),"settings.local.json")])try{let c=await (0,p.readFile)(b,"utf-8"),d=JSON.parse(c);d&&"object"==typeof d&&!Array.isArray(d)&&(a=function a(b,c){let d={...b};for(let e of Object.keys(c)){let f=b[e],g=c[e];w(f)&&w(g)?d[e]=a(f,g):d[e]=g}return d}(a,d))}catch{}return a}function w(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}let x=null;async function y(){if(x)return x;let a=h().join((0,k.du)(),"hook-settings");try{return await (0,p.mkdir)(a,{recursive:!0}),x=a,a}catch{let a=h().join((0,q.tmpdir)(),"cockpit-hook-settings");return await (0,p.mkdir)(a,{recursive:!0}),x=a,a}}function z(a,b){var c,d,e,f,g,h;switch(a){case"PreToolUse":let j,k,l;return j=A((c=b).tool_name,"unknown"),k=c.tool_input,l=[{type:"system_message",text:"__tool_use_start"},{type:"tool_use_start",toolName:j,toolId:A(c.tool_use_id,"")||void 0,toolInput:k?JSON.stringify(k):""}],"EnterPlanMode"===j&&l.push({type:"system_message",text:"__permission_mode::plan"}),l;case"PostToolUse":let m,n,o,p;return m=A((d=b).tool_name,"unknown"),n=A(d.tool_use_id,""),o=d.tool_input,p=[{type:"tool_result",toolId:n||void 0,toolOutput:function(a){if(null==a)return"";if("string"==typeof a)return a;if("object"==typeof a){if("string"==typeof a.stdout){let b=a.stdout;return"string"==typeof a.stderr&&a.stderr.length>0&&(b+=`
|
|
2
|
-
${a.stderr}`),b}return"string"==typeof a.content?a.content:JSON.stringify(a)}return String(a)}(d.tool_response),filePath:function(a){if(a){if("string"==typeof a.file_path)return a.file_path;if("string"==typeof a.filePath)return a.filePath;if("string"==typeof a.path)return a.path}}(o)}],"ExitPlanMode"===m&&p.push({type:"system_message",text:"__permission_mode::standard"}),p;case"Stop":let q;return q=A(b.last_assistant_message,""),[{type:"message_done",message:{id:(0,i.A)(),role:"assistant",content:q,toolUses:[],blocks:[],timestamp:Date.now()}}];case"StopFailure":let r,s;return r=A((e=b).error_type,"unknown"),s=A(e.error_message,"Unknown error"),[{type:"message_done",message:{id:(0,i.A)(),role:"assistant",content:"",toolUses:[],blocks:[],timestamp:Date.now()}},{type:"system_message",text:`__stop_failure::${r}::${s}`}];case"PermissionRequest":let t,u;return t=A((f=b).tool_name,"unknown"),u=f.tool_input,[{type:"permission_request",requestId:(0,i.A)(),toolName:t,toolInput:u?JSON.stringify(u):"",rawToolInput:u}];case"Notification":let v;return(v=A(b.message,""))?[{type:"system_message",text:`__notification::${v}`}]:[];case"SubagentStart":let w,x,y;return w=A((g=b).session_id,(0,i.A)()),x=A(g.agent_id,""),[{type:"task_update",taskInfo:{taskId:w,toolUseId:x,status:"running",title:(y=A(g.agent_type,""))||"Agent",description:A(g.description,"")||y||"Subagent running"}}];case"SubagentStop":let z,B,C,D;return z=A((h=b).session_id,""),B=A(h.agent_id,""),C=A(h.agent_type,""),D=A(h.last_assistant_message,""),[{type:"task_update",taskInfo:{taskId:z,toolUseId:B,status:"completed",title:C||"Agent",description:A(h.description,"")||C||"Subagent completed",summary:D.slice(0,500)||void 0}}];case"PreCompact":return[{type:"system_message",text:"__compact::hook_start"}];case"PostCompact":return[{type:"system_message",text:"__compact::hook_done"}];case"UserPromptSubmit":case"UserPromptExpansion":return[]}}function A(a,b){return"string"==typeof a?a:b}var B=c(14566);class C{constructor(a){this.pty=null,this.buffer="",this.exited=!1,this.exitCode=null,this.opts=a,this.cols=a.cols??160,this.rows=a.rows??50}get pid(){return this.pty?.pid??-1}async start(){if(this.pty)throw Error("PtySession already started");let a=this.opts.bin??"claude",b=["--verbose","--settings",this.opts.settingsPath,...this.opts.extraArgs??[]],c={...process.env,...this.opts.env??{}};delete c.CLAUDECODE,delete c.CLAUDE_CODE_ENTRYPOINT;let d="darwin"===process.platform?"/bin/zsh":a,e="darwin"===process.platform?["-l","-c",`exec ${[a,...b].map(E).join(" ")}`]:b,g=`platform=${process.platform}, file=${d}, cwd=${this.opts.cwd}`;try{let a=(0,f.existsSync)(d);if(g+=`, exists=${a}`,a){let a=(0,f.realpathSync)(d),b=(0,f.statSync)(a),c=`0${(4095&b.mode).toString(8)}`;g+=`, realpath=${a}, mode=${c}, size=${b.size}`}}catch(a){g+=`, diagError=${a instanceof Error?a.message:String(a)}`}console.log(`[pty-session] spawn diagnostic: ${g}`),console.log(`[pty-session] spawn args: ${JSON.stringify(e).slice(0,500)}`),console.log(`[pty-session] PATH: ${c.PATH?.split(":").slice(0,10).join(":")}`);try{this.pty=(0,B.spawn)(d,e,{name:"xterm-256color",cols:this.cols,rows:this.rows,cwd:this.opts.cwd,env:c})}catch(a){throw console.error(`[pty-session] spawn failed: ${a instanceof Error?a.message:String(a)}`),console.error(`[pty-session] full diagnostic: ${g}`),a}this.pty.onData(a=>{this.buffer+=a,this.buffer.length>65536&&(this.buffer=this.buffer.slice(-32768)),this.opts.onData?.(a)}),this.pty.onExit(a=>{this.exited=!0,this.exitCode=a.exitCode,this.opts.onExit?.(a),this.pty=null}),await this.handleTrustDialog(),await this.waitForReplReady()}async sendText(a){let b=this.requirePty();b.write("\x15"),b.write(a),await D(300),b.write("\r")}sendSlash(a){let b=a.startsWith("/")?a:`/${a}`;this.requirePty().write(`${b}\r`)}sendKey(a){this.requirePty().write(a)}resize(a,b){this.pty&&(a!==this.cols||b!==this.rows)&&(this.cols=a,this.rows=b,this.pty.resize(a,b))}kill(a){if(this.pty){try{this.pty.kill(a)}catch{}this.pty=null}}requirePty(){if(!this.pty)throw Error("PtySession not started or already exited");return this.pty}cleanOutput(){return this.buffer.replace(/\x1b\[[0-9;]*[a-zA-Z]/g,"").replace(/\x1b[>=?][^\x1b]*/g,"")}async handleTrustDialog(){let a=Date.now()+5e3,b=!1;for(;Date.now()<a;){if(this.exited)return;let a=this.cleanOutput();if(a.includes("trust")||a.includes("Yes,")){this.requirePty().write("\r"),b=!0;break}if(a.length>100)break;await D(200)}b&&await D(2e3)}async waitForReplReady(){let a=Date.now()+6e4;for(;Date.now()<a;){if(this.exited)throw Error(`claude exited during startup (code=${this.exitCode}, output=${this.cleanOutput().slice(0,200)})`);if(this.cleanOutput().length>=100){if(await D(2e3),this.exited)throw Error(`claude exited during startup (code=${this.exitCode}, output=${this.cleanOutput().slice(0,200)})`);return}await D(200)}let b=this.cleanOutput();throw Error(`Timed out after 60000ms waiting for claude REPL (got ${b.length} bytes: ${b.slice(0,200)})`)}}function D(a){return new Promise(b=>setTimeout(b,a))}function E(a){return/[\s"'\\$`!#&|;()<>]/.test(a)?`'${a.replace(/'/g,"'\\''")}'`:a}let F=/\x1b\[[0-9;]*[a-zA-Z]/g;class G{constructor(a){this.pty=null,this.settingsPath=null,this.pendingPermissions=new Map,this.exited=!1,this.cleaned=!1,this.ptyOutputBuffer="",this.errorDebounce=null,this.opts=a}get pid(){return this.pty?.pid??-1}get isAlive(){return!!this.pty&&!this.exited}async start(a){let{sessionId:b,cwd:c,hookRouter:d}=this.opts,e=d.register(b,this.buildHandler()),{settingsPath:f,env:g}=await t({sessionId:b,hookUrl:d.getUrl(),hookToken:e,allowList:this.opts.allowList,denyList:this.opts.denyList});this.settingsPath=f,this.pty=new C({cwd:c,settingsPath:f,env:{...g,...this.opts.extraEnv??{}},extraArgs:this.opts.extraArgs,bin:this.opts.claudeBin,onData:a=>{this.scanForErrors(a),this.opts.onPtyData?.(a)},onExit:a=>{this.exited=!0,this.opts.onExit(a),this.cleanup().catch(()=>{})}});try{await this.pty.start()}catch(a){throw await this.cleanup(),a}a&&await this.pty.sendText(a),this.fetchInitData()}fetchInitData(){var a;let b,c,e=this.opts.sessionId.slice(0,8);console.log(`[pty-runtime] fetching CLI init data for session ${e}`),(b=(a={cwd:this.opts.cwd,bin:this.opts.claudeBin}).bin??"claude",c=["-p","--verbose","--output-format","stream-json","hi"],new Promise(e=>{let f=!1,g=a=>{if(!f){f=!0;try{h.kill()}catch{}e(a)}};console.log(`[cli-init-fetch] spawning: ${b} ${c.join(" ")} (cwd=${a.cwd})`);let h=(0,d.spawn)(b,c,{cwd:a.cwd,stdio:["ignore","pipe","pipe"]}),i="",j="";h.stdout.on("data",a=>{let b=(i+=a.toString()).split("\n");for(let a of(i=b.pop()||"",b))if(a.trim())try{let b=JSON.parse(a);if("system"===b.type&&"init"===b.subtype){let a=function(a){let b=a.slash_commands||[],c=a.skills||[],d=(a.agents||[]).map(a=>"string"==typeof a?{name:a}:{name:a.name||"",description:a.description}),e=a.claude_code_version||"",f=a.model||"";return{slashCommands:b,skills:c,agents:d,version:e,model:f,mcpServers:(a.mcp_servers||[]).map(a=>({name:a.name||"",status:a.status||""}))}}(b);console.log(`[cli-init-fetch] got init: ${a.slashCommands.length} commands, ${a.skills.length} skills`),g(a);return}}catch{}}),h.stderr?.on("data",a=>{(j+=a.toString()).length>2048&&(j=j.slice(-1024))}),h.on("close",a=>{console.log(`[cli-init-fetch] process exited code=${a}${j?` stderr=${j.slice(0,200)}`:""}`),g(null)}),h.on("error",a=>{console.log(`[cli-init-fetch] spawn error: ${a.message}`),g(null)}),setTimeout(()=>{console.log("[cli-init-fetch] timeout reached, giving up"),g(null)},3e4)})).then(a=>{a&&!this.exited?(console.log(`[pty-runtime] emitting init event for session ${e}: ${a.slashCommands.length} commands`),this.emit([{type:"init",initData:a}])):console.log(`[pty-runtime] init fetch returned ${a?"data but session exited":"null"} for session ${e}`)}).catch(a=>{console.log(`[pty-runtime] init fetch failed for session ${e}: ${a}`)})}async sendText(a){if(!this.pty)throw Error("PtyRuntime not started");await this.pty.sendText(a)}sendSlash(a){if(!this.pty)throw Error("PtyRuntime not started");this.pty.sendSlash(a)}sendKey(a){if(!this.pty)throw Error("PtyRuntime not started");this.pty.sendKey(a)}interrupt(){if(this.pty){for(let[,a]of(this.pty.sendKey("\x1b"),this.pendingPermissions))a({behavior:"deny",message:"interrupted"});this.pendingPermissions.clear()}}resize(a,b){this.pty?.resize(a,b)}async kill(a){for(let[,b]of(this.cancelErrorDebounce(),this.pty&&(this.pty.kill(a),this.pty=null),this.pendingPermissions))b({behavior:"deny",message:"session ended"});this.pendingPermissions.clear(),await this.cleanup()}notifyPermissionDecision(a,b){let c=this.pendingPermissions.get(a);return!!c&&(this.pendingPermissions.delete(a),c(b),!0)}buildHandler(){return{onPreToolUse:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.tool_name?a.tool_name:"unknown",c="string"==typeof a.session_id?a.session_id.slice(0,8):"none",d="string"==typeof a.tool_use_id?a.tool_use_id.slice(0,12):"none";console.log(`[pty-runtime] PreToolUse: tool=${b} cli_session=${c} tool_use_id=${d}`),this.emit(z("PreToolUse",a))},onPostToolUse:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.tool_name?a.tool_name:"unknown",c="string"==typeof a.session_id?a.session_id.slice(0,8):"none",d="string"==typeof a.tool_use_id?a.tool_use_id.slice(0,12):"none";console.log(`[pty-runtime] PostToolUse: tool=${b} cli_session=${c} tool_use_id=${d}`),this.emit(z("PostToolUse",a))},onStop:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",console.log(`[pty-runtime] Stop hook received for session ${this.opts.sessionId.slice(0,8)}`);let b=z("Stop",a);console.log(`[pty-runtime] Stop translated to ${b.length} events: [${b.map(a=>a.type).join(", ")}]`),this.emit(b)},onStopFailure:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.error_type?a.error_type:"unknown",c="string"==typeof a.error_message?a.error_message:"Unknown error";console.log(`[pty-runtime] StopFailure hook for session ${this.opts.sessionId.slice(0,8)}: ${b} - ${c}`),this.emit(z("StopFailure",a)),this.opts.onError(`${c} (${b})`)},onUserPromptSubmit:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",this.emit(z("UserPromptSubmit",a))},onUserPromptExpansion:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.command_name?a.command_name:"unknown",c=this.opts.sessionId.slice(0,8);console.log(`[pty-runtime] UserPromptExpansion: command=${b}, session=${c}`),this.emit(z("UserPromptExpansion",a))},onSubagentStart:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.session_id?a.session_id.slice(0,8):"none",c="string"==typeof a.tool_use_id?a.tool_use_id.slice(0,12):"none",d="string"==typeof a.agent_type?a.agent_type:"unknown",e="string"==typeof a.description?a.description.slice(0,80):"";console.log(`[pty-runtime] SubagentStart: cli_session=${b} tool_use_id=${c} type=${d} desc="${e}"`),console.log(`[pty-runtime] SubagentStart full payload keys: ${Object.keys(a).join(", ")}`),this.emit(z("SubagentStart",a))},onSubagentStop:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.session_id?a.session_id.slice(0,8):"none",c="string"==typeof a.tool_use_id?a.tool_use_id.slice(0,12):"none",d="string"==typeof a.agent_type?a.agent_type:"unknown";console.log(`[pty-runtime] SubagentStop: cli_session=${b} tool_use_id=${c} type=${d}`),console.log(`[pty-runtime] SubagentStop full payload keys: ${Object.keys(a).join(", ")}`),this.emit(z("SubagentStop",a))},onPreCompact:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",console.log(`[pty-runtime] PreCompact for session ${this.opts.sessionId.slice(0,8)}`),this.emit(z("PreCompact",a))},onPostCompact:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",console.log(`[pty-runtime] PostCompact for session ${this.opts.sessionId.slice(0,8)}`),this.emit(z("PostCompact",a))},onNotification:a=>{this.cancelErrorDebounce(),this.emit(z("Notification",a))},onPermissionRequest:a=>this.handlePermissionRequest(a)}}handlePermissionRequest(a){let b=(0,i.A)(),c="string"==typeof a.tool_name?a.tool_name:"unknown",d=a.tool_input,e={type:"permission_request",requestId:b,toolName:c,toolInput:d?JSON.stringify(d):"",rawToolInput:d};return new Promise(a=>{this.pendingPermissions.set(b,a);try{this.opts.onEvents([e])}catch(c){this.pendingPermissions.delete(b),a({behavior:"deny",message:`cockpit handler error: ${String(c)}`})}})}emit(a){if(0!==a.length)try{this.opts.onEvents(a)}catch(a){console.error(`[pty-runtime] onEvents threw for session ${this.opts.sessionId.slice(0,8)}:`,a),this.opts.onError(a instanceof Error?a.message:String(a))}}cancelErrorDebounce(){this.errorDebounce&&(clearTimeout(this.errorDebounce),this.errorDebounce=null)}scanForErrors(a){if(this.ptyOutputBuffer+=a,this.ptyOutputBuffer.length>8192&&(this.ptyOutputBuffer=this.ptyOutputBuffer.slice(-4096)),this.errorDebounce)return;let b=this.ptyOutputBuffer.replace(F,"").replace(/[\x00-\x1f]/g,""),c=b.match(/API\s*Error:\s*(\d+)\s*([^✓✗❯]*)/)||b.match(/APIError:\s*(\d+)\s*(.*)/);if(!c)return;let d=c[1],e=c[2].trim().slice(0,200),f=e?`${e} (HTTP ${d})`:`API Error (HTTP ${d})`;this.errorDebounce=setTimeout(()=>{this.errorDebounce=null,this.ptyOutputBuffer="",console.log(`[pty-runtime] API error detected for session ${this.opts.sessionId.slice(0,8)}: ${f}`);let a={type:"message_done",message:{id:(0,i.A)(),role:"assistant",content:"",toolUses:[],blocks:[],timestamp:Date.now()}};try{this.opts.onEvents([a])}catch{}this.opts.onError(f)},1e4)}async cleanup(){!this.cleaned&&(this.cleaned=!0,this.opts.hookRouter.unregister(this.opts.sessionId),this.settingsPath&&(await u(this.opts.sessionId).catch(()=>{}),this.settingsPath=null))}}var H=c(13470);let I=new Set(["ls","cat","head","tail","wc","grep","rg","find","pwd","which","type","whereis","file","stat","du","df","tree","date","echo","printf","env","printenv","basename","dirname","realpath","readlink","uname","whoami","hostname","id","dir","findstr","where","more","sort"]),J=new Set(["status","log","diff","show","blame","branch","remote","ls-files","ls-tree","rev-parse","describe","tag","reflog"]),K=[/^gh\s+pr\s+(list|view|diff|status|checks)\b/,/^gh\s+issue\s+(list|view|status)\b/,/^gh\s+repo\s+(list|view|clone)\b/,/^gh\s+run\s+(list|view|watch)\b/,/^gh\s+search\b/,/^gh\s+api\b(?!.*-X\s*(POST|PUT|PATCH|DELETE))(?!.*--method\s*(POST|PUT|PATCH|DELETE))/],L=new Set(["Edit","Write","Bash","NotebookEdit"]),M=new Set(["ExitPlanMode","AskUserQuestion","EnterPlanMode"]);function N(){return{pendingToolUses:[],pendingBlocks:[],agentStack:[],currentAssistantMsgId:null,flushedOnMessageDone:!1,thinkingStartedAt:null}}function O(a,b,c){let d={emit:[],systemMessages:[],errors:[],intermediateMessages:[],snapshot:null,permissionActions:[],compactDone:!1};for(let e of a){if(e.assistantMessageId&&e.assistantMessageId!==b.currentAssistantMsgId&&0===b.agentStack.length){if(b.currentAssistantMsgId&&b.pendingBlocks.length>0){let a=b.pendingBlocks.filter(a=>"text"===a.type).map(a=>a.text).join(""),c={id:b.currentAssistantMsgId,role:"assistant",content:a,toolUses:[...b.pendingToolUses],blocks:[...b.pendingBlocks],timestamp:Date.now()};d.intermediateMessages.push(c),b.pendingToolUses.length=0,b.pendingBlocks.length=0}b.currentAssistantMsgId=e.assistantMessageId}if("thinking"===e.type&&(e.text||e.redacted)){if(b.agentStack.length>0)continue;let a=null!=b.thinkingStartedAt?Date.now()-b.thinkingStartedAt:void 0;e.durationMs=a;let c=b.pendingBlocks[b.pendingBlocks.length-1];c&&"thinking"===c.type?(c.text+=e.text??"",e.redacted&&(c.redacted=!0),void 0!==a&&(c.durationMs=a)):b.pendingBlocks.push({type:"thinking",text:e.text??"",redacted:e.redacted,durationMs:a})}else if("text_delta"===e.type&&e.text){if(b.agentStack.length>0)continue;b.thinkingStartedAt=null;let a=b.pendingBlocks[b.pendingBlocks.length-1];a&&"text"===a.type?a.text+=e.text:b.pendingBlocks.push({type:"text",text:e.text})}else if("tool_use_start"===e.type){b.thinkingStartedAt=null;let a={id:e.toolId||"",name:e.toolName||"",input:e.toolInput||"",output:"",status:"running"},c="Agent"===a.name,d=e.assistantMessageId===b.currentAssistantMsgId;if(e.isMainThread=d,b.agentStack.length>0&&!d){let c=b.agentStack[b.agentStack.length-1];c.children||(c.children=[]),c.children.push(a)}else b.pendingToolUses.push(a),b.pendingBlocks.push({type:"tool_use",toolUse:a});c&&b.agentStack.push(a)}else if("tool_result"===e.type){let a=b.agentStack.findIndex(a=>a.id===e.toolId);if(-1!==a)b.agentStack[a].output=e.toolOutput||"",e.filePath&&(b.agentStack[a].filePath=e.filePath),b.agentStack[a].status="done",b.agentStack.splice(a,1);else if(b.agentStack.length>0)for(let a of b.agentStack){let b=a.children?.find(a=>a.id===e.toolId);if(b){b.output=e.toolOutput||"",e.filePath&&(b.filePath=e.filePath),b.status="done";break}}else{let a=b.pendingToolUses.find(a=>a.id===e.toolId);a&&(a.output=e.toolOutput||"",e.filePath&&(a.filePath=e.filePath),a.status="done")}b.thinkingStartedAt=Date.now()}else if("tool_progress"===e.type&&e.toolId&&e.text){let a=b.agentStack.find(a=>a.id===e.toolId);if(a)a.output+=e.text;else if(b.agentStack.length>0){let a=!1;for(let c of b.agentStack){let b=c.children?.find(a=>a.id===e.toolId);if(b){b.output+=e.text,a=!0;break}}if(!a){let a=b.pendingToolUses.find(a=>a.id===e.toolId);a&&(a.output+=e.text)}}else{let a=b.pendingToolUses.find(a=>a.id===e.toolId);a&&(a.output+=e.text)}}else if("system_message"===e.type&&e.text){if(e.text.startsWith("__permission_mode::")){d.systemMessages.push(e.text);continue}d.systemMessages.push(e.text)}else if("message_done"===e.type&&e.message){if(b.thinkingStartedAt=null,console.log(`[stream-processor] message_done: interrupted=${!!e.interrupted}, pendingBlocks=${b.pendingBlocks.length}, pendingToolUses=${b.pendingToolUses.length}, currentMsgId=${b.currentAssistantMsgId?.slice(0,8)??"null"}, clearPending=${!!e.clearPending}`),e.interrupted){b.currentAssistantMsgId&&(e.message.id=b.currentAssistantMsgId),b.pendingBlocks.length>0&&(e.message.blocks=[...b.pendingBlocks],e.message.content=b.pendingBlocks.filter(a=>"text"===a.type).map(a=>a.text).join("")),b.pendingToolUses.length>0&&0===e.message.toolUses.length&&(e.message.toolUses=[...b.pendingToolUses]),b.pendingBlocks.length=0,b.pendingToolUses.length=0,b.agentStack.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",b.flushedOnMessageDone=!0,d.emit.push(e),d.snapshot=null;continue}if(0===b.pendingBlocks.length&&0===b.pendingToolUses.length&&b.currentAssistantMsgId){b.currentAssistantMsgId=null,d.statusChange="idle",c.compacting&&(d.compactDone=!0),b.flushedOnMessageDone=!0,d.snapshot=null;continue}if(e.clearPending)b.pendingToolUses.length=0,b.pendingBlocks.length=0,b.agentStack.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",c.compacting&&(d.compactDone=!0),b.flushedOnMessageDone=!0;else{b.currentAssistantMsgId&&(e.message.id=b.currentAssistantMsgId);let a=b.pendingBlocks.some(a=>"text"===a.type);if(e.message.content&&!a&&b.pendingBlocks.push({type:"text",text:e.message.content}),0===b.pendingToolUses.length){let a=b.pendingBlocks.filter(a=>"text"===a.type).map(a=>a.text).join("").trim();if("No response requested."===a){b.pendingBlocks.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",b.flushedOnMessageDone=!0,d.snapshot=null;continue}let c=a.match(/^API Error: (\d+)\s/);if(c){let e=a.match(/"message"\s*:\s*"([^"]+)"/),f=e?`${e[1]} (HTTP ${c[1]})`:a.slice(0,200);b.pendingBlocks.length=0,b.pendingToolUses.length=0,b.agentStack.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",d.errors.push(f),b.flushedOnMessageDone=!0,d.snapshot=null;continue}}e.message.blocks=[...b.pendingBlocks],0===e.message.toolUses.length&&b.pendingToolUses.length>0&&(e.message.toolUses=[...b.pendingToolUses]),b.pendingToolUses.length=0,b.pendingBlocks.length=0,b.agentStack.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",c.compacting&&(d.compactDone=!0),b.flushedOnMessageDone=!0}}if("permission_request"===e.type&&e.requestId){let a=e.toolName||"";if(c.planMode){if("Bash"===a){if(function(a){let b=a.trim();if(!b||/(?:;|&&|\|\||>|<|`|\$\(|<\()/.test(b)||/(?:^|[^|])&(?!&)/.test(b))return!1;let c=b.split("|").map(a=>a.trim()).filter(Boolean);if(!c.length)return!1;for(let a of c){let[b,c]=a.split(/\s+/);if("git"===b){if(!c||!J.has(c))return!1;continue}if(!I.has(b))return!1}return!0}(e.rawToolInput?.command??"")){d.permissionActions.push({type:"auto_approve",requestId:e.requestId,toolName:a,rawToolInput:e.rawToolInput});continue}d.permissionActions.push({type:"auto_deny",requestId:e.requestId,toolName:a,denyReason:"Cockpit plan mode: Bash is restricted to read-only commands (ls, cat, head, tail, wc, grep, rg, find, stat, file, du, df, tree, git status/log/diff/show/blame, etc.). Shell operators ';', '&&', '||', '>', '<', '$(...)', backticks are not allowed. Use Read/Grep/Glob for file access, or call ExitPlanMode when ready to implement."});continue}if(L.has(a)){d.permissionActions.push({type:"auto_deny",requestId:e.requestId,toolName:a,denyReason:`Cockpit plan mode: ${a} is blocked. Plan mode is read-only; call ExitPlanMode to submit the plan before making changes.`});continue}if(!M.has(a)){d.permissionActions.push({type:"auto_approve",requestId:e.requestId,toolName:a,rawToolInput:e.rawToolInput});continue}}if("Bash"===a&&e.rawToolInput){let b=e.rawToolInput.command||"";if(b.trimStart().startsWith("gh ")&&function(a){let b=a.trim();return K.some(a=>a.test(b))}(b)){d.permissionActions.push({type:"auto_approve",requestId:e.requestId,toolName:a,rawToolInput:e.rawToolInput});continue}}d.permissionActions.push({type:"store",requestId:e.requestId,toolName:a,toolInput:e.toolInput,rawToolInput:e.rawToolInput,permissionSuggestions:e.permissionSuggestions})}d.emit.push(e),d.snapshot=function(a){if(a.currentAssistantMsgId&&a.pendingBlocks.length>0){let b=a.pendingBlocks.filter(a=>"text"===a.type).map(a=>a.text).join("");return{messageId:a.currentAssistantMsgId,content:b,toolUses:a.pendingToolUses.map(a=>({...a,children:a.children?[...a.children]:void 0})),blocks:a.pendingBlocks.map(a=>"tool_use"===a.type?{...a,toolUse:{...a.toolUse}}:{...a})}}return null}(b)}return d.statusChange&&console.log(`[stream-processor] statusChange=${d.statusChange}, emitting ${d.emit.length} events: [${d.emit.map(a=>a.type).join(", ")}]`),d}class P{constructor(a,b){this.cliSessionId=a,this.onUpdate=b,this.watchers=[],this.polling=!1,this.timer=null,this.lastJson="",this.stopped=!1;const c=(0,k.Wc)();this.todosDir=(0,g.join)(c,"todos"),this.tasksDir=(0,g.join)(c,"tasks",a)}start(){this.watchDir(this.todosDir),this.watchDir(this.tasksDir),this.reload()}stop(){for(let a of(this.stopped=!0,this.timer&&(clearTimeout(this.timer),this.timer=null),this.watchers))a.close();if(this.watchers=[],this.polling){try{(0,f.unwatchFile)(this.todosDir)}catch{}try{(0,f.unwatchFile)(this.tasksDir)}catch{}this.polling=!1}}watchDir(a){if(!(0,f.existsSync)(a))return void this.pollDir(a);try{let b=(0,f.watch)(a,()=>this.scheduleReload());this.watchers.push(b)}catch{this.pollDir(a)}}pollDir(a){this.polling=!0,(0,f.watchFile)(a,{interval:1e3},()=>{if(!this.stopped){if((0,f.existsSync)(a)){(0,f.unwatchFile)(a);try{let b=(0,f.watch)(a,()=>this.scheduleReload());this.watchers.push(b)}catch{}}this.scheduleReload()}})}scheduleReload(){this.stopped||(this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>this.reload(),300))}readOnce(){let a=this.readTodos(),b=this.readTasks();return a.length>0?a:b}reload(){let a=this.readTodos(),b=this.readTasks(),c=a.length>0?a:b;if(0===c.length&&""===this.lastJson)return;let d=JSON.stringify(c);d!==this.lastJson&&(this.lastJson=d,this.onUpdate(c))}readTodos(){try{if(!(0,f.existsSync)(this.todosDir))return[];let a=`${this.cliSessionId}-agent-`,b=(0,f.readdirSync)(this.todosDir).filter(b=>b.startsWith(a)&&b.endsWith(".json"));if(0===b.length)return[];let c=b.sort().pop(),d=JSON.parse((0,f.readFileSync)((0,g.join)(this.todosDir,c),"utf-8"));if(!Array.isArray(d))return[];return d.filter(a=>a.content&&a.status).map(a=>({content:a.content,status:a.status,activeForm:a.activeForm||void 0}))}catch{return[]}}readTasks(){try{if(!(0,f.existsSync)(this.tasksDir))return[];let b=(0,f.readdirSync)(this.tasksDir).filter(a=>a.endsWith(".json"));if(0===b.length)return[];let c=[];for(let d of b)try{var a;let b=JSON.parse((0,f.readFileSync)((0,g.join)(this.tasksDir,d),"utf-8"));if("deleted"===b.status)continue;c.push({content:b.subject||b.description||"",status:(a=b.status,"in_progress"===a?"in_progress":"completed"===a?"completed":"pending"),activeForm:b.activeForm||void 0})}catch{}return c}catch{return[]}}}var Q=c(16987);class R{constructor(a,b,c){this.sessionId=a,this.cwd=b,this.onUpdate=c,this.watcher=null,this.polling=!1,this.timer=null,this.lastSize=0,this.stopped=!1,this.filePath=(0,Q.kw)(a,b)}start(){(0,f.existsSync)(this.filePath)?this.watchWithInotify():this.watchWithPoll()}async stop(){this.stopped=!0,this.timer&&(clearTimeout(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.polling&&((0,f.unwatchFile)(this.filePath),this.polling=!1),await this.reload()}watchWithInotify(){try{this.watcher=(0,f.watch)(this.filePath,()=>this.scheduleReload())}catch{this.watchWithPoll()}}watchWithPoll(){this.polling=!0,(0,f.watchFile)(this.filePath,{interval:500},()=>{this.stopped||(!this.watcher&&(0,f.existsSync)(this.filePath)&&((0,f.unwatchFile)(this.filePath),this.polling=!1,this.watchWithInotify()),this.scheduleReload())})}scheduleReload(){this.stopped||(this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>this.reload(),250))}async reload(){try{let a=await (0,Q.vi)(this.sessionId,this.cwd,{tailLines:150});a.totalSize!==this.lastSize&&(this.lastSize=a.totalSize,this.onUpdate(a.messages,a.lastUsage))}catch{this.stopped||(this.timer=setTimeout(()=>this.reload(),100))}}}let S=null;function T(){if(S)return S;let a="win32"===process.platform?"where":"which";try{S=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{S="claude"}return S}let U=(a,b)=>{if(!(0,m.TT)())return;let c=new Date().toISOString().slice(11,23),d=a.slice(0,8);console.log(`[session:${d}] ${c} ${b}`)};class V{constructor(){this.sessions=new Map,setInterval(()=>{for(let[a,b]of this.sessions)if("running"===b.info.status&&!b.process&&!b.ptyRuntime?.isAlive){let c=a.slice(0,8);(0,m.cY)(`[session:${c}] stale check: status=running but no live process, correcting to idle`),(0,m._N)(a,"idle:stale-check"),b.info.status="idle",b.emitter.emit("status",a,"idle")}},15e3)}createSession(a,b,c){let d=(0,i.A)(),f=Date.now(),g=(0,n.r)(),k={main:g.modelSlots.main??"sonnet"},l=c?.runtime??"stream",m={id:d,name:b||h().basename(a)||a,cwd:a,createdAt:f,lastActiveAt:f,status:"idle",model:k.main,contextSize:g.modelSlots?.mainContext??j.w6,runtime:l,pendingRequestCount:0};return this.sessions.set(d,{info:m,process:null,stdin:null,emitter:new e.EventEmitter,hasSpawnedBefore:!1,cliSessionId:d,previousCliSessionIds:[],bypassAllPermissions:c?.bypassPermissions??g.bypassAllPermissions,planMode:!1,needsRespawnForPermissions:!1,compacting:!1,thinkingLevel:g.thinkingLevel,streamState:null,contextUsage:null,contextWindowSize:(0,j.oh)(m.contextSize??j.w6),todoItems:[],pendingRequests:new Map,controlCallbacks:new Map,streamingSnapshot:null,queuedMessages:[],queuePaused:!1,modelSlots:k,transcriptBuffer:[],transcriptByteOffset:0,transcriptTotalSize:0,bufferCliSessionId:d,paginationPrevIds:[],runtime:l,ptyRuntime:null,transcriptWatcher:null,todoWatcher:null,attachmentPaths:[],totalTokens:{input:0,output:0,cacheCreate:0,cacheRead:0}}),(0,H.JG)(d,{runtime:l}),m}ensureSession(a,b){let c=this.sessions.get(a);if(!c){let d=(0,H.XP)(a),f=d?.cliSessionId||a,g=d?.previousCliSessionIds||[],i=a.slice(0,8);(0,m.cY)(`[session:${i}] ensureSession: cliSessionId=${f.slice(0,8)}, prevIds=[${g.map(a=>a.slice(0,8)).join(",")}], hasPrefs=${!!d}`);let k=(0,n.r)(),l=Date.now(),o=d?.modelSlots??(d?.model?{main:d.model}:{main:k.modelSlots.main??"sonnet"}),p=d?.runtime??"stream",q=d?.contextSize??d?.modelSlots?.mainContext??j.w6;c={info:{id:a,name:d?.name||h().basename(b)||b,cwd:b,createdAt:l,lastActiveAt:l,status:"idle",model:o.main,contextSize:q,runtime:p,pendingRequestCount:0},process:null,stdin:null,emitter:new e.EventEmitter,hasSpawnedBefore:!0,cliSessionId:f,previousCliSessionIds:g,bypassAllPermissions:d?.bypassAllPermissions??k.bypassAllPermissions,planMode:d?.planMode??!1,pendingPlanReminder:d?.planMode??!1,needsRespawnForPermissions:!1,compacting:!1,thinkingLevel:d?.thinkingLevel??(0,j.Mi)((0,j.AX)((d?.model||k.modelSlots.main)??"sonnet"))??k.thinkingLevel,streamState:null,contextUsage:null,contextWindowSize:(0,j.oh)(q),todoItems:[],pendingRequests:new Map,controlCallbacks:new Map,initData:d?.initData,streamingSnapshot:null,queuedMessages:[],queuePaused:!1,modelSlots:o,transcriptBuffer:[],transcriptByteOffset:0,transcriptTotalSize:0,bufferCliSessionId:f,paginationPrevIds:[],runtime:p,ptyRuntime:null,transcriptWatcher:null,todoWatcher:null,attachmentPaths:[],totalTokens:{input:0,output:0,cacheCreate:0,cacheRead:0}},this.sessions.set(a,c)}return c}async getSession(a){let b=this.sessions.get(a);if(!b){let c=(0,H.XP)(a),d=await (0,Q.gT)(c?.cliSessionId||a)||await (0,Q.gT)(a);if(!d)return null;this.ensureSession(a,d),b=this.sessions.get(a)}let c=(0,n.r)().messageStitching,d=c&&b.previousCliSessionIds.length>0,{messages:e,byteOffset:f,totalSize:g,lastUsage:i}=await (0,Q.vi)(b.cliSessionId,b.info.cwd,d?void 0:{tailLines:150});if(b.bufferCliSessionId=b.cliSessionId,d)for(let a=b.previousCliSessionIds.length-1;a>=0;a--){let c=b.previousCliSessionIds[a],d=await (0,Q.vi)(c,b.info.cwd,{tailLines:150});if(d.messages.length>0){let g={id:`clear-boundary-${a}`,role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};e=[...d.messages,g,...e],f=d.byteOffset,i=i||d.lastUsage,b.bufferCliSessionId=c}}b.transcriptBuffer=e,b.transcriptByteOffset=f,b.transcriptTotalSize=g,b.paginationPrevIds=c?[...b.previousCliSessionIds]:[];let j=e.length>50?e.slice(-50):e,k=e.length>50||f>0||c&&b.previousCliSessionIds.length>0,l=h().basename(b.info.cwd)||b.info.cwd;if(b.info.name===l&&e.length>0){let a=e.find(a=>"user"===a.role&&a.content&&!a.content.startsWith("[")&&!a.content.startsWith("<"));a&&(b.info.name=a.content.slice(0,120))}let m=[...b.previousCliSessionIds,b.cliSessionId],o=await Promise.all(m.map(a=>(0,Q.tS)(a,b.info.cwd))),p=new Set,q=[];for(let a of o)for(let b of a)p.has(b)||(p.add(b),q.push(b));let r=i?{used:i.used,total:b.contextWindowSize}:null;return{info:b.info,messages:j,hasMore:k,lastUsage:r,promptHistory:q}}async getSessionByCwd(a,b){this.ensureSession(a,b);let c=this.sessions.get(a),d=(0,n.r)().messageStitching,e=d&&c.previousCliSessionIds.length>0,{messages:f,byteOffset:g,totalSize:i,lastUsage:j}=await (0,Q.vi)(c.cliSessionId,b,e?void 0:{tailLines:150});if(c.bufferCliSessionId=c.cliSessionId,e)for(let a=c.previousCliSessionIds.length-1;a>=0;a--){let d=c.previousCliSessionIds[a],e=await (0,Q.vi)(d,b,{tailLines:150});if(e.messages.length>0){let b={id:`clear-boundary-${a}`,role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};f=[...e.messages,b,...f],g=e.byteOffset,j=j||e.lastUsage,c.bufferCliSessionId=d}}c.transcriptBuffer=f,c.transcriptByteOffset=g,c.transcriptTotalSize=i,c.paginationPrevIds=d?[...c.previousCliSessionIds]:[];let k=f.length>50?f.slice(-50):f,l=f.length>50||g>0||d&&c.previousCliSessionIds.length>0,m=h().basename(b)||b;if(c.info.name===m&&f.length>0){let a=f.find(a=>"user"===a.role&&a.content&&!a.content.startsWith("[")&&!a.content.startsWith("<"));a&&(c.info.name=a.content.slice(0,120))}let o=[...c.previousCliSessionIds,c.cliSessionId],p=await Promise.all(o.map(a=>(0,Q.tS)(a,b))),q=new Set,r=[];for(let a of p)for(let b of a)q.has(b)||(q.add(b),r.push(b));let s=j?{used:j.used,total:c.contextWindowSize}:null;return{info:c.info,messages:k,hasMore:l,lastUsage:s,promptHistory:r}}async getCliSessionView(a,b){if(!(0,Q.Br)(a,b))return null;let c=(0,H.Kw)(a),d=c?c.truncatedPrevIds:[],e=(0,n.r)().messageStitching&&d.length>0,{messages:f,lastUsage:g}=await (0,Q.vi)(a,b,e?void 0:{tailLines:150});if(e)for(let a=d.length-1;a>=0;a--){let c=await (0,Q.vi)(d[a],b,{tailLines:150});if(c.messages.length>0){let b={id:`clear-boundary-${a}`,role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};f=[...c.messages,b,...f],g=g||c.lastUsage}}let i=f.length>50?f.slice(-50):f,k=h().basename(b)||b;if(f.length>0){let a=f.find(a=>"user"===a.role&&a.content&&!a.content.startsWith("[")&&!a.content.startsWith("<"));a&&(k=a.content.slice(0,120))}let l=[...d,a],m=await Promise.all(l.map(a=>(0,Q.tS)(a,b))),o=new Set,p=[];for(let a of m)for(let b of a)o.has(b)||(o.add(b),p.push(b));let q=(0,H.XP)(a),r=q?.contextSize??q?.modelSlots?.mainContext??j.w6,s=g?{used:g.used,total:(0,j.oh)(r)}:null;return{info:{id:a,name:k,cwd:b,createdAt:Date.now(),lastActiveAt:Date.now(),status:"idle"},messages:i,hasMore:f.length>50,lastUsage:s,promptHistory:p}}async getMoreHistory(a,b){let c=this.sessions.get(a);if(!c)return{messages:[],hasMore:!1};let d=c.paginationPrevIds,e=c.transcriptBuffer,f=e.findIndex(a=>a.id===b);if(f>0){let a=Math.max(0,f-50);return{messages:e.slice(a,f),hasMore:a>0||c.transcriptByteOffset>0||d.length>0}}if(c.transcriptByteOffset<=0){for(;d.length>0&&d[d.length-1]===c.bufferCliSessionId;)d.pop();if(0===d.length)return{messages:[],hasMore:!1};let a=d[d.length-1],f=await (0,Q.vi)(a,c.info.cwd,{tailLines:150});d.pop(),c.transcriptByteOffset=f.byteOffset,c.bufferCliSessionId=a,c.transcriptBuffer=[...f.messages,...e];let g=c.transcriptBuffer,h=g.findIndex(a=>a.id===b);if(h>0){let a=Math.max(0,h-50);return{messages:g.slice(a,h),hasMore:a>0||c.transcriptByteOffset>0||d.length>0}}return{messages:f.messages.slice(-50),hasMore:f.byteOffset>0||d.length>0}}let g=c.info.cwd,h=await (0,Q.y)(c.bufferCliSessionId,g,c.transcriptByteOffset,150);c.transcriptByteOffset=h.newByteOffset,c.transcriptBuffer=[...h.messages,...e];let i=c.transcriptBuffer,j=i.findIndex(a=>a.id===b);if(j>0){let a=Math.max(0,j-50);return{messages:i.slice(a,j),hasMore:a>0||c.transcriptByteOffset>0||d.length>0}}return{messages:h.messages.slice(-50),hasMore:h.newByteOffset>0||d.length>0}}getTranscriptBuffer(a){return this.sessions.get(a)?.transcriptBuffer??[]}getStreamingSnapshot(a){return this.sessions.get(a)?.streamingSnapshot??null}isCompacting(a){return this.sessions.get(a)?.compacting??!1}getRuntime(a){return this.sessions.get(a)?.runtime??"stream"}getSessionCwd(a){return this.sessions.get(a)?.info.cwd??null}getCliSessionId(a){return this.sessions.get(a)?.cliSessionId??null}getSessionModel(a){return this.sessions.get(a)?.info.model??null}listActiveSessions(){return Array.from(this.sessions.values()).filter(a=>null!==a.process||!!a.ptyRuntime?.isAlive).map(a=>a.info)}listKnownSessions(){return Array.from(this.sessions.values()).map(a=>a.info)}getKnownMcpServers(){let a=new Set;for(let b of this.sessions.values())for(let c of b.initData?.mcpServers||[])a.add(c.name);if(0===a.size)for(let b of function(){try{let a=W();if(!(0,f.existsSync)(a))return[];return JSON.parse((0,f.readFileSync)(a,"utf-8"))}catch{return[]}}())a.add(b);return Array.from(a)}isProcessAlive(a){let b=this.sessions.get(a);return!!b?.process||!!b?.ptyRuntime?.isAlive}hasRunningProcess(a){let b=this.sessions.get(a);return!!b?.process||!!b?.ptyRuntime?.isAlive}fixStaleStatus(a){let b=this.sessions.get(a);!b||"running"!==b.info.status||b.process||b.ptyRuntime?.isAlive||(b.info.status="idle",b.pendingRequests.clear(),this.notifyPendingChanged(b,a))}restartSession(a){let b=this.sessions.get(a);return!!b&&("running"===b.info.status?(this.emitSystem(b,a,"Cannot restart while running. Interrupt first."),!1):(this.killProcess(b),(0,Q.Br)(b.cliSessionId,b.info.cwd)||(b.hasSpawnedBefore=!1),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),b.streamingSnapshot=null,b.info.status="idle",b.emitter.emit("status",a,"idle"),this.spawnProcess(b,a),this.emitSystem(b,a,"Session restarted — agents and commands reloaded"),!0))}destroySession(a){let b=this.sessions.get(a);if(!b)return!1;if(b.process&&this.endProcess(b,"session_destroyed"),b.ptyRuntime){let a=b.ptyRuntime;b.ptyRuntime=null,a.kill().catch(()=>{})}return b.transcriptWatcher&&(b.transcriptWatcher.stop(),b.transcriptWatcher=null),b.todoWatcher&&(b.todoWatcher.stop(),b.todoWatcher=null),this.cleanupAttachments(b),b.emitter.removeAllListeners(),this.sessions.delete(a),!0}subscribe(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>{b(c)};return c.emitter.on("event",d),()=>c.emitter.off("event",d)}onStatus(a,b){let c=this.sessions.get(a);if(!c)return U(a,"onStatus: session not in memory, returning null"),null;let d=(a,c)=>{b(c)};return c.emitter.on("status",d),()=>c.emitter.off("status",d)}onPending(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>{b(c)};return c.emitter.on("pending",d),()=>c.emitter.off("pending",d)}onError(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>{b(c)};return c.emitter.on("error",d),()=>c.emitter.off("error",d)}onTranscript(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("transcript",d),()=>c.emitter.off("transcript",d)}interrupt(a){let b=this.sessions.get(a);if(!b)return(0,m._N)(a,"interrupt:no-process",{hasSession:!1}),!1;if(b.queuedMessages.length>0&&(b.queuePaused=!0),"pty"===b.runtime)return b.ptyRuntime?.isAlive?((0,m._N)(a,"interrupt:pty-esc"),b.ptyRuntime.interrupt(),"running"===b.info.status&&(b.info.status="idle",b.streamingSnapshot=null,b.streamState&&(b.streamState.pendingBlocks.length=0,b.streamState.pendingToolUses.length=0,b.streamState.agentStack.length=0,b.streamState.currentAssistantMsgId=null,b.streamState.flushedOnMessageDone=!1),b.emitter.emit("status",a,"idle")),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),!0):((0,m._N)(a,"interrupt:no-pty"),!1);if(!b.process)return(0,m._N)(a,"interrupt:no-process",{hasSession:!0}),!1;if(b.stdin){let c={type:"control_request",request_id:`interrupt-${Date.now()}`,request:{subtype:"interrupt"}};return(0,m._N)(a,"interrupt:stdin",{requestId:c.request_id}),b.stdin.write(JSON.stringify(c)+"\n"),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),!0}return(0,m._N)(a,"interrupt:kill-fallback"),this.killProcessGroup(b.process),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),!0}addPendingRequest(a,b){let c=this.sessions.get(a);c&&(c.pendingRequests.set(b.requestId,b),this.notifyPendingChanged(c,a))}removePendingRequest(a,b){let c=this.sessions.get(a);if(c){let d=c.pendingRequests.has(b),e=c.pendingRequests.get(b)?.type==="question";c.pendingRequests.delete(b),e&&console.log(`[question-debug] removePendingRequest: session=${a.slice(0,8)}, requestId=${b}, existed=${d}, remaining=${c.pendingRequests.size}`),this.notifyPendingChanged(c,a)}}getPendingRequests(a){let b=this.sessions.get(a);return b?Array.from(b.pendingRequests.values()):[]}getPendingRequest(a,b){return this.sessions.get(a)?.pendingRequests.get(b)}respondToPermission(a,b,c,d,e,f){let g=this.sessions.get(a);if(!g)return!1;if("pty"===g.runtime)return!!g.ptyRuntime?.isAlive&&(g.pendingRequests.delete(b),this.notifyPendingChanged(g,a),g.ptyRuntime.notifyPermissionDecision(b,c?{behavior:"allow",...d?{updatedInput:d}:{}}:{behavior:"deny",message:f??"User denied"}));if(!g.stdin)return!1;g.pendingRequests.delete(b),this.notifyPendingChanged(g,a);let h={type:"control_response",response:{subtype:"success",request_id:b,response:c?{behavior:"allow",updatedInput:d??{},...e?.length?{updatedPermissions:e}:{}}:{behavior:"deny",message:f??"User denied"}}};return g.stdin.write(JSON.stringify(h)+"\n"),!0}sendPermissionMode(a,b,c){if(!a.stdin)return;let d={type:"control_request",request_id:`perm-${Date.now()}`,request:{subtype:"set_permission_mode",mode:c}};this.log(b,`sending set_permission_mode: ${c}`),a.stdin.write(JSON.stringify(d)+"\n")}setBypassAllPermissions(a){let b=this.sessions.get(a);b&&!b.bypassAllPermissions&&(b.bypassAllPermissions=!0,(0,H.JG)(a,{bypassAllPermissions:!0}),b.planMode||(this.sendPermissionMode(b,a,"bypassPermissions"),this.scheduleRespawnForPermissions(b)),this.emitSystem(b,a,"__bypass_state::on"))}clearBypassAllPermissions(a){let b=this.sessions.get(a);b?.bypassAllPermissions&&(b.bypassAllPermissions=!1,(0,H.JG)(a,{bypassAllPermissions:!1}),b.planMode||(this.sendPermissionMode(b,a,"default"),this.scheduleRespawnForPermissions(b)),this.emitSystem(b,a,"__bypass_state::off"))}scheduleRespawnForPermissions(a){(a.process||a.ptyRuntime?.isAlive)&&("idle"===a.info.status?(this.killProcess(a),a.hasSpawnedBefore=(0,Q.Br)(a.cliSessionId,a.info.cwd)):a.needsRespawnForPermissions=!0)}setRuntime(a,b){let c=this.sessions.get(a);return!!c&&c.runtime!==b&&(c.runtime=b,c.info.runtime=b,(0,H.JG)(a,{runtime:b}),this.killProcess(c),this.emitInfoUpdated(c,a),!0)}isBypassActive(a){let b=this.sessions.get(a);return b?.bypassAllPermissions??!1}setPlanMode(a){let b=this.sessions.get(a);b&&(b.planMode=!0,b.pendingPlanReminder=!0,(0,H.JG)(a,{planMode:!0}),(b.process||b.ptyRuntime?.isAlive)&&(this.killProcess(b),b.info.status="idle",b.emitter.emit("status",a,"idle")),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),this.emitSystem(b,a,"__plan_state::on"))}clearPlanMode(a){let b=this.sessions.get(a);b?.planMode&&(b.planMode=!1,(0,H.JG)(a,{planMode:!1}),(b.process||b.ptyRuntime?.isAlive)&&(this.killProcess(b),b.info.status="idle",b.emitter.emit("status",a,"idle")),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),this.emitSystem(b,a,"__plan_state::off"),b.bypassAllPermissions&&this.emitSystem(b,a,"__bypass_state::on"))}isPlanModeActive(a){let b=this.sessions.get(a);return b?.planMode??!1}setModel(a,b,c){let d,e,f=this.sessions.get(a);if(this.log(a,`setModel: requested=${b} size=${c??"(unspecified)"}, current=${f?.info.model} currentSize=${f?.info.contextSize??"(unset)"}, hasStdin=${!!f?.stdin}, hasPty=${!!f?.ptyRuntime}`),!f)return;let g=f.info.contextSize??j.w6,h=c??g,i=(d=(0,j.AX)(b)?.contextSizes)&&0!==d.length?d.includes(h)?h:d[0]:h,k=g!==i;if(f.info.model===b&&!k)return void this.log(a,`setModel: skipping (already ${b} with size ${i})`);f.info.model=b,f.info.contextSize=i,f.modelSlots={...f.modelSlots,main:b,mainContext:i},(0,H.JG)(a,{model:b,contextSize:i,modelSlots:f.modelSlots});let l=(0,j.AX)(b),m=l?(0,j.i3)(f.thinkingLevel,l):0===(e=this.modelEffortLevels(b)).length?null:e.includes(f.thinkingLevel)?f.thinkingLevel:e[e.length-1];if(null!==m&&m!==f.thinkingLevel&&(f.thinkingLevel=m,(0,H.JG)(a,{thinkingLevel:m}),this.emitSystem(f,a,`__thinking_level::${m}`)),f.stdin&&!k){this.log(a,`setModel: sending control_request set_model=${b}`);let c={type:"control_request",request_id:`model-${Date.now()}`,request:{subtype:"set_model",model:b}};if(f.stdin.write(JSON.stringify(c)+"\n"),this.modelEffortLevels(b).length>0){let a={type:"control_request",request_id:`effort-${Date.now()}`,request:{subtype:"apply_flag_settings",settings:{effort:f.thinkingLevel}}};f.stdin.write(JSON.stringify(a)+"\n")}}else this.log(a,`setModel: killing process (hasStdin=${!!f.stdin}, contextChanged=${k})`),this.killProcess(f),(0,Q.Br)(f.cliSessionId,f.info.cwd)||(f.hasSpawnedBefore=!1),f.queuedMessages.length=0,f.queuePaused=!1,f.info.status="idle",f.emitter.emit("status",a,"idle");this.emitInfoUpdated(f,a),k&&(f.contextWindowSize=(0,j.oh)(i));let n=f.contextUsage;n&&f.emitter.emit("usage",a,{used:n.used,total:f.contextWindowSize})}setModelSlot(a,b,c){let d=this.sessions.get(a);if(!d)return;let e={...d.modelSlots};e[b]=c,d.modelSlots=e,(0,H.JG)(a,{modelSlots:e}),"main"===b?this.setModel(a,c):(this.killProcess(d),d.queuedMessages.length=0,d.queuePaused=!1,d.info.status="idle",d.emitter.emit("status",a,"idle"),this.emitInfoUpdated(d,a))}getModel(a){return this.sessions.get(a)?.info.model||"sonnet"}setThinkingLevel(a,b){let c=this.sessions.get(a);if(!c||c.thinkingLevel===b)return;c.thinkingLevel=b,(0,H.JG)(a,{thinkingLevel:b});let d=this.modelEffortLevels(c.info.model).length>0;if(c.stdin&&d){let a={type:"control_request",request_id:`effort-${Date.now()}`,request:{subtype:"apply_flag_settings",settings:{effort:b}}};c.stdin.write(JSON.stringify(a)+"\n")}else c.stdin||(this.killProcess(c),c.queuedMessages.length=0,c.queuePaused=!1,c.info.status="idle",c.emitter.emit("status",a,"idle"));this.emitSystem(c,a,`__thinking_level::${b}`)}getThinkingLevel(a){return this.sessions.get(a)?.thinkingLevel??"high"}sendControlRequest(a,b,c=1e4){let d=this.sessions.get(a);if(!d?.stdin)return Promise.reject(Error("Session not connected"));let e=`ctrl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,f={type:"control_request",request_id:e,request:b};return new Promise((a,b)=>{let g=setTimeout(()=>{d.controlCallbacks.delete(e),b(Error("Control request timed out"))},c);d.controlCallbacks.set(e,b=>{clearTimeout(g),d.controlCallbacks.delete(e),a(b)}),d.stdin.write(JSON.stringify(f)+"\n")})}async mcpStatus(a){return this.sendControlRequest(a,{subtype:"mcp_status"})}async mcpToggle(a,b,c){let d=await this.sendControlRequest(a,{subtype:"mcp_toggle",serverName:b,enabled:c});return this.updateMcpServerStatus(a,b,c?"connected":"disabled"),d}async mcpReconnect(a,b){let c=await this.sendControlRequest(a,{subtype:"mcp_reconnect",serverName:b});return this.updateMcpServerStatus(a,b,"connected"),c}updateMcpServerStatus(a,b,c){let d=this.sessions.get(a);if(!d?.initData)return;let e=d.initData.mcpServers.find(a=>a.name===b);e&&(e.status=c),d.emitter.emit("init",a,d.initData),(0,H.JG)(a,{initData:d.initData})}getContextUsage(a){return this.sessions.get(a)?.contextUsage??null}hasQueuedMessage(a){let b=this.sessions.get(a);return!!b&&b.queuedMessages.length>0}getQueuedCount(a){return this.sessions.get(a)?.queuedMessages.length??0}cancelQueuedMessage(a){let b=this.sessions.get(a);return b&&0!==b.queuedMessages.length?b.queuedMessages.pop().text:null}deleteQueuedMessage(a,b){let c=this.sessions.get(a);if(!c)return!1;let d=c.queuedMessages.findIndex(a=>a.id===b);return -1!==d&&(c.queuedMessages.splice(d,1),!0)}editQueuedMessage(a,b){let c=this.sessions.get(a);if(!c)return null;let d=c.queuedMessages.findIndex(a=>a.id===b);return -1===d?null:c.queuedMessages.splice(d,1)[0].text}pauseQueue(a){let b=this.sessions.get(a);b&&(b.queuePaused=!0)}resumeQueue(a){let b=this.sessions.get(a);b&&(b.queuePaused=!1,this.flushQueuedMessage(b,a))}getQueuedMessages(a){let b=this.sessions.get(a);return b?b.queuedMessages.map(a=>({id:a.id,text:a.text})):[]}isQueuePaused(a){return this.sessions.get(a)?.queuePaused??!1}onQueued(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c,d)=>b(c,d);return c.emitter.on("queued",d),()=>c.emitter.off("queued",d)}flushQueuedMessage(a,b){if(a.queuePaused||0===a.queuedMessages.length)return;let c=a.queuedMessages.shift();a.emitter.emit("queued",b,a.queuedMessages.length,c.text),this.sendMessage(b,c.text,c.images,c.documents)}onUsage(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("usage",d),()=>c.emitter.off("usage",d)}getTodos(a){return this.sessions.get(a)?.todoItems??[]}onTodos(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("todos",d),()=>c.emitter.off("todos",d)}getInitData(a){return this.sessions.get(a)?.initData||(0,H.XP)(a)?.initData}setInitData(a,b){let c=this.sessions.get(a);if(!c)return;let d=c.initData||(0,H.XP)(a)?.initData;c.initData={slashCommands:b.slashCommands.length>0?b.slashCommands:d?.slashCommands||[],skills:b.skills.length>0?b.skills:d?.skills||[],agents:b.agents.length>0?b.agents:d?.agents||[],version:b.version||d?.version||"",model:b.model||d?.model||"",mcpServers:b.mcpServers.length>0?b.mcpServers:d?.mcpServers||[],models:b.models||d?.models,account:b.account||d?.account,commands:b.commands||d?.commands},c.emitter.emit("init",a,c.initData),(0,H.JG)(a,{initData:c.initData}),c.initData.mcpServers.length>0&&function(a){try{let b=W(),c=h().dirname(b);(0,f.mkdirSync)(c,{recursive:!0}),(0,f.writeFileSync)(b,JSON.stringify(a))}catch{}}(this.getKnownMcpServers())}onInit(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("init",d),()=>c.emitter.off("init",d)}loadTodosFromFiles(a){let b=this.sessions.get(a);if(!b||b.todoItems.length>0)return;let c=new P(b.cliSessionId,()=>{}).readOnce();0!==c.length&&(b.todoItems=c,b.emitter.emit("todos",a,[...b.todoItems]))}startTodoWatcher(a,b){a.todoWatcher&&a.todoWatcher.stop();let c=new P(a.cliSessionId,c=>{a.todoItems=c,a.emitter.emit("todos",b,[...c])});a.todoWatcher=c,c.start()}extractUsage(a,b,c){try{let d=JSON.parse(c.trim());if("assistant"!==d.type||!d.message?.usage||"<synthetic>"===d.message.model)return;let e=d.message.usage,f={used:(e.input_tokens||0)+(e.cache_creation_input_tokens||0)+(e.cache_read_input_tokens||0),total:a.contextWindowSize};a.contextUsage=f,a.emitter.emit("usage",b,f),a.totalTokens.input+=e.input_tokens||0,a.totalTokens.output+=e.output_tokens||0,a.totalTokens.cacheCreate+=e.cache_creation_input_tokens||0,a.totalTokens.cacheRead+=e.cache_read_input_tokens||0}catch{}}killProcessGroup(a){if(a.pid)try{"win32"===process.platform?(0,d.spawn)("taskkill",["/PID",String(a.pid),"/T","/F"],{stdio:"ignore"}):process.kill(-a.pid,"SIGTERM")}catch{}}endProcess(a,b){if(!a.process)return;let c=a.process;if(a.stdin){let d={type:"control_request",request_id:`end-session-${Date.now()}`,request:{subtype:"end_session",reason:b}};a.stdin.write(JSON.stringify(d)+"\n");let e=setTimeout(()=>{this.killProcessGroup(c)},3e3);c.once("close",()=>clearTimeout(e))}else this.killProcessGroup(c)}killProcess(a){if(a.process&&(a.process.on("close",()=>{}),this.endProcess(a,"session_reset"),a.process=null,a.stdin=null),a.ptyRuntime){let b=a.ptyRuntime;a.ptyRuntime=null,b.kill().catch(()=>{})}a.compacting=!1}emitSystem(a,b,c){a.emitter.emit("system",b,c)}notifyPendingChanged(a,b){let c=a.pendingRequests.size;a.info.pendingRequestCount!==c&&(a.info.pendingRequestCount=c,a.emitter.emit("pending",b,c))}applyProcessedResult(a,b,c){let d=c.emit.map(a=>a.type).join(", ");for(let e of(d&&console.log(`[sm] applyProcessedResult for ${b.slice(0,8)}: events=[${d}], statusChange=${c.statusChange??"none"}, currentStatus=${a.info.status}`),c.intermediateMessages))a.emitter.emit("event",b,{type:"message_done",message:e}),e.toolUses.some(a=>"Agent"===a.name)&&this.loadAgentChildren(a,b,e.id,a.info.cwd);for(let d of c.systemMessages){if("__tool_use_start"===d){a.info.status="running",console.log(`[sm] emit status running (via tool_use_start) for ${b.slice(0,8)} (runtime=${a.runtime})`),a.emitter.emit("status",b,"running");continue}if("__compact::hook_start"===d){a.compacting||((0,m._N)(b,"compact:hook-start"),a.compacting=!0,this.emitSystem(a,b,"__compact::start"));continue}if("__compact::hook_done"===d){if(a.compacting){(0,m._N)(b,"compact:hook-done"),a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c),a.info.status="idle",a.emitter.emit("status",b,"idle"),this.flushQueuedMessage(a,b)}continue}let c="__permission_mode::";if(d.startsWith(c)){let e=d.slice(c.length);"plan"!==e||a.planMode?"plan"!==e&&a.planMode&&(a.planMode=!1,(0,H.JG)(b,{planMode:!1}),a.needsRespawnForPermissions=!0,this.emitSystem(a,b,"__plan_state::off")):(a.planMode=!0,(0,H.JG)(b,{planMode:!0}),this.emitSystem(a,b,"__plan_state::on"))}else this.emitSystem(a,b,d)}for(let d of c.errors)a.emitter.emit("error",b,d);let e=new Set;for(let d of c.permissionActions)if("auto_approve"===d.type)this.respondToPermission(b,d.requestId,!0,d.rawToolInput);else if("auto_deny"===d.type)this.respondToPermission(b,d.requestId,!1,void 0,void 0,d.denyReason);else if(a.bypassAllPermissions&&!a.planMode&&"AskUserQuestion"!==d.toolName)this.respondToPermission(b,d.requestId,!0,d.rawToolInput),e.add(d.requestId);else{let c="ExitPlanMode"===d.toolName?function(){try{let a=(0,g.join)((0,k.Wc)(),"plans"),b=(0,f.readdirSync)(a).filter(a=>a.endsWith(".md")&&!a.includes("-agent-"));if(0===b.length)return;let c=b[0],d=0;for(let e of b){let b=(0,f.statSync)((0,g.join)(a,e)).mtimeMs;b>d&&(d=b,c=e)}return(0,g.join)(a,c)}catch{return}}():void 0,e="AskUserQuestion"===d.toolName?"question":"permission";"question"===e&&console.log(`[question-debug] adding pending question: session=${b.slice(0,8)}, requestId=${d.requestId}, total=${a.pendingRequests.size+1}`),a.pendingRequests.set(d.requestId,{type:e,requestId:d.requestId,toolName:d.toolName,toolInput:d.toolInput||"",rawToolInput:d.rawToolInput,permissionSuggestions:d.permissionSuggestions,planFilePath:c,planContent:c?function(a){try{return(0,f.readFileSync)(a,"utf-8")}catch{return}}(c):void 0}),this.notifyPendingChanged(a,b)}if(c.compactDone){a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}for(let d of(c.emit.length>0&&0===a.emitter.listenerCount("event")&&U(b,`applyProcessedResult: ${c.emit.length} events but 0 event listeners`),c.emit))"permission_request"===d.type&&d.requestId&&e.has(d.requestId)||a.emitter.emit("event",b,d);a.streamingSnapshot=c.snapshot;let h=c.emit[c.emit.length-1];h?.type==="message_done"&&h.message&&(h.message.toolUses.some(a=>"Agent"===a.name)&&this.loadAgentChildren(a,b,h.message.id,a.info.cwd),a.needsRespawnForPermissions&&(a.needsRespawnForPermissions=!1,this.killProcess(a),a.info.status="idle",a.emitter.emit("status",b,"idle"))),"idle"===c.statusChange&&(a.info.status="idle",console.log(`[sm] emit status idle for ${b.slice(0,8)} (runtime=${a.runtime})`),a.emitter.emit("status",b,"idle"),this.flushQueuedMessage(a,b))}emitInfoUpdated(a,b){a.emitter.emit("info_updated",b,{...a.info})}onSystem(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("system",d),()=>c.emitter.off("system",d)}onClear(a,b){let c=this.sessions.get(a);if(!c)return null;let d=()=>b();return c.emitter.on("clear",d),()=>c.emitter.off("clear",d)}onInfoUpdated(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("info_updated",d),()=>c.emitter.off("info_updated",d)}handleCommand(a,b){let c=this.sessions.get(a);if(!c)return!1;let d=b.trim().split(/\s+/),e=d[0].toLowerCase(),f=d.slice(1).join(" ");switch(e){case"/clear":case"/reset":case"/new":return this.killProcess(c),c.previousCliSessionIds.push(c.cliSessionId),c.cliSessionId=(0,i.A)(),c.hasSpawnedBefore=!1,c.queuedMessages.length=0,c.queuePaused=!1,c.todoItems=[],c.info.status="idle",c.emitter.emit("clear",a),c.emitter.emit("status",a,"idle"),(0,H.JG)(a,{cliSessionId:c.cliSessionId,previousCliSessionIds:c.previousCliSessionIds}),!0;case"/model":if(!f){let b=c.info.model||"sonnet";return this.emitSystem(c,a,`__model_picker::${b}`),!0}return this.log(a,`/model command: args="${f}", was=${c.info.model}`),this.killProcess(c),c.info.model=f,c.info.status="idle",c.emitter.emit("status",a,"idle"),(0,H.JG)(a,{model:f}),this.emitSystem(c,a,`Model switched to ${f}`),this.emitInfoUpdated(c,a),!0;case"/rename":if(!f)return this.emitSystem(c,a,"Usage: /rename <name>"),!0;return c.info.name=f,(0,H.JG)(a,{name:f}),this.emitSystem(c,a,`Session renamed to "${f}"`),this.emitInfoUpdated(c,a),!0;case"/help":return this.emitSystem(c,a,"Cockpit commands:\n /clear, /reset, /new - Clear conversation and start fresh\n /model [name] - Show or switch model\n /rename <name> - Rename this session\n /cost - Show session token usage\n /context - Show context window usage\n /status - Show session status\n /help - Show this help message\n\nOther commands (/compact, /commit, /review, etc.) are passed to Claude when possible."),!0;case"/cost":{let b=c.totalTokens,d=[`Input tokens: ${b.input.toLocaleString()}`,`Output tokens: ${b.output.toLocaleString()}`,`Cache write tokens: ${b.cacheCreate.toLocaleString()}`,`Cache read tokens: ${b.cacheRead.toLocaleString()}`];return this.emitSystem(c,a,d.join("\n")),!0}case"/context":{if(!c.contextUsage)return this.emitSystem(c,a,"Context usage data not available yet."),!0;let b=c.contextWindowSize>0?Math.round(c.contextUsage.used/c.contextWindowSize*100):0;return this.emitSystem(c,a,`Context window: ${c.contextUsage.used.toLocaleString()} / ${c.contextWindowSize.toLocaleString()} (${b}%)`),!0}case"/status":{let b=c.info.model||"sonnet",d=c.runtime,e=c.planMode?" [plan]":"";return this.emitSystem(c,a,`Model: ${b} Runtime: ${d}${e}`),!0}}if(c.ptyRuntime?.isAlive){let b=e.replace("/","");if(V.DIALOG_COMMANDS.has(b))return this.emitSystem(c,a,`"${e}" opens an interactive CLI dialog that isn't available in remote mode.`),!0}return!1}static{this.DIALOG_COMMANDS=new Set(["config","usage","session","stats","doctor","diff","mcp","permissions","hooks","tasks","agents","skills","memory","theme","fast","feedback","copy","branch","plan","chrome","desktop","ide","mobile","bridge","sandbox","export","login","logout","upgrade","rate-limit-options","privacy-settings","terminal-setup","install-github-app","remote-env","remote-setup","resume","add-dir","btw","extra-usage","passes","think-back","ultrareview","tag","exit","effort","color","files"])}static{this.MEDIA_EXT={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp","application/pdf":".pdf"}}writeAttachments(a,b){if(!a?.length&&!b?.length)return[];let c=h().join((0,k.du)(),"attachments");(0,f.mkdirSync)(c,{recursive:!0});let d=[];for(let b of a??[]){let a=V.MEDIA_EXT[b.mediaType]||".png",e=h().join(c,`${(0,i.A)()}${a}`);(0,f.writeFileSync)(e,Buffer.from(b.data,"base64")),d.push(e)}for(let a of b??[]){let b=V.MEDIA_EXT[a.mediaType]||".pdf",e=h().join(c,`${(0,i.A)()}${b}`);(0,f.writeFileSync)(e,Buffer.from(a.data,"base64")),d.push(e)}return d}cleanupAttachments(a){for(let b of a.attachmentPaths)try{(0,f.unlinkSync)(b)}catch{}a.attachmentPaths=[]}buildPtyText(a,b){if(0===b.length)return a;let c=b.map(a=>`[Attached image: ${a}]`).join("\n");return`${c}
|
|
3
|
-
${a}`}buildContent(a,b,c,d){let e=a.pendingPlanReminder?this.planModeReminderText():null;if(a.pendingPlanReminder&&(a.pendingPlanReminder=!1),!c?.length&&!d?.length&&!e)return b;let f=[];for(let a of(e&&f.push({type:"text",text:e}),c??[]))f.push({type:"image",source:{type:"base64",media_type:a.mediaType,data:a.data}});for(let a of d??[])f.push({type:"document",source:{type:"base64",media_type:a.mediaType,data:a.data}});return b&&f.push({type:"text",text:b}),f}planModeReminderText(){return`<system-reminder>
|
|
4
|
-
Cockpit plan mode is now active, layered on top of Claude Code's native plan mode.
|
|
5
|
-
|
|
6
|
-
Additional Cockpit rules beyond the CLI's defaults:
|
|
7
|
-
- Bash: only read-only commands are permitted (ls, cat, head, tail, wc, grep, rg, find, stat, file, du, df, tree, pwd, which, type, echo, env, date, basename, dirname, realpath, readlink, uname, whoami, hostname, id). Pipes are allowed; ';', '&&', '||', '>', '<', '$(...)', '\`...\`', '<(...)' are not.
|
|
8
|
-
- git: only read-only subcommands (status, log, diff, show, blame, branch, remote, ls-files, ls-tree, rev-parse, describe, tag, reflog).
|
|
9
|
-
- Edit, Write, NotebookEdit: blocked. Use ExitPlanMode to submit the plan before making changes.
|
|
10
|
-
- Read, Grep, Glob, and all other read-only tools: unrestricted.
|
|
11
|
-
</system-reminder>`}async recoverSession(a){if(this.sessions.has(a))return!0;U(a,"recovering session: not in memory, searching disk");let b=(0,H.XP)(a),c=await (0,Q.gT)(b?.cliSessionId||a)||await (0,Q.gT)(a);return c?(this.ensureSession(a,c),U(a,`recovery succeeded: restored from ${c}`),!0):(U(a,"recovery failed: no transcript found on disk"),!1)}estimateMessageTokens(a,b,c){let d=Math.ceil(a.length/4);return b&&(d+=2e3*b.length),c&&(d+=c.reduce((a,b)=>a+Math.ceil(b.data.length/5),0)),d}shouldPreCompact(a,b,c,d){if(!a.contextUsage||a.compacting||b.trim().toLowerCase().startsWith("/compact")||b.trim().startsWith("/"))return!1;let e=this.estimateMessageTokens(b,c,d),{used:f,total:g}=a.contextUsage;return f+e>.85*g}sendMessage(a,b,c,d){let e=this.sessions.get(a);if(!e)return U(a,"sendMessage: session not in memory, returning false"),(0,m._N)(a,"send:no-session"),!1;if(b.startsWith("/")){if(this.handleCommand(a,b))return!0;b.trim().toLowerCase().startsWith("/compact")&&((0,m._N)(a,"compact:start"),e.compacting=!0,this.emitSystem(e,a,"__compact::start"))}if("running"!==e.info.status&&this.shouldPreCompact(e,b,c,d))return this.log(a,"pre-send compact: message would exceed 85% of context window"),(0,m._N)(a,"compact:pre-send"),e.queuedMessages.push({id:`q-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,text:b,images:c,documents:d}),e.emitter.emit("queued",a,e.queuedMessages.length),e.compacting=!0,this.emitSystem(e,a,"__compact::start"),e.info.status="running",e.emitter.emit("status",a,"running"),e.ptyRuntime?.isAlive?e.ptyRuntime.sendText("/compact").catch(()=>{}):e.process&&e.stdin?e.stdin.write(JSON.stringify({type:"user",message:{role:"user",content:"/compact"}})+"\n"):this.spawnProcess(e,a,"/compact"),!0;let f=this.buildContent(e,b,c,d);if(e.queuePaused&&(e.queuedMessages.length=0,e.queuePaused=!1,e.emitter.emit("queued",a,0)),"running"===e.info.status)return e.queuedMessages.push({id:`q-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,text:b,images:c,documents:d}),e.emitter.emit("queued",a,e.queuedMessages.length),!0;if((0,m._N)(a,"running:send",{hasProcess:!!e.process,hasStdin:!!e.stdin,runtime:e.runtime,ptyAlive:!!e.ptyRuntime?.isAlive}),e.info.status="running",console.log(`[sm] emit status running for ${a.slice(0,8)} (runtime=${e.runtime})`),e.emitter.emit("status",a,"running"),"pty"===e.runtime&&e.ptyRuntime?.isAlive){e.streamState&&(e.streamState.thinkingStartedAt=Date.now()),this.cleanupAttachments(e);let f=this.writeAttachments(c,d);e.attachmentPaths.push(...f);let g=this.buildPtyText(b,f);return e.ptyRuntime.sendText(g).catch(b=>{this.log(a,`pty sendText failed: ${b instanceof Error?b.message:String(b)}`)}),!0}return e.process&&e.stdin?(e.streamState&&(e.streamState.thinkingStartedAt=Date.now()),e.stdin.write(JSON.stringify({type:"user",message:{role:"user",content:f}})+"\n"),!0):(this.spawnProcess(e,a,b,c,d),!0)}log(a,b){if(!(0,m.TT)())return;let c=new Date().toISOString().slice(11,23),d=a.slice(0,8);console.log(`[session:${d}] ${c} ${b}`)}ensureProcess(a){let b=this.sessions.get(a);!b||b.process||b.ptyRuntime?.isAlive||this.spawnProcess(b,a)}modelEffortLevels(a){if(!a)return[];let b=(0,j.AX)(a);if(b)return(0,j.iz)(b);let c=(0,l.$K)(a);return c?c.model.effortLevels:[]}spawnProcess(a,b,c,e,g){if("pty"===a.runtime)return void this.spawnPtyProcess(a,b,c,e,g);this.log(b,`spawning CLI process (resume=${a.hasSpawnedBefore}, model=${a.info.model||"sonnet"})`);let h=["-p","--verbose","--output-format","stream-json","--input-format","stream-json"];a.planMode||h.push("--allow-dangerously-skip-permissions"),h.push("--permission-prompt-tool","stdio"),a.planMode?h.push("--permission-mode","plan"):a.bypassAllPermissions&&h.push("--permission-mode","bypassPermissions"),a.hasSpawnedBefore||(0,Q.Br)(a.cliSessionId,a.info.cwd)?h.push("--resume",a.cliSessionId):h.push("--session-id",a.cliSessionId);let i=(0,l.$K)(a.info.model??"sonnet"),k=i?i.model.modelId:a.info.model;this.log(b,`spawn: info.model=${a.info.model}, resolved=${i?`${i.provider.id}:${i.model.modelId}`:"null"}, cliModel=${k}`),k&&h.push("--model",k),this.modelEffortLevels(a.info.model).length>0&&h.push("--effort",a.thinkingLevel);let n={...process.env};delete n.CLAUDECODE,delete n.CLAUDE_CODE_ENTRYPOINT,i&&Object.assign(n,i.provider.envVars);let p=a.info.contextSize??j.w6;if(j.XR[p].disableEnv&&(n.CLAUDE_CODE_DISABLE_1M_CONTEXT="1"),a.modelSlots.subagent&&a.modelSlots.subagent!==a.modelSlots.main){let b=(0,l.$K)(a.modelSlots.subagent);n.ANTHROPIC_SMALL_FAST_MODEL=b?b.model.modelId:a.modelSlots.subagent}(0,f.mkdirSync)(a.info.cwd,{recursive:!0});let q="win32"===process.platform,r=(0,d.spawn)(T(),h,{cwd:a.info.cwd,env:n,stdio:["pipe","pipe","pipe"],...q?{shell:!0}:{detached:!0}});a.process=r,a.stdin=r.stdin,a.hasSpawnedBefore=!0,this.log(b,`CLI process spawned (pid=${r.pid})`),this.startTodoWatcher(a,b);let s={type:"control_request",request_id:`init-${Date.now()}`,request:{subtype:"initialize"}};if(r.stdin.write(JSON.stringify(s)+"\n"),a.planMode?this.sendPermissionMode(a,b,"plan"):a.bypassAllPermissions&&this.sendPermissionMode(a,b,"bypassPermissions"),c){let b=this.buildContent(a,c,e,g);r.stdin.write(JSON.stringify({type:"user",message:{role:"user",content:b}})+"\n")}r.stdin.on("error",a=>{this.log(b,`stdin pipe error: ${a.message}`)}),r.stdout.on("error",a=>{this.log(b,`stdout pipe error: ${a.message}`)}),r.stderr.on("error",a=>{this.log(b,`stderr pipe error: ${a.message}`)});let t=new o,u="",v=N();a.streamState=v,v.thinkingStartedAt=Date.now();let w="";r.stdout.on("data",c=>{let d=(w+=c.toString()).split(/\r?\n/);if((w=d.pop()||"").trimStart().startsWith("{")&&w.trimEnd().endsWith("}"))try{JSON.parse(w),d.push(w),w=""}catch{}for(let c of d){if((0,m.H6)(b,c),a.controlCallbacks.size>0&&c.includes('"control_response"'))try{let b=JSON.parse(c);if("control_response"===b.type&&b.request_id){let c=a.controlCallbacks.get(b.request_id);if(c){c(b.response||b);continue}}}catch{}0===v.agentStack.length&&this.extractUsage(a,b,c);let d=O(t.parseLine(c),v,{planMode:a.planMode,compacting:a.compacting});this.applyProcessedResult(a,b,d)}}),r.stderr.on("data",a=>{u+=a.toString()}),r.on("close",(c,d)=>{if(this.log(b,`CLI process exited (code=${c}, signal=${d}, pid=${r.pid})`),null!==a.process&&a.process!==r)return void this.log(b,`skipping close cleanup: newer process already running (pid=${a.process.pid})`);if(w.trim()){let c=O(t.parseLine(w),v,{planMode:a.planMode,compacting:a.compacting});this.applyProcessedResult(a,b,c)}if(a.process=null,a.stdin=null,a.streamingSnapshot=null,(0,m._N)(b,"idle:process-close",{code:c,flushedOnMessageDone:v.flushedOnMessageDone}),a.info.status="idle",a.emitter.emit("status",b,"idle"),a.compacting){(0,m._N)(b,"compact:done-on-close"),a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}a.todoItems.length>0&&a.todoItems.every(a=>"completed"===a.status)&&(a.todoItems=[],a.emitter.emit("todos",b,[])),0!==c&&u.trim()&&a.emitter.emit("error",b,u.trim()),v.flushedOnMessageDone||this.flushQueuedMessage(a,b)}),r.on("error",c=>{this.log(b,`CLI process error: ${c.message}`),(0,m._N)(b,"idle:process-error",{error:c.message}),a.process=null,a.stdin=null,a.info.status="idle",a.emitter.emit("status",b,"idle"),a.emitter.emit("error",b,c.message),this.flushQueuedMessage(a,b)})}spawnPtyProcess(a,b,c,d,e){if(a.ptyRuntime?.isAlive){let b=a.ptyRuntime;a.ptyRuntime=null,b.kill().catch(()=>{})}let g=_();if(!g){let c="PTY runtime requires the hook router; server boot did not register one";this.log(b,c),a.info.status="idle",a.emitter.emit("status",b,"idle"),a.emitter.emit("error",b,c);return}this.log(b,`spawning PTY claude (resume=${a.hasSpawnedBefore}, model=${a.info.model||"sonnet"})`),(0,f.mkdirSync)(a.info.cwd,{recursive:!0});let h=N();a.streamState=h,h.thinkingStartedAt=Date.now();let i=[];a.hasSpawnedBefore||(0,Q.Br)(a.cliSessionId,a.info.cwd)?i.push("--resume",a.cliSessionId):i.push("--session-id",a.cliSessionId);let k=(0,l.$K)(a.info.model??"sonnet"),n=k?k.model.modelId:a.info.model;n&&i.push("--model",n),this.modelEffortLevels(a.info.model).length>0&&i.push("--effort",a.thinkingLevel),a.planMode?i.push("--permission-mode","plan"):a.bypassAllPermissions&&i.push("--permission-mode","bypassPermissions");let o={};k&&Object.assign(o,k.provider.envVars);let p=a.info.contextSize??j.w6;if(j.XR[p].disableEnv&&(o.CLAUDE_CODE_DISABLE_1M_CONTEXT="1"),a.modelSlots.subagent&&a.modelSlots.subagent!==a.modelSlots.main){let b=(0,l.$K)(a.modelSlots.subagent);o.ANTHROPIC_SMALL_FAST_MODEL=b?b.model.modelId:a.modelSlots.subagent}let q=new G({sessionId:b,cwd:a.info.cwd,cliSessionId:a.cliSessionId,hookRouter:g,claudeBin:T(),extraArgs:i,extraEnv:o,onEvents:c=>{let d=c.map(a=>a.type).join(", ");console.log(`[sm] pty onEvents for ${b.slice(0,8)}: [${d}]`);let e=O(c,h,{planMode:a.planMode,compacting:a.compacting});this.applyProcessedResult(a,b,e)},onError:c=>{this.log(b,`pty runtime error: ${c}`),a.emitter.emit("error",b,c)},onExit:({exitCode:c,signal:d})=>{if(this.log(b,`PTY claude exited (code=${c}, signal=${d??"none"})`),a.ptyRuntime===q){if(a.ptyRuntime=null,a.streamingSnapshot=null,(0,m._N)(b,"idle:pty-exit",{exitCode:c,flushedOnMessageDone:h.flushedOnMessageDone}),a.transcriptWatcher&&(a.transcriptWatcher.stop(),a.transcriptWatcher=null),a.info.status="idle",a.emitter.emit("status",b,"idle"),a.compacting){(0,m._N)(b,"compact:done-on-pty-exit"),a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}a.todoItems.length>0&&a.todoItems.every(a=>"completed"===a.status)&&(a.todoItems=[],a.emitter.emit("todos",b,[])),h.flushedOnMessageDone||this.flushQueuedMessage(a,b)}}});a.ptyRuntime=q,a.hasSpawnedBefore=!0,this.cleanupAttachments(a);let r=this.writeAttachments(d,e);a.attachmentPaths.push(...r);let s=c?this.buildPtyText(c,r):c,t=new R(a.cliSessionId,a.info.cwd,(c,d)=>{if(a.emitter.emit("transcript",b,c),d){let c={used:d.used,total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}if(a.compacting&&c.some(a=>"__compacted__"===a.content)){(0,m._N)(b,"compact:done-on-transcript"),a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c),a.info.status="idle",a.emitter.emit("status",b,"idle"),this.flushQueuedMessage(a,b)}});a.transcriptWatcher=t,this.startTodoWatcher(a,b),q.start(s).then(()=>{this.log(b,`PTY claude ready (pid=${q.pid})`),t.start()}).catch(c=>{let d=c instanceof Error?c.message:String(c);this.log(b,`pty runtime start failed: ${d}`),a.ptyRuntime=null,a.info.status="idle",a.emitter.emit("status",b,"idle"),a.emitter.emit("error",b,d)})}async loadAgentChildren(a,b,c,d){try{let e=(await (0,Q.vi)(a.cliSessionId,d)).messages.find(a=>a.id===c);if(!e)return;for(let d of e.toolUses)"Agent"===d.name&&d.children&&0!==d.children.length&&a.emitter.emit("event",b,{type:"tool_children",messageId:c,toolId:d.id,children:d.children})}catch{}}}function W(){return h().join((0,k.j_)(),"mcp-servers.json")}let X="__cockpit_session_manager__";function Y(){let a=globalThis;return a[X]||(a[X]=new V),a[X]}function Z(){return globalThis.__cockpit_job_scheduler__||null}function $(){return globalThis.__cockpit_terminal_manager__||null}function _(){return globalThis.__cockpit_hook_router__||null}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[18977],{18977:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});var s=n(57152),a=n(52970),r=n(5346),i=n(30968),u=n(40893),c=n(72331);let o=Object.freeze(JSON.parse('{"displayName":"Just","fileTypes":["just","justfile","Justfile"],"firstLineMatch":"#![\\\\t\\\\s]*/.*just\\\\b","name":"just","patterns":[{"include":"#comments"},{"include":"#import"},{"include":"#module"},{"include":"#alias"},{"include":"#assignment"},{"include":"#builtins"},{"include":"#keywords"},{"include":"#expression-operators"},{"include":"#backtick"},{"include":"#strings"},{"include":"#parenthesis"},{"include":"#recipes"},{"include":"#recipe-operators"},{"include":"#embedded-languages"},{"include":"#escaping"}],"repository":{"alias":{"captures":{"1":{"name":"keyword.other.reserved.just"},"2":{"name":"variable.name.alias.just"},"3":{"name":"keyword.operator.assignment.just"},"4":{"name":"variable.other.just"}},"match":"^(alias)\\\\s+([A-Z_a-z][-0-9A-Z_a-z]*)\\\\s*(:=)\\\\s*([A-Z_a-z][-0-9A-Z_a-z]*)"},"assignment":{"patterns":[{"include":"#variable-assignment"},{"include":"#setting-assignment"}]},"backtick":{"patterns":[{"begin":"(```)","beginCaptures":{"1":{"name":"string.interpolated.just"}},"contentName":"source.shell","end":"(```)","endCaptures":{"1":{"name":"string.interpolated.just"}},"patterns":[{"include":"source.shell"}]},{"captures":{"1":{"name":"string.interpolated.just"},"2":{"name":"source.shell","patterns":[{"include":"source.shell"}]},"3":{"name":"string.interpolated.just"}},"match":"(`)([^`]*)(`)"}]},"boolean":{"patterns":[{"match":"\\\\b(true|false)\\\\b","name":"constant.language.boolean.just"}]},"builtin-functions":{"patterns":[{"match":"\\\\b(arch|num_cpus|os|os_family|shell|env_var|env_var_or_default|env|is_dependency|invocation_directory|invocation_dir|invocation_directory_native|invocation_dir_native|justfile|justfile_directory|justfile_dir|just_executable|just_pid|source_file|source_directory|source_dir|module_file|module_directory|module_dir|append|prepend|encode_uri_component|quote|replace|replace_regex|trim|trim_end|trim_end_match|trim_end_matches|trim_start|trim_start_match|trim_start_matches|capitalize|kebabcase|lowercamelcase|lowercase|shoutykebabcase|shoutysnakecase|snakecase|titlecase|uppercamelcase|uppercase|absolute_path|blake3|blake3_file|canonicalize|extension|file_name|file_stem|parent_directory|parent_dir|without_extension|clean|join|path_exists|error|assert|sha256|sha256_file|uuid|choose|datetime|datetime_utc|semver_matches|style|cache_directory|cache_dir|config_directory|config_dir|config_local_directory|config_local_dir|data_directory|data_dir|data_local_directory|data_local_dir|executable_directory|executable_dir|home_directory|home_dir|which|require|read)\\\\b","name":"support.function.builtin.just"}]},"builtins":{"patterns":[{"match":"\\\\b(HEX|HEXLOWER|HEXUPPER|PATH_SEP|PATH_VAR_SEP|CLEAR|NORMAL|BOLD|ITALIC|UNDERLINE|INVERT|HIDE|STRIKETHROUGH|BLACK|RED|GREEN|YELLOW|BLUE|MAGENTA|CYAN|WHITE|BG_BLACK|BG_RED|BG_GREEN|BG_YELLOW|BG_BLUE|BG_MAGENTA|BG_CYAN|BG_WHITE)\\\\b","name":"constant.language.const.just"},{"include":"#builtin-functions"},{"include":"#literal"}]},"comments":{"patterns":[{"match":"#(?!!).*$","name":"comment.line.number-sign.just"}]},"control-keywords":{"patterns":[{"match":"\\\\b(if|else)\\\\b","name":"keyword.control.conditional.just"}]},"embedded-languages":{"patterns":[{"begin":"^\\\\s+(#!/usr/bin/env\\\\s+(?:-S\\\\s+)?node.*)$","beginCaptures":{"1":{"name":"comment.line.number-sign.shebang.just"}},"contentName":"source.js","end":"(?<=^\\\\S+)","patterns":[{"include":"source.js"}]},{"begin":"^\\\\s+(#!/usr/bin/env\\\\s+(?:-S\\\\s+)?deno.*)$","beginCaptures":{"1":{"name":"comment.line.number-sign.shebang.just"}},"contentName":"source.ts","end":"(?<=^\\\\S+)","patterns":[{"include":"source.ts"}]},{"begin":"^\\\\s+(#!/usr/bin/env\\\\s+(?:-S\\\\s+)?perl.*)$","beginCaptures":{"1":{"name":"comment.line.number-sign.shebang.just"}},"contentName":"source.perl","end":"(?<=^\\\\S+)","patterns":[{"include":"source.perl"}]},{"begin":"^\\\\s+(#!/usr/bin/env\\\\s+(?:-S\\\\s+)?python.*)$","beginCaptures":{"1":{"name":"comment.line.number-sign.shebang.just"}},"contentName":"source.python","end":"(?<=^\\\\S+)","patterns":[{"include":"source.python"}]},{"begin":"^\\\\s+(#!/usr/bin/env\\\\s+(?:-S\\\\s+)?ruby.*)$","beginCaptures":{"1":{"name":"comment.line.number-sign.shebang.just"}},"contentName":"source.ruby","end":"(?<=^\\\\S+)","patterns":[{"include":"source.ruby"}]},{"begin":"^\\\\s+(#!/usr/bin/env\\\\s+(?:-S\\\\s+)?(?:|ba|z|fi)sh.*)$","beginCaptures":{"1":{"name":"comment.line.number-sign.shebang.just"}},"contentName":"source.shell","end":"(?<=^\\\\S+)","patterns":[{"include":"source.shell"}]}]},"escaping":{"patterns":[{"captures":{"1":{"name":"string.interpolated.escape.just"},"2":{"patterns":[{"include":"#expression"}]},"3":{"name":"string.interpolated.escape.just"}},"match":"(?<!\\\\{)(\\\\{\\\\{)\\\\{?(?!\\\\{)(.*?)(}})","name":"string.interpolated.escaping.just"}]},"expression":{"patterns":[{"include":"#backtick"},{"include":"#builtins"},{"include":"#control-keywords"},{"include":"#expression-operators"},{"include":"#parenthesis"},{"include":"#strings"}]},"expression-operators":{"patterns":[{"match":"/","name":"keyword.operator.path-join.just"},{"match":"\\\\+","name":"keyword.operator.concat.just"},{"match":"&&","name":"keyword.operator.and.just"},{"match":"\\\\|\\\\|","name":"keyword.operator.or.just"},{"match":"(==|=~|!=)","name":"keyword.operator.equality.just"}]},"import":{"begin":"^(import)(\\\\?)?\\\\s+","beginCaptures":{"1":{"name":"keyword.other.reserved.just"},"2":{"name":"punctuation.optional.just"}},"end":"$","patterns":[{"include":"#strings"}]},"keywords":{"patterns":[{"include":"#reserved-keywords"},{"include":"#control-keywords"}]},"literal":{"patterns":[{"include":"#boolean"},{"include":"#number"}]},"module":{"begin":"^(mod)(\\\\?)?\\\\s+([A-Z_a-z][-0-9A-Z_a-z]*)(?=[$\\\\s])","beginCaptures":{"1":{"name":"keyword.other.reserved.just"},"2":{"name":"punctuation.optional.just"},"3":{"name":"variable.name.module.just"}},"end":"$","patterns":[{"include":"#strings"}]},"number":{"patterns":[{"match":"(?<![-A-Z_a-z])(?:\\\\.\\\\d+|\\\\d+\\\\.\\\\d+|\\\\d+\\\\.|[1-9]\\\\d*)","name":"constant.numeric.just"},{"match":"\\\\b[0-9]+[-A-Z_a-z]+\\\\b","name":"invalid.illegal.name.just"}]},"parenthesis":{"begin":"\\\\(","end":"\\\\)","patterns":[{"include":"#expression"},{"include":"#parenthesis"}]},"recipe-attributes":{"patterns":[{"captures":{"1":{"name":"support.function.system.just"},"2":{"name":"support.function.system.just"}},"match":"^\\\\[([-A-z]+)\\\\s*(?:,(\\\\s*[-A-z]+\\\\s*))*]\\\\s*$"},{"captures":{"1":{"name":"support.function.system.just"},"2":{"name":"keyword.operator.attribute.end.just"},"3":{"patterns":[{"include":"#strings"}]},"4":{"patterns":[{"include":"#strings"}]}},"match":"^\\\\[([-A-z]+)(?:(:)(.*?)|(\\\\((.*?)\\\\)))?]\\\\s*$"}]},"recipe-dependencies":{"captures":{"1":{"name":"entity.name.function.just"},"2":{"patterns":[{"captures":{"1":{"name":"entity.name.function.just"},"2":{"patterns":[{"include":"#expression"}]}},"match":"\\\\(([A-Z_a-z][-0-9A-Z_a-z]*)(.*)\\\\)"}]},"3":{"name":"keyword.operator.and.just"}},"match":"([A-Z_a-z][-0-9A-Z_a-z]*)|(\\\\((?:[^()]|\\\\([^)]*\\\\))*\\\\))|(&&)"},"recipe-operators":{"patterns":[{"captures":{"1":{"name":"keyword.operator.quiet.just"}},"match":"^\\\\s+(@)"},{"captures":{"1":{"name":"keyword.operator.error-suppression.just"}},"match":"^\\\\s+(-)"}]},"recipe-params":{"captures":{"1":{"name":"keyword.other.recipe.variadic.just"},"2":{"name":"variable.parameter.recipe.just"},"3":{"name":"keyword.operator.default.just"},"4":{"patterns":[{"include":"#strings"}]},"5":{"patterns":[{"include":"#backtick"}]},"6":{"patterns":[{"include":"#parenthesis"}]}},"match":"([$*+])?([A-Z_a-z][0-9A-Z_a-z]*)(?:(=)(?:[A-Z_a-z][0-9A-Z_a-z]*|(\\".*?\\"|\'.*?\')|(`.*?`)|(\\\\((?:[^()]|\\\\([^)]*\\\\))*\\\\))))?"},"recipes":{"patterns":[{"captures":{"1":{"name":"keyword.other.recipe.prefix.just"},"2":{"name":"entity.name.function.just"},"3":{"patterns":[{"include":"#recipe-params"}]},"4":{"name":"keyword.operator.recipe.end.just"},"5":{"patterns":[{"include":"#recipe-dependencies"}]}},"match":"^(@_|_@|[@_])?([A-Za-z][-0-9A-Z_a-z]*)(?:\\\\s+(.*?))?\\\\s*(:)(.*)"},{"include":"#recipe-operators"},{"include":"#recipe-attributes"},{"include":"#embedded-languages"}]},"reserved-keywords":{"patterns":[{"captures":{"1":{"name":"keyword.other.reserved.just"}},"match":"^(alias|export|unexport|import|mod|set)\\\\s+"}]},"setting-assignment":{"patterns":[{"begin":"^(set)\\\\s+([A-Z_a-z][-0-9A-Z_a-z]*)\\\\s*(:=)?","beginCaptures":{"1":{"name":"keyword.other.reserved.just"},"2":{"name":"variable.other.just"},"3":{"name":"keyword.operator.assignment.just"}},"end":"$","patterns":[{"include":"#expression"},{"include":"#comments"}]}]},"strings":{"patterns":[{"match":"([\\"\']{1,3})\\\\{+(\\\\1)","name":"string.quoted.double.indented.just"},{"begin":"([fx])?(\\"\\"\\")","beginCaptures":{"1":{"name":"constant.character.expanded.just"},"2":{"name":"string.quoted.double.indented.just"}},"end":"\\"\\"\\"","name":"string.quoted.double.indented.just","patterns":[{"match":"\\\\\\\\.(?:(?<=u)\\\\{.+?})?","name":"constant.character.escape.just"},{"include":"#escaping"}]},{"begin":"([fx])?(\\")","beginCaptures":{"1":{"name":"constant.character.expanded.just"},"2":{"name":"string.quoted.double.just"}},"end":"\\"","name":"string.quoted.double.just","patterns":[{"match":"\\\\\\\\.(?:(?<=u)\\\\{.+?})?","name":"constant.character.escape.just"},{"include":"#escaping"}]},{"begin":"([fx])?(\'\'\')","beginCaptures":{"1":{"name":"constant.character.expanded.just"},"2":{"name":"string.quoted.single.indented.just"}},"end":"\'\'\'","name":"string.quoted.single.indented.just","patterns":[{"include":"#escaping"}]},{"begin":"([fx])?(\')","beginCaptures":{"1":{"name":"constant.character.expanded.just"},"2":{"name":"string.quoted.single.just"}},"end":"\'","name":"string.quoted.single.just","patterns":[{"include":"#escaping"}]}]},"variable-assignment":{"patterns":[{"captures":{"1":{"name":"keyword.other.reserved.just"},"2":{"name":"variable.other.just"}},"match":"^(unexport)\\\\s+([A-Z_a-z][-0-9A-Z_a-z]*)"},{"begin":"^(?:(export)\\\\s+)?([A-Z_a-z][-0-9A-Z_a-z]*)\\\\s*(:=)","beginCaptures":{"1":{"name":"keyword.other.reserved.just"},"2":{"name":"variable.other.just"},"3":{"name":"keyword.operator.assignment.just"}},"end":"$","patterns":[{"include":"#expression"},{"include":"#comments"}]}]}},"scopeName":"source.just","embeddedLangs":["shellscript","javascript","typescript","perl","python","ruby"]}')),d=[...s.default,...a.default,...r.default,...i.default,...u.default,...c.default,o]}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26126],{26126:(e,t,r)=>{r.d(t,{L:()=>C});var n=r(95155),l=r(2125),s=r(92571),a=r(65377),c=r(25182);let i=(0,r(99537).A)("text-wrap",[["path",{d:"m16 16-3 3 3 3",key:"117b85"}],["path",{d:"M3 12h14.5a1 1 0 0 1 0 7H13",key:"18xa6z"}],["path",{d:"M3 19h6",key:"1ygdsz"}],["path",{d:"M3 5h18",key:"1u36vt"}]]);var o=r(94088),u=r(12363),d=r(9005),f=r(12115),m=r(3765),h=r(18189),x=r(8187),p=r(96301),b=r(64233),g=r(42763),j=r(89323),y=r(53972);let k=new Map,N=new Map;function w(e){for(let t of Array.from(e.querySelectorAll("mark.file-search-match"))){let e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);e.removeChild(t),e.normalize()}}}function v(e,t){let r=e.querySelectorAll("mark.file-search-match");r.forEach(e=>{e.style.backgroundColor="rgba(250, 204, 21, 0.35)"});let n=r[t];n&&(n.style.backgroundColor="rgba(234, 88, 12, 0.5)",n.scrollIntoView({block:"center",behavior:"smooth"}))}function C({cwd:e,initialFile:t,manageSidebar:r=!0}){let{setSidebarSection:S,removeSidebarSection:E,closeSidebar:F,tabActions:A}=(0,m.E2)(),{subscribe:M}=(0,j.h)(),[R,I]=(0,f.useState)(()=>t||k.get(e)||null),[T,$]=(0,f.useState)(null),[q,L]=(0,f.useState)(!1),[O,W]=(0,f.useState)(!1),[_,D]=(0,f.useState)(!1),[z,B]=(0,f.useState)(!1),G=(0,f.useRef)(0),H=(0,f.useRef)(null),K=(0,f.useRef)(null),U=(0,f.useRef)(null),P=(0,f.useRef)(-1),[Y,V]=(0,f.useState)(!1),[X,J]=(0,f.useState)(""),[Q,Z]=(0,f.useState)(0),[ee,et]=(0,f.useState)(-1);(0,f.useEffect)(()=>{"1"===localStorage.getItem("cockpit-files-wrap")&&D(!0),"1"===localStorage.getItem("cockpit-files-preview")&&B(!0)},[]);let er=(0,f.useCallback)(()=>{D(e=>{let t=!e;return localStorage.setItem("cockpit-files-wrap",t?"1":"0"),t})},[]),en=(0,f.useCallback)(()=>{B(e=>{let t=!e;return localStorage.setItem("cockpit-files-preview",t?"1":"0"),t})},[]),el=(0,f.useCallback)(()=>{V(!0),requestAnimationFrame(()=>{U.current?.focus(),U.current?.select()})},[]),es=(0,f.useCallback)(()=>{V(!1),J("")},[]),ea=(0,f.useCallback)(e=>{if(0===Q||!H.current)return;let t=((ee+e)%Q+Q)%Q;P.current=t,et(t),v(H.current,t)},[Q,ee]),ec=(0,f.useCallback)(e=>{"Escape"===e.key?es():"Enter"===e.key&&(e.preventDefault(),ea(e.shiftKey?-1:1))},[es,ea]);(0,f.useEffect)(()=>{let e;if(!Y||!X||!H.current){H.current&&w(H.current),Z(0),P.current=-1,et(-1);return}let t=H.current,r=e=>{let r,n=function(e,t){if(w(e),!t)return 0;let r=t.toLowerCase(),n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),l=[];for(;n.nextNode();){let e=n.currentNode.parentNode?.nodeName;"STYLE"!==e&&"SCRIPT"!==e&&l.push(n.currentNode)}let s=0;for(let e of l){let n=e.textContent??"",l=n.toLowerCase(),a=[],c=0;for(;;){let e=l.indexOf(r,c);if(-1===e)break;a.push(e),c=e+1}if(!a.length)continue;let i=document.createDocumentFragment(),o=0;for(let e of a){e>o&&i.appendChild(document.createTextNode(n.slice(o,e)));let r=document.createElement("mark");r.className="file-search-match",r.style.backgroundColor="rgba(250, 204, 21, 0.35)",r.style.color="inherit",r.style.borderRadius="1px",r.textContent=n.slice(e,e+t.length),i.appendChild(r),s++,o=e+t.length}o<n.length&&i.appendChild(document.createTextNode(n.slice(o))),e.parentNode?.replaceChild(i,e)}return s}(t,X);Z(n),r=!e&&P.current>=0&&n>0?Math.min(P.current,n-1):n>0?0:-1,P.current=r,et(r),r>=0&&v(t,r)};e=requestAnimationFrame(()=>r(!0));let n=new MutationObserver(()=>{t.querySelector("mark.file-search-match")||(e=requestAnimationFrame(()=>r(!1)))});return n.observe(t,{childList:!0,subtree:!0}),()=>{cancelAnimationFrame(e),n.disconnect()}},[Y,X,T,_,z]);let ei=(0,f.useCallback)(t=>{I(t),k.set(e,t),window.innerWidth<768&&F()},[e,F]),eo=(0,f.useCallback)(e=>{A?A.openFile(e):ei(e),W(!1)},[A,ei]);if((0,f.useEffect)(()=>{if(r)return S({id:"file-tree",title:"Files",content:(0,n.jsx)(p.h,{cwd:e,selectedFile:R,onSelectFile:ei}),order:30,actions:(0,n.jsx)("button",{onClick:()=>W(!0),title:"Open file",className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground",children:(0,n.jsx)(l.A,{className:"h-3.5 w-3.5"})})}),()=>E("file-tree")},[e,R,ei,S,E,r]),(0,f.useEffect)(()=>{if(!R)return void $(null);let e=N.get(R);if(e)return void $(e);let t=++G.current;L(!0),fetch(`/api/filesystem/read?path=${encodeURIComponent(R)}`).then(e=>{if(!e.ok)throw Error("Failed to read file");return e.json()}).then(e=>{if(G.current===t){if(N.size>=50){let e=N.keys().next().value;void 0!==e&&N.delete(e)}N.set(R,e),$(e)}}).catch(()=>{G.current===t&&$(null)}).finally(()=>{G.current===t&&L(!1)})},[R]),(0,f.useEffect)(()=>{if(!R)return;let e=async()=>{let e=N.get(R);if(e?.mtimeMs)try{let t=await fetch(`/api/filesystem/read?path=${encodeURIComponent(R)}&stat=true`);if(!t.ok)return;if((await t.json()).mtimeMs!==e.mtimeMs){let e=K.current?.scrollTop??0,t=await fetch(`/api/filesystem/read?path=${encodeURIComponent(R)}`);if(!t.ok)return;let r=await t.json();N.set(R,r),$(r),requestAnimationFrame(()=>{K.current&&(K.current.scrollTop=e)})}}catch{}};return M(t=>{"session:fs_changed"===t.type&&e()})},[R,M]),!R)return(0,n.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Select a file to view"});if(q)return(0,n.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,n.jsx)(s.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})});if(!T)return(0,n.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground",children:"Failed to read file"});let eu=function(e,t){if(t.startsWith(e)){let r=t.slice(e.length);return r.startsWith("/")?r.slice(1):r}return t}(e,R),ed=(0,y.uk)(R)||R,ef=eu.slice(0,eu.length-ed.length),em=(0,h.WG)(R),eh="markdown"===em||"mdx"===em,ex=eh&&z;return(0,n.jsxs)("div",{className:"flex flex-col h-full min-h-0",children:[(0,n.jsxs)("div",{className:"shrink-0 flex items-center gap-1 border-b px-4 py-2 font-mono text-xs",children:[ef&&(0,n.jsx)("span",{className:"text-muted-foreground",children:ef}),(0,n.jsx)("span",{className:"font-bold",children:ed}),T.truncated&&(0,n.jsx)("span",{className:"ml-2 text-muted-foreground",children:"(truncated to 100KB)"}),(0,n.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[!T.binary&&(0,n.jsx)("button",{type:"button",onClick:Y?es:el,"aria-label":"Find in file",title:"Find in file",className:`flex items-center justify-center rounded p-1 hover:bg-accent ${Y?"text-foreground":"text-muted-foreground"}`,children:(0,n.jsx)(a.A,{className:"h-3.5 w-3.5"})}),eh&&(0,n.jsx)("button",{type:"button",onClick:en,"aria-label":z?"Show source":"Show preview","aria-pressed":z,title:z?"Show source":"Show preview",className:`flex items-center justify-center rounded p-1 hover:bg-accent ${z?"text-foreground":"text-muted-foreground"}`,children:(0,n.jsx)(c.A,{className:"h-3.5 w-3.5"})}),!ex&&(0,n.jsx)("button",{type:"button",onClick:er,"aria-label":_?"Disable line wrap":"Enable line wrap","aria-pressed":_,title:_?"Disable line wrap":"Enable line wrap",className:`flex items-center justify-center rounded p-1 hover:bg-accent ${_?"text-foreground":"text-muted-foreground"}`,children:(0,n.jsx)(i,{className:"h-3.5 w-3.5"})})]})]}),Y&&(0,n.jsxs)("div",{className:"shrink-0 flex items-center gap-1.5 border-b px-4 py-1.5",children:[(0,n.jsx)("input",{ref:U,value:X,onChange:e=>J(e.target.value),onKeyDown:ec,placeholder:"Find in file...",className:"flex-1 min-w-0 bg-transparent text-xs outline-none placeholder:text-muted-foreground"}),X&&(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground tabular-nums shrink-0",children:Q>0?`${ee+1} of ${Q}`:"No results"}),(0,n.jsx)("button",{type:"button",onClick:()=>ea(-1),disabled:0===Q,className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground disabled:opacity-30",children:(0,n.jsx)(o.A,{className:"h-3.5 w-3.5"})}),(0,n.jsx)("button",{type:"button",onClick:()=>ea(1),disabled:0===Q,className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground disabled:opacity-30",children:(0,n.jsx)(u.A,{className:"h-3.5 w-3.5"})}),(0,n.jsx)("button",{type:"button",onClick:es,className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground",children:(0,n.jsx)(d.A,{className:"h-3 w-3"})})]}),(0,n.jsx)("div",{ref:H,className:"flex-1 min-h-0 flex flex-col",children:T.binary?(0,n.jsx)("div",{className:"flex items-center justify-center flex-1 text-sm text-muted-foreground",children:"Binary file"}):ex?(0,n.jsx)("div",{ref:K,className:"flex-1 min-h-0 overflow-y-auto p-4",children:(0,n.jsx)(b.Y,{content:T.content})}):(0,n.jsx)("div",{ref:K,className:"flex-1 min-h-0 overflow-auto",children:(0,n.jsx)(h.NG,{code:T.content,language:em,dark:!("u"<typeof document)&&document.documentElement.classList.contains("dark"),fullHeight:!0,wrap:_})})}),(0,n.jsx)(g.lG,{open:O,onOpenChange:W,children:(0,n.jsxs)(g.Cf,{className:"sm:max-w-lg",children:[(0,n.jsx)(g.c7,{children:(0,n.jsx)(g.L3,{children:"Open File"})}),(0,n.jsx)(x.N,{startPath:e,onSelect:eo,onCancel:()=>W(!1)})]})})]})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[31010],{8962:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]])},9383:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])},11012:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},12651:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]])},14283:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("hammer",[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]])},15561:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]])},18402:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},18986:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},19707:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]])},19805:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},20660:(e,a,t)=>{t.d(a,{Q:()=>l});var h=t(26210),d=t(70569),y=t(82627),p=t(65431),k=t(95155);function l({fileDiff:e,options:a,metrics:t,lineAnnotations:A,selectedLines:M,className:c,style:r,prerenderedHTML:i,renderAnnotation:m,renderCustomHeader:s,renderHeaderPrefix:v,renderHeaderMetadata:o,renderGutterUtility:u,renderHoverUtility:n,disableWorkerPool:x=!1}){let{ref:f,getHoveredLine:w}=(0,p.S)({fileDiff:e,options:a,metrics:t,lineAnnotations:A,selectedLines:M,prerenderedHTML:i,hasGutterRenderUtility:null!=u||null!=n,hasCustomHeader:null!=s,disableWorkerPool:x});return(0,k.jsx)(h.mZ,{ref:f,className:c,style:r,children:(0,d.$)((0,y.z)({fileDiff:e,renderCustomHeader:s,renderHeaderPrefix:v,renderHeaderMetadata:o,renderAnnotation:m,renderGutterUtility:u,lineAnnotations:A,renderHoverUtility:n,getHoveredLine:w}),i)})}},25182:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},25494:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]])},28750:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("shield-off",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]])},30966:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]])},36619:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]])},36672:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("clipboard-check",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]])},40638:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("message-circle-question-mark",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},40852:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]])},50981:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},55737:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]])},58309:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},64350:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("shrink",[["path",{d:"m15 15 6 6m-6-6v4.8m0-4.8h4.8",key:"17vawe"}],["path",{d:"M9 19.8V15m0 0H4.2M9 15l-6 6",key:"chjx8e"}],["path",{d:"M15 4.2V9m0 0h4.8M15 9l6-6",key:"lav6yq"}],["path",{d:"M9 4.2V9m0 0H4.2M9 9 3 3",key:"1pxi2q"}]])},66763:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]])},69203:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]])},92298:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},94088:(e,a,t)=>{t.d(a,{A:()=>h});let h=(0,t(99537).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])}}]);
|