@alexjbarnes/cockpit 0.4.0 → 0.4.1
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/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/(app)/agents/[name]/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 -2
- package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
- package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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_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_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/jobs/[id]/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/jobs/[id]/runs/route.js +1 -1
- package/.next/server/app/api/jobs/status/route.js +1 -1
- package/.next/server/app/api/plugins/[id]/route.js +1 -1
- package/.next/server/app/api/plugins/install/route.js +1 -1
- package/.next/server/app/api/plugins/marketplaces/[name]/route.js +1 -1
- package/.next/server/app/api/plugins/marketplaces/route.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- 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/sessions/[id]/tabs/route.js +1 -1
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/mcp-servers.html +1 -1
- package/.next/server/app/mcp-servers.rsc +4 -4
- package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers.segment.rsc +1 -1
- package/.next/server/app/mcp-servers.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/mcp-servers.segments/_full.segment.rsc +4 -4
- package/.next/server/app/mcp-servers.segments/_head.segment.rsc +1 -1
- package/.next/server/app/mcp-servers.segments/_index.segment.rsc +2 -2
- package/.next/server/app/mcp-servers.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/plugins.html +1 -1
- package/.next/server/app/plugins.rsc +4 -4
- package/.next/server/app/plugins.segments/!KGFwcCk/plugins/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/plugins.segments/!KGFwcCk/plugins.segment.rsc +1 -1
- package/.next/server/app/plugins.segments/!KGFwcCk.segment.rsc +2 -2
- package/.next/server/app/plugins.segments/_full.segment.rsc +4 -4
- package/.next/server/app/plugins.segments/_head.segment.rsc +1 -1
- package/.next/server/app/plugins.segments/_index.segment.rsc +2 -2
- package/.next/server/app/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/chunks/1011.js +1 -1
- package/.next/server/chunks/1979.js +4 -4
- package/.next/server/chunks/3136.js +3 -3
- package/.next/server/chunks/{5292.js → 4734.js} +2 -2
- package/.next/server/chunks/7891.js +3 -1
- package/.next/server/middleware-build-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/{25781-c77dc5d11fb85d82.js → 14371-46bd93e838a73082.js} +1 -1
- package/.next/static/chunks/{1550-9a32fa02f6722fc7.js → 1550-2b61396833da3dec.js} +4 -4
- package/.next/static/chunks/86939-ba1fb2321ef9cd80.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[name]/{page-6954a12623e4bdcf.js → page-2b04446e17990f1a.js} +1 -1
- package/.next/static/chunks/app/(app)/agents/page-ba23fc2296a7be83.js +1 -0
- package/.next/static/chunks/app/(app)/claude-md/edit/{page-575c5ccdc585516c.js → page-a281913e0b8add64.js} +1 -1
- package/.next/static/chunks/app/(app)/claude-md/{page-aab6df0c14c657f3.js → page-2d96e3554ef23d18.js} +1 -1
- package/.next/static/chunks/app/(app)/commands/[name]/{page-ea86a4400fd29210.js → page-fb34a46c0c086dab.js} +1 -1
- package/.next/static/chunks/app/(app)/commands/page-3802984c62d8ac69.js +1 -0
- package/.next/static/chunks/app/(app)/hooks/[event]/{page-2c41e810c15a1149.js → page-9481839e736408cb.js} +1 -1
- package/.next/static/chunks/app/(app)/hooks/page-f430735f702c7219.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/[id]/{page-885a258b67e47b00.js → page-aadeab885f4845b0.js} +1 -1
- package/.next/static/chunks/app/(app)/inbox/page-b95594cb0a1a5cac.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-cc5a314765daff0b.js +1 -0
- package/.next/static/chunks/app/(app)/jobs/[id]/{page-ba516fa01db89ea0.js → page-5890d22a832830ae.js} +1 -1
- package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/{page-0650e6f678fae5b8.js → page-0b99d3ca8a0db5a4.js} +1 -1
- package/.next/static/chunks/app/(app)/jobs/page-3112e52c1cf2a1c6.js +1 -0
- package/.next/static/chunks/app/(app)/{layout-3cd80708648e0723.js → layout-62bd7715bd974abb.js} +1 -1
- package/.next/static/chunks/app/(app)/mcp-servers/[name]/{page-9290a7940a32d9ac.js → page-c8586b1dc6f9824d.js} +1 -1
- package/.next/static/chunks/app/(app)/mcp-servers/page-bfc2a6ca8f7968c9.js +1 -0
- package/.next/static/chunks/app/(app)/page-7fa2e1ffac49c78b.js +1 -0
- package/.next/static/chunks/app/(app)/plugins/page-f37a96c5d3bd20a1.js +1 -0
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/{page-4396e9d6df189336.js → page-9bdb676f496d53bd.js} +1 -1
- package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/{page-76a072cbfe3d9f0e.js → page-200fefe31b935564.js} +1 -1
- package/.next/static/chunks/app/(app)/reviews/page-2b8118a506454063.js +1 -0
- package/.next/static/chunks/app/(app)/sessions/[id]/{page-95bcce2e0b9f827a.js → page-428e74d62712abe2.js} +1 -1
- package/.next/static/chunks/app/(app)/settings/appearance/{page-433fcfb9b95fb22e.js → page-e2b21c857330b047.js} +1 -1
- package/.next/static/chunks/app/(app)/settings/notifications/{page-e5309337f125a059.js → page-4c4e5802b3993e7f.js} +1 -1
- package/.next/static/chunks/app/(app)/settings/page-3c1d956c719f0160.js +1 -0
- package/.next/static/chunks/app/(app)/settings/providers/[id]/{page-2cacea2e60ba435c.js → page-020f2eab5c3a93ee.js} +1 -1
- package/.next/static/chunks/app/(app)/settings/providers/new/{page-d40acef3abfc7c19.js → page-9010d32aeca78d7f.js} +1 -1
- package/.next/static/chunks/app/(app)/settings/providers/{page-098d8f399c663944.js → page-d86ebcd6d1cb033d.js} +1 -1
- package/.next/static/chunks/app/(app)/settings/session/page-174370077dbb9079.js +1 -0
- package/.next/static/chunks/app/(app)/skills/[name]/{page-7dd7c0f316742c01.js → page-dfea5f58b95c01b6.js} +1 -1
- package/.next/static/chunks/app/(app)/skills/page-c33dbb722dbdf826.js +1 -0
- package/.next/static/css/4cc7360c7e3ca504.css +1 -0
- package/dist/src/lib/models.js +49 -1
- package/dist/src/server/claude-bin.js +14 -3
- package/dist/src/server/claude-settings.js +3 -0
- package/dist/src/server/mcp/cockpit-config-server.js +1 -1
- package/dist/src/server/pty-runtime.js +1 -0
- package/dist/src/server/session-manager.js +65 -25
- package/dist/src/server/transcript.js +26 -5
- package/dist/src/server/ws-handler.js +1 -1
- package/package.json +1 -1
- package/.next/static/chunks/86939-51ae17d3d12c0310.js +0 -1
- package/.next/static/chunks/app/(app)/agents/page-b984c01f39aed22e.js +0 -1
- package/.next/static/chunks/app/(app)/commands/page-3867a45c1378c6fe.js +0 -1
- package/.next/static/chunks/app/(app)/hooks/page-49f9dbb78a3f97df.js +0 -1
- package/.next/static/chunks/app/(app)/inbox/page-592249fc155b9fe4.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-121bf977a839488c.js +0 -1
- package/.next/static/chunks/app/(app)/jobs/page-da3fe23a43277e67.js +0 -1
- package/.next/static/chunks/app/(app)/mcp-servers/page-1e828264f81ee08c.js +0 -1
- package/.next/static/chunks/app/(app)/page-2d171ffc3e1945e1.js +0 -1
- package/.next/static/chunks/app/(app)/plugins/page-7e70e0b3ead44a99.js +0 -1
- package/.next/static/chunks/app/(app)/reviews/page-deaa44f0ce253da8.js +0 -1
- package/.next/static/chunks/app/(app)/settings/page-353ef8c508418af1.js +0 -1
- package/.next/static/chunks/app/(app)/settings/session/page-706118ba33c2b99f.js +0 -1
- package/.next/static/chunks/app/(app)/skills/page-48d0bbe201180fc8.js +0 -1
- package/.next/static/css/483101dd9c42fb97.css +0 -1
- /package/.next/static/{mmHo0MmzQHWjZATtI-VbH → NTa6G91R3HtKCLYuQqdR0}/_buildManifest.js +0 -0
- /package/.next/static/{mmHo0MmzQHWjZATtI-VbH → NTa6G91R3HtKCLYuQqdR0}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=4387,a.ids=[4387],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57830:(a,b,c)=>{"use strict";c.d(b,{Mh:()=>s,XX:()=>q,ax:()=>o,d_:()=>v,h_:()=>n,lR:()=>r,p7:()=>p,ti:()=>u,uK:()=>t});var d=c(73024),e=c(76760),f=c(64423),g=c(99417);function h(){return(0,g.j_)()}function i(){return(0,e.join)(h(),"scheduled-jobs.json")}function j(){return(0,e.join)(h(),"job-runs")}function k(a){(0,d.mkdirSync)(a,{recursive:!0})}function l(a){return(0,e.join)(j(),`${a}.json`)}function m(a){if(a.model?.includes("[")){let b=(0,f.jp)(a.model);return{...a,model:b.model,contextSize:a.contextSize??b.contextSize}}return a}function n(){try{return(JSON.parse((0,d.readFileSync)(i(),"utf-8")).jobs||[]).map(m)}catch{return[]}}function o(a){return n().find(b=>b.id===a)}function p(a){let b=n(),c=b.findIndex(b=>b.id===a.id);c>=0?b[c]=a:b.push(a),k(h()),(0,d.writeFileSync)(i(),JSON.stringify({jobs:b},null,2)+"\n")}function q(a){let b=n(),e=b.filter(b=>b.id!==a);if(e.length===b.length)return!1;k(h()),(0,d.writeFileSync)(i(),JSON.stringify({jobs:e},null,2)+"\n");let f=l(a);try{if((0,d.existsSync)(f)){let{unlinkSync:a}=c(73024);a(f)}}catch{}return!0}function r(a){try{return JSON.parse((0,d.readFileSync)(l(a),"utf-8")).runs||[]}catch{return[]}}function s(a,b){return r(a).find(a=>a.id===b)}function t(){let a,b=new Set;try{a=(0,d.readdirSync)(j())}catch{return b}for(let c of a)if(c.endsWith(".json"))try{for(let a of JSON.parse((0,d.readFileSync)((0,e.join)(j(),c),"utf-8")).runs||[])a.sessionId&&b.add(a.sessionId)}catch{}return b}function u(a){let b=r(a);if(0!==b.length)return b.reduce((a,b)=>b.startedAt>a.startedAt?b:a)}function v(){let a=n(),b=0;for(let c of a){let a=u(c.id);a&&("failure"===a.status||"timeout"===a.status)&&b++}return b}},59072:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(57830);async function y(a){let b;if(!((b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ",""))&&(0,w.dk)(b)))return v.NextResponse.json({error:"Unauthorized"},{status:401});let c=(0,x.d_)();return v.NextResponse.json({count:c})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/jobs/status/route",pathname:"/api/jobs/status",filename:"route",bundlePath:"app/api/jobs/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/jobs/status/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/jobs/status/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64423:(a,b,c)=>{"use strict";c.d(b,{AX:()=>h,J$:()=>l,Mi:()=>j,XR:()=>d,i3:()=>k,iz:()=>i,jp:()=>m,oh:()=>f,w6:()=>e});let d={"200k":{label:"200K",disableEnv:!0,window:2e5},"1m":{label:"1M",disableEnv:!1,window:1e6}},e="200k";function f(a){return d[a].window}let g=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",contextSizes:["200k"],contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5,supportsXhigh:!0},{alias:"opus",version:"4.8",modelId:"claude-opus-4-8",displayName:"Opus 4.8",description:"Most capable",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0}];function h(a){if(!a)return null;let b=a.replace(/\[.*\]$/,"");if("opus"===b||"sonnet"===b||"haiku"===b)return g.find(a=>a.alias===b&&a.isDefault)??g.filter(a=>a.alias===b)[0]??null;return function(a){if(a)return g.find(b=>b.modelId===a)}(b)??null}function i(a){if(!a||"haiku"===a.alias)return[];let b=["low","medium","high"];return a.supportsXhigh&&b.push("xhigh"),b.push("max"),b}function j(a){return a&&"haiku"!==a.alias?a.supportsXhigh?"xhigh":"sonnet"===a.alias?"medium":"high":null}function k(a,b){let c=i(b);return 0===c.length?null:c.includes(a)?a:j(b)??c[c.length-1]??null}function l(){return g.map(a=>({modelId:a.modelId,displayName:a.displayName,effortLevels:i(a),contextSizes:a.contextSizes,defaultEffort:j(a)??void 0}))}function m(a){if(!a)return{model:void 0,contextSize:e};let b=/\[1m\]$/i.test(a);return{model:a.replace(/\[.*\]$/,"")||void 0,contextSize:b?"1m":"200k"}}},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=59072));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=4387,a.ids=[4387],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57830:(a,b,c)=>{"use strict";c.d(b,{Mh:()=>s,XX:()=>q,ax:()=>o,d_:()=>v,h_:()=>n,lR:()=>r,p7:()=>p,ti:()=>u,uK:()=>t});var d=c(73024),e=c(76760),f=c(64423),g=c(99417);function h(){return(0,g.j_)()}function i(){return(0,e.join)(h(),"scheduled-jobs.json")}function j(){return(0,e.join)(h(),"job-runs")}function k(a){(0,d.mkdirSync)(a,{recursive:!0})}function l(a){return(0,e.join)(j(),`${a}.json`)}function m(a){if(a.model?.includes("[")){let b=(0,f.jp)(a.model);return{...a,model:b.model,contextSize:a.contextSize??b.contextSize}}return a}function n(){try{return(JSON.parse((0,d.readFileSync)(i(),"utf-8")).jobs||[]).map(m)}catch{return[]}}function o(a){return n().find(b=>b.id===a)}function p(a){let b=n(),c=b.findIndex(b=>b.id===a.id);c>=0?b[c]=a:b.push(a),k(h()),(0,d.writeFileSync)(i(),JSON.stringify({jobs:b},null,2)+"\n")}function q(a){let b=n(),e=b.filter(b=>b.id!==a);if(e.length===b.length)return!1;k(h()),(0,d.writeFileSync)(i(),JSON.stringify({jobs:e},null,2)+"\n");let f=l(a);try{if((0,d.existsSync)(f)){let{unlinkSync:a}=c(73024);a(f)}}catch{}return!0}function r(a){try{return JSON.parse((0,d.readFileSync)(l(a),"utf-8")).runs||[]}catch{return[]}}function s(a,b){return r(a).find(a=>a.id===b)}function t(){let a,b=new Set;try{a=(0,d.readdirSync)(j())}catch{return b}for(let c of a)if(c.endsWith(".json"))try{for(let a of JSON.parse((0,d.readFileSync)((0,e.join)(j(),c),"utf-8")).runs||[])a.sessionId&&b.add(a.sessionId)}catch{}return b}function u(a){let b=r(a);if(0!==b.length)return b.reduce((a,b)=>b.startedAt>a.startedAt?b:a)}function v(){let a=n(),b=0;for(let c of a){let a=u(c.id);a&&("failure"===a.status||"timeout"===a.status)&&b++}return b}},59072:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(57830);async function y(a){let b;if(!((b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ",""))&&(0,w.dk)(b)))return v.NextResponse.json({error:"Unauthorized"},{status:401});let c=(0,x.d_)();return v.NextResponse.json({count:c})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/jobs/status/route",pathname:"/api/jobs/status",filename:"route",bundlePath:"app/api/jobs/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/jobs/status/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/jobs/status/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64423:(a,b,c)=>{"use strict";c.d(b,{AX:()=>h,J$:()=>l,Mi:()=>j,XR:()=>d,i3:()=>k,iz:()=>i,jp:()=>m,oh:()=>f,w6:()=>e});let d={"200k":{label:"200K",disableEnv:!0,window:2e5},"1m":{label:"1M",disableEnv:!1,window:1e6}},e="200k";function f(a){return d[a].window}let g=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",contextSizes:["200k"],contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5,supportsXhigh:!0},{alias:"opus",version:"4.8",modelId:"claude-opus-4-8",displayName:"Opus 4.8",description:"Most capable",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0},{alias:"fable",version:"5",modelId:"claude-fable-5",displayName:"Fable 5",description:"Most powerful",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0}];function h(a){if(!a)return null;let b=a.replace(/\[.*\]$/,"");if("opus"===b||"sonnet"===b||"haiku"===b||"fable"===b)return g.find(a=>a.alias===b&&a.isDefault)??g.filter(a=>a.alias===b)[0]??null;return function(a){if(a)return g.find(b=>b.modelId===a)}(b)??null}function i(a){if(!a||"haiku"===a.alias)return[];let b=["low","medium","high"];return a.supportsXhigh&&b.push("xhigh"),b.push("max"),b}function j(a){return a&&"haiku"!==a.alias?a.supportsXhigh?"xhigh":"sonnet"===a.alias?"medium":"high":null}function k(a,b){let c=i(b);return 0===c.length?null:"off"===a?"off":c.includes(a)?a:j(b)??c[c.length-1]??null}function l(){return g.map(a=>({modelId:a.modelId,displayName:a.displayName,effortLevels:i(a),contextSizes:a.contextSizes,defaultEffort:j(a)??void 0}))}function m(a){if(!a)return{model:void 0,contextSize:e};let b=/\[1m\]$/i.test(a);return{model:a.replace(/\[.*\]$/,"")||void 0,contextSize:b?"1m":"200k"}}},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=59072));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=6916,a.ids=[6916],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>f});var d=c(31421);let e=null;function f(){if(e)return e;let a="win32"===process.platform?"where":"which";try{e=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{e="claude"}return e}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63911:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{DELETE:()=>B,GET:()=>z,POST:()=>A});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);function y(a){let b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ","");return!!b&&(0,w.dk)(b)}async function z(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b;try{let{installed:a}=await (0,x.Nj)(),b=a.find(a=>a.id===c);if(!b)return v.NextResponse.json({error:"Plugin not found"},{status:404});return v.NextResponse.json(b)}catch(a){return v.NextResponse.json({error:a.message},{status:500})}}async function A(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b,d=await a.json().catch(()=>({})),e=(0,x.pw)(d.scope);if("enable"===d.action||"disable"===d.action){let a=await (0,x.dS)(c,"enable"===d.action,e);return a.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:a.stderr||"Plugin command failed"},{status:500})}if("update"===d.action){let a=await (0,x.tB)(c);return a.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:a.stderr||"Update failed"},{status:500})}return v.NextResponse.json({error:`Unknown action: ${d.action??"(none)"}`},{status:400})}async function B(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b,d=(0,x.pw)(new URL(a.url).searchParams.get("scope")),e=await (0,x.cu)(c,d);return e.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:e.stderr||"Uninstall failed"},{status:500})}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/[id]/route",pathname:"/api/plugins/[id]",filename:"route",bundlePath:"app/api/plugins/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/[id]/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/[id]/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||C.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===C.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),b}},k=await C.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=63911));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=6916,a.ids=[6916],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>h});var d=c(31421),e=c(73024),f=c(76760);let g=null;function h(){if(g&&(!(0,f.isAbsolute)(g)||(0,e.existsSync)(g)))return g;let a="win32"===process.platform?"where":"which";try{g=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{g="claude"}return g}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63911:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{DELETE:()=>B,GET:()=>z,POST:()=>A});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);function y(a){let b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ","");return!!b&&(0,w.dk)(b)}async function z(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b;try{let{installed:a}=await (0,x.Nj)(),b=a.find(a=>a.id===c);if(!b)return v.NextResponse.json({error:"Plugin not found"},{status:404});return v.NextResponse.json(b)}catch(a){return v.NextResponse.json({error:a.message},{status:500})}}async function A(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b,d=await a.json().catch(()=>({})),e=(0,x.pw)(d.scope);if("enable"===d.action||"disable"===d.action){let a=await (0,x.dS)(c,"enable"===d.action,e);return a.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:a.stderr||"Plugin command failed"},{status:500})}if("update"===d.action){let a=await (0,x.tB)(c);return a.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:a.stderr||"Update failed"},{status:500})}return v.NextResponse.json({error:`Unknown action: ${d.action??"(none)"}`},{status:400})}async function B(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b,d=(0,x.pw)(new URL(a.url).searchParams.get("scope")),e=await (0,x.cu)(c,d);return e.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:e.stderr||"Uninstall failed"},{status:500})}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/[id]/route",pathname:"/api/plugins/[id]",filename:"route",bundlePath:"app/api/plugins/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/[id]/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/[id]/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||C.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===C.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),b}},k=await C.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=63911));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=7870,a.ids=[7870],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12061:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);async function y(a){let b;if(!((b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ",""))&&(0,w.dk)(b)))return v.NextResponse.json({error:"Unauthorized"},{status:401});let c=await a.json().catch(()=>({}));if(!c.plugin)return v.NextResponse.json({error:"Missing plugin id"},{status:400});let d=(0,x.pw)(c.scope)??"user",e=await (0,x.xZ)(c.plugin,d);return e.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:e.stderr||"Install failed"},{status:500})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/install/route",pathname:"/api/plugins/install",filename:"route",bundlePath:"app/api/plugins/install/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/install/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/install/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>f});var d=c(31421);let e=null;function f(){if(e)return e;let a="win32"===process.platform?"where":"which";try{e=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{e="claude"}return e}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=12061));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=7870,a.ids=[7870],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12061:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);async function y(a){let b;if(!((b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ",""))&&(0,w.dk)(b)))return v.NextResponse.json({error:"Unauthorized"},{status:401});let c=await a.json().catch(()=>({}));if(!c.plugin)return v.NextResponse.json({error:"Missing plugin id"},{status:400});let d=(0,x.pw)(c.scope)??"user",e=await (0,x.xZ)(c.plugin,d);return e.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:e.stderr||"Install failed"},{status:500})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/install/route",pathname:"/api/plugins/install",filename:"route",bundlePath:"app/api/plugins/install/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/install/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/install/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>h});var d=c(31421),e=c(73024),f=c(76760);let g=null;function h(){if(g&&(!(0,f.isAbsolute)(g)||(0,e.existsSync)(g)))return g;let a="win32"===process.platform?"where":"which";try{g=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{g="claude"}return g}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=12061));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=3579,a.ids=[3579],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>f});var d=c(31421);let e=null;function f(){if(e)return e;let a="win32"===process.platform?"where":"which";try{e=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{e="claude"}return e}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},84103:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,POST:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);function y(a){let b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ","");return!!b&&(0,w.dk)(b)}async function z(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{name:c}=await b,d=await a.json().catch(()=>({}));if("update"!==d.action)return v.NextResponse.json({error:`Unknown action: ${d.action??"(none)"}`},{status:400});let e=await (0,x.$8)(c);return e.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:e.stderr||"Update failed"},{status:500})}async function A(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{name:c}=await b,d=(0,x.pw)(new URL(a.url).searchParams.get("scope")),e=await (0,x.AD)(c,d);return e.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:e.stderr||"Remove failed"},{status:500})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/marketplaces/[name]/route",pathname:"/api/plugins/marketplaces/[name]",filename:"route",bundlePath:"app/api/plugins/marketplaces/[name]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/marketplaces/[name]/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/marketplaces/[name]/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=84103));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=3579,a.ids=[3579],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>h});var d=c(31421),e=c(73024),f=c(76760);let g=null;function h(){if(g&&(!(0,f.isAbsolute)(g)||(0,e.existsSync)(g)))return g;let a="win32"===process.platform?"where":"which";try{g=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{g="claude"}return g}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},84103:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,POST:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);function y(a){let b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ","");return!!b&&(0,w.dk)(b)}async function z(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{name:c}=await b,d=await a.json().catch(()=>({}));if("update"!==d.action)return v.NextResponse.json({error:`Unknown action: ${d.action??"(none)"}`},{status:400});let e=await (0,x.$8)(c);return e.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:e.stderr||"Update failed"},{status:500})}async function A(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{name:c}=await b,d=(0,x.pw)(new URL(a.url).searchParams.get("scope")),e=await (0,x.AD)(c,d);return e.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:e.stderr||"Remove failed"},{status:500})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/marketplaces/[name]/route",pathname:"/api/plugins/marketplaces/[name]",filename:"route",bundlePath:"app/api/plugins/marketplaces/[name]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/marketplaces/[name]/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/marketplaces/[name]/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=84103));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=6901,a.ids=[6901],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>f});var d=c(31421);let e=null;function f(){if(e)return e;let a="win32"===process.platform?"where":"which";try{e=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{e="claude"}return e}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88719:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);async function y(a){let b;if(!((b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ",""))&&(0,w.dk)(b)))return v.NextResponse.json({error:"Unauthorized"},{status:401});let c=await a.json().catch(()=>({}));if("update"===c.action){let a=await (0,x.$8)();return a.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:a.stderr||"Update failed"},{status:500})}if("add"===c.action){let a=c.source?.trim();if(!a)return v.NextResponse.json({error:"Missing marketplace source"},{status:400});let b=await (0,x.Zp)(a,(0,x.pw)(c.scope));return b.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:b.stderr||"Add failed"},{status:500})}return v.NextResponse.json({error:`Unknown action: ${c.action??"(none)"}`},{status:400})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/marketplaces/route",pathname:"/api/plugins/marketplaces",filename:"route",bundlePath:"app/api/plugins/marketplaces/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/marketplaces/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/marketplaces/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=88719));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=6901,a.ids=[6901],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>h});var d=c(31421),e=c(73024),f=c(76760);let g=null;function h(){if(g&&(!(0,f.isAbsolute)(g)||(0,e.existsSync)(g)))return g;let a="win32"===process.platform?"where":"which";try{g=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{g="claude"}return g}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88719:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);async function y(a){let b;if(!((b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ",""))&&(0,w.dk)(b)))return v.NextResponse.json({error:"Unauthorized"},{status:401});let c=await a.json().catch(()=>({}));if("update"===c.action){let a=await (0,x.$8)();return a.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:a.stderr||"Update failed"},{status:500})}if("add"===c.action){let a=c.source?.trim();if(!a)return v.NextResponse.json({error:"Missing marketplace source"},{status:400});let b=await (0,x.Zp)(a,(0,x.pw)(c.scope));return b.ok?v.NextResponse.json({ok:!0}):v.NextResponse.json({error:b.stderr||"Add failed"},{status:500})}return v.NextResponse.json({error:`Unknown action: ${c.action??"(none)"}`},{status:400})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/marketplaces/route",pathname:"/api/plugins/marketplaces",filename:"route",bundlePath:"app/api/plugins/marketplaces/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/marketplaces/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/marketplaces/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=88719));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=9742,a.ids=[9742],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13343:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);async function y(a){let b;if(!((b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ",""))&&(0,w.dk)(b)))return v.NextResponse.json({error:"Unauthorized"},{status:401});try{let[a,b]=await Promise.all([(0,x.Nj)(),(0,x.H5)()]);return v.NextResponse.json({...a,marketplaces:b})}catch(a){return v.NextResponse.json({error:a.message},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/route",pathname:"/api/plugins",filename:"route",bundlePath:"app/api/plugins/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>f});var d=c(31421);let e=null;function f(){if(e)return e;let a="win32"===process.platform?"where":"which";try{e=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{e="claude"}return e}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=13343));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=9742,a.ids=[9742],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13343:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(34349);async function y(a){let b;if(!((b=a.cookies.get("cockpit_session")?.value||a.headers.get("authorization")?.replace("Bearer ",""))&&(0,w.dk)(b)))return v.NextResponse.json({error:"Unauthorized"},{status:401});try{let[a,b]=await Promise.all([(0,x.Nj)(),(0,x.H5)()]);return v.NextResponse.json({...a,marketplaces:b})}catch(a){return v.NextResponse.json({error:a.message},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/plugins/route",pathname:"/api/plugins",filename:"route",bundlePath:"app/api/plugins/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/plugins/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},34349:(a,b,c)=>{"use strict";c.d(b,{$8:()=>s,AD:()=>r,H5:()=>l,Nj:()=>k,Zp:()=>q,cu:()=>n,dS:()=>m,pw:()=>i,tB:()=>p,xZ:()=>o});var d=c(31421),e=c(57975),f=c(43719);let g=(0,e.promisify)(d.execFile),h=new Set(["user","project","local"]);function i(a){return a&&h.has(a)?a:void 0}async function j(a){try{let{stdout:b,stderr:c}=await g((0,f.S)(),["plugin",...a],{encoding:"utf-8",timeout:12e4,maxBuffer:0x2000000});return{ok:!0,stdout:b,stderr:c}}catch(a){return{ok:!1,stdout:a.stdout??"",stderr:a.stderr||a.message||"plugin command failed"}}}async function k(){let a=await j(["list","--available","--json"]);if(!a.ok)throw Error(a.stderr);let b=JSON.parse(a.stdout);return{installed:b.installed??[],available:b.available??[]}}async function l(){let a=await j(["marketplace","list","--json"]);if(!a.ok)throw Error(a.stderr);return JSON.parse(a.stdout)}async function m(a,b,c){let d=[b?"enable":"disable",a];return c&&d.push("-s",c),j(d)}async function n(a,b){let c=["uninstall",a,"-y"];return b&&c.push("-s",b),j(c)}async function o(a,b="user"){return j(["install",a,"-s",b])}async function p(a){return j(["update",a])}async function q(a,b){let c=["marketplace","add",a];return b&&c.push("--scope",b),j(c)}async function r(a,b){let c=["marketplace","remove",a];return b&&c.push("--scope",b),j(c)}async function s(a){let b=["marketplace","update"];return a&&b.push(a),j(b)}},43719:(a,b,c)=>{"use strict";c.d(b,{S:()=>h});var d=c(31421),e=c(73024),f=c(76760);let g=null;function h(){if(g&&(!(0,f.isAbsolute)(g)||(0,e.existsSync)(g)))return g;let a="win32"===process.platform?"where":"which";try{g=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{g="claude"}return g}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=13343));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=5922,a.ids=[5922],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},22211:(a,b,c)=>{"use strict";c.d(b,{$K:()=>u,Z3:()=>p,Zi:()=>r,f9:()=>s,h1:()=>t,sO:()=>q});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,m=0;function n(){try{return(0,d.statSync)(i()).mtimeMs}catch{return 0}}function o(a){try{(0,d.mkdirSync)((0,h.j_)(),{recursive:!0}),(0,d.writeFileSync)(i(),JSON.stringify(a,null,2)+"\n")}catch{}}function p(){let a=n();return(null===l||a!==m)&&(l=[k(),...function(){try{return JSON.parse((0,d.readFileSync)(i(),"utf-8"))}catch{return[]}}()],m=a),l}function q(a){return p().find(b=>b.id===a)}function r(a){let b={...a,id:(0,f.A)()};j(b);let c=p().filter(a=>!a.isBuiltin);return c.push(b),o(c),l=[k(),...c],m=n(),b}function s(a,b){if("anthropic"===a)throw Error("Cannot modify built-in provider");let c=p().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,o(c),l=[k(),...c],m=n(),c[d]}function t(a){if("anthropic"===a)throw Error("Cannot delete built-in provider");let b=p(),c=b.filter(b=>!b.isBuiltin&&b.id!==a);if(c.length===b.filter(a=>!a.isBuiltin).length)throw Error(`Provider not found: ${a}`);o(c),l=[k(),...c],m=n()}function u(a){if(!a)return null;let b=a.indexOf(":");if(b>0){let c=a.slice(0,b),d=a.slice(b+1).replace(/\[.*\]$/,""),e=q(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 p()){let c=b.models.find(b=>b.modelId===a);if(c)return{provider:b,model:c}}return null}},27625:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,PUT:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(22211);function y(a){let b=a.cookies.get("cockpit_session")?.value;return!!b&&(0,w.dk)(b)}async function z(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b;if(!(0,x.sO)(c))return v.NextResponse.json({error:"Not found"},{status:404});try{let b=await a.json(),d=(0,x.f9)(c,b);return v.NextResponse.json(d)}catch(b){let a=b instanceof Error?b.message:"Update failed";return v.NextResponse.json({error:a},{status:400})}}async function A(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b;try{return(0,x.h1)(c),v.NextResponse.json({ok:!0})}catch(b){let a=b instanceof Error?b.message:"Delete failed";return v.NextResponse.json({error:a},{status:400})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/[id]/route",pathname:"/api/providers/[id]",filename:"route",bundlePath:"app/api/providers/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/providers/[id]/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/[id]/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64423:(a,b,c)=>{"use strict";c.d(b,{AX:()=>h,J$:()=>l,Mi:()=>j,XR:()=>d,i3:()=>k,iz:()=>i,jp:()=>m,oh:()=>f,w6:()=>e});let d={"200k":{label:"200K",disableEnv:!0,window:2e5},"1m":{label:"1M",disableEnv:!1,window:1e6}},e="200k";function f(a){return d[a].window}let g=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",contextSizes:["200k"],contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5,supportsXhigh:!0},{alias:"opus",version:"4.8",modelId:"claude-opus-4-8",displayName:"Opus 4.8",description:"Most capable",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0}];function h(a){if(!a)return null;let b=a.replace(/\[.*\]$/,"");if("opus"===b||"sonnet"===b||"haiku"===b)return g.find(a=>a.alias===b&&a.isDefault)??g.filter(a=>a.alias===b)[0]??null;return function(a){if(a)return g.find(b=>b.modelId===a)}(b)??null}function i(a){if(!a||"haiku"===a.alias)return[];let b=["low","medium","high"];return a.supportsXhigh&&b.push("xhigh"),b.push("max"),b}function j(a){return a&&"haiku"!==a.alias?a.supportsXhigh?"xhigh":"sonnet"===a.alias?"medium":"high":null}function k(a,b){let c=i(b);return 0===c.length?null:c.includes(a)?a:j(b)??c[c.length-1]??null}function l(){return g.map(a=>({modelId:a.modelId,displayName:a.displayName,effortLevels:i(a),contextSizes:a.contextSizes,defaultEffort:j(a)??void 0}))}function m(a){if(!a)return{model:void 0,contextSize:e};let b=/\[1m\]$/i.test(a);return{model:a.replace(/\[.*\]$/,"")||void 0,contextSize:b?"1m":"200k"}}},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},78796:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16),e=[];for(let a=0;a<256;++a)e.push((a+256).toString(16).slice(1));let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return function(a,b=0){return(e[a[b+0]]+e[a[b+1]]+e[a[b+2]]+e[a[b+3]]+"-"+e[a[b+4]]+e[a[b+5]]+"-"+e[a[b+6]]+e[a[b+7]]+"-"+e[a[b+8]]+e[a[b+9]]+"-"+e[a[b+10]]+e[a[b+11]]+e[a[b+12]]+e[a[b+13]]+e[a[b+14]]+e[a[b+15]]).toLowerCase()}(f)}(a,b,c):crypto.randomUUID()}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=27625));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=5922,a.ids=[5922],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},22211:(a,b,c)=>{"use strict";c.d(b,{$K:()=>u,Z3:()=>p,Zi:()=>r,f9:()=>s,h1:()=>t,sO:()=>q});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,m=0;function n(){try{return(0,d.statSync)(i()).mtimeMs}catch{return 0}}function o(a){try{(0,d.mkdirSync)((0,h.j_)(),{recursive:!0}),(0,d.writeFileSync)(i(),JSON.stringify(a,null,2)+"\n")}catch{}}function p(){let a=n();return(null===l||a!==m)&&(l=[k(),...function(){try{return JSON.parse((0,d.readFileSync)(i(),"utf-8"))}catch{return[]}}()],m=a),l}function q(a){return p().find(b=>b.id===a)}function r(a){let b={...a,id:(0,f.A)()};j(b);let c=p().filter(a=>!a.isBuiltin);return c.push(b),o(c),l=[k(),...c],m=n(),b}function s(a,b){if("anthropic"===a)throw Error("Cannot modify built-in provider");let c=p().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,o(c),l=[k(),...c],m=n(),c[d]}function t(a){if("anthropic"===a)throw Error("Cannot delete built-in provider");let b=p(),c=b.filter(b=>!b.isBuiltin&&b.id!==a);if(c.length===b.filter(a=>!a.isBuiltin).length)throw Error(`Provider not found: ${a}`);o(c),l=[k(),...c],m=n()}function u(a){if(!a)return null;let b=a.indexOf(":");if(b>0){let c=a.slice(0,b),d=a.slice(b+1).replace(/\[.*\]$/,""),e=q(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 p()){let c=b.models.find(b=>b.modelId===a);if(c)return{provider:b,model:c}}return null}},27625:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,PUT:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74423),x=c(22211);function y(a){let b=a.cookies.get("cockpit_session")?.value;return!!b&&(0,w.dk)(b)}async function z(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b;if(!(0,x.sO)(c))return v.NextResponse.json({error:"Not found"},{status:404});try{let b=await a.json(),d=(0,x.f9)(c,b);return v.NextResponse.json(d)}catch(b){let a=b instanceof Error?b.message:"Update failed";return v.NextResponse.json({error:a},{status:400})}}async function A(a,{params:b}){if(!y(a))return v.NextResponse.json({error:"Unauthorized"},{status:401});let{id:c}=await b;try{return(0,x.h1)(c),v.NextResponse.json({ok:!0})}catch(b){let a=b instanceof Error?b.message:"Delete failed";return v.NextResponse.json({error:a},{status:400})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/[id]/route",pathname:"/api/providers/[id]",filename:"route",bundlePath:"app/api/providers/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/dev/repos/cockpit/src/app/api/providers/[id]/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/[id]/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||B.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===B.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await B.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64423:(a,b,c)=>{"use strict";c.d(b,{AX:()=>h,J$:()=>l,Mi:()=>j,XR:()=>d,i3:()=>k,iz:()=>i,jp:()=>m,oh:()=>f,w6:()=>e});let d={"200k":{label:"200K",disableEnv:!0,window:2e5},"1m":{label:"1M",disableEnv:!1,window:1e6}},e="200k";function f(a){return d[a].window}let g=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",contextSizes:["200k"],contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5,supportsXhigh:!0},{alias:"opus",version:"4.8",modelId:"claude-opus-4-8",displayName:"Opus 4.8",description:"Most capable",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0},{alias:"fable",version:"5",modelId:"claude-fable-5",displayName:"Fable 5",description:"Most powerful",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0}];function h(a){if(!a)return null;let b=a.replace(/\[.*\]$/,"");if("opus"===b||"sonnet"===b||"haiku"===b||"fable"===b)return g.find(a=>a.alias===b&&a.isDefault)??g.filter(a=>a.alias===b)[0]??null;return function(a){if(a)return g.find(b=>b.modelId===a)}(b)??null}function i(a){if(!a||"haiku"===a.alias)return[];let b=["low","medium","high"];return a.supportsXhigh&&b.push("xhigh"),b.push("max"),b}function j(a){return a&&"haiku"!==a.alias?a.supportsXhigh?"xhigh":"sonnet"===a.alias?"medium":"high":null}function k(a,b){let c=i(b);return 0===c.length?null:"off"===a?"off":c.includes(a)?a:j(b)??c[c.length-1]??null}function l(){return g.map(a=>({modelId:a.modelId,displayName:a.displayName,effortLevels:i(a),contextSizes:a.contextSizes,defaultEffort:j(a)??void 0}))}function m(a){if(!a)return{model:void 0,contextSize:e};let b=/\[1m\]$/i.test(a);return{model:a.replace(/\[.*\]$/,"")||void 0,contextSize:b?"1m":"200k"}}},73024:a=>{"use strict";a.exports=require("node:fs")},74423:(a,b,c)=>{"use strict";let d;c.d(b,{BE:()=>q,Xo:()=>o,dk:()=>t,fQ:()=>p,jw:()=>s});var e=c(77598),f=c.n(e),g=c(73024),h=c(51455),i=c(76760),j=c.n(i),k=c(99417);function l(){return j().join((0,k.j_)(),"password.json")}function m(a,b){return new Promise((c,d)=>{f().scrypt(a,b,64,(a,b)=>{a?d(a):c(b)})})}function n(){return null==d&&(d=function(){if(!(0,g.existsSync)(l()))return null;try{let a=c(73024).readFileSync(l(),"utf-8");if(!a.trim())return console.warn("[auth] password.json exists but is empty (likely corrupted by interrupted write)"),null;let b=JSON.parse(a);if(b.hash&&b.salt)return b;return console.warn("[auth] password.json missing hash/salt fields"),null}catch(a){return console.error("[auth] failed to read password.json:",a),null}}()),d}function o(){return!process.env.COCKPIT_TOKEN&&null===n()}async function p(a){await (0,h.mkdir)((0,k.j_)(),{recursive:!0});let b=f().randomBytes(32),c={hash:(await m(a,b)).toString("hex"),salt:b.toString("hex")},e=l(),g=`${e}.tmp.${process.pid}.${Date.now()}`,i=await (0,h.open)(g,"w");await i.writeFile(JSON.stringify(c),"utf-8"),await i.sync(),await i.close(),await (0,h.rename)(g,e),d=c}async function q(a){let b=n();if(!b)return!1;let c=Buffer.from(b.salt,"hex"),d=await m(a,c),e=Buffer.from(b.hash,"hex");return d.length===e.length&&f().timingSafeEqual(d,e)}function r(){let a=n();return a?.hash??null}function s(){let a=r();if(!a)return"";let b=Date.now().toString(16),c=f().createHmac("sha256",a).update(b).digest("hex");return`${b}.${c}`}function t(a){let b=r();if(!b)return!1;if(process.env.COCKPIT_TOKEN&&a===process.env.COCKPIT_TOKEN)return!0;let c=a.indexOf(".");if(-1===c)return!1;let d=a.slice(0,c),e=a.slice(c+1),g=f().createHmac("sha256",b).update(d).digest("hex");return e.length===g.length&&f().timingSafeEqual(Buffer.from(e,"hex"),Buffer.from(g,"hex"))}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},78796:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16),e=[];for(let a=0;a<256;++a)e.push((a+256).toString(16).slice(1));let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return function(a,b=0){return(e[a[b+0]]+e[a[b+1]]+e[a[b+2]]+e[a[b+3]]+"-"+e[a[b+4]]+e[a[b+5]]+"-"+e[a[b+6]]+e[a[b+7]]+"-"+e[a[b+8]]+e[a[b+9]]+"-"+e[a[b+10]]+e[a[b+11]]+e[a[b+12]]+e[a[b+13]]+e[a[b+14]]+e[a[b+15]]).toLowerCase()}(f)}(a,b,c):crypto.randomUUID()}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},99417:(a,b,c)=>{"use strict";c.d(b,{Qo:()=>j,Wc:()=>i,du:()=>h,j_:()=>g});var d=c(48161),e=c(76760),f=c.n(e);function g(){return process.env.COCKPIT_CONFIG_DIR??f().join((0,d.homedir)(),".cockpit")}function h(){return process.env.COCKPIT_CACHE_DIR??f().join((0,d.homedir)(),".cache","cockpit")}function i(){return process.env.CLAUDE_CONFIG_DIR??f().join((0,d.homedir)(),".claude")}function j(){return f().join(process.env.CLAUDE_CONFIG_DIR??(0,d.homedir)(),".claude.json")}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3445,1813],()=>b(b.s=27625));module.exports=c})();
|