conductor-oss 0.2.19 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +147 -60
- package/dist/commands/start.js.map +1 -1
- package/dist/launcher.d.ts +3 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +3 -0
- package/dist/launcher.js.map +1 -0
- package/node_modules/@conductor-oss/core/dist/config.d.ts.map +1 -1
- package/node_modules/@conductor-oss/core/dist/config.js +106 -1
- package/node_modules/@conductor-oss/core/dist/config.js.map +1 -1
- package/node_modules/@conductor-oss/core/dist/types.d.ts +4 -4
- package/node_modules/@conductor-oss/core/dist/types.d.ts.map +1 -1
- package/node_modules/@conductor-oss/core/dist/types.js +183 -8
- package/node_modules/@conductor-oss/core/dist/types.js.map +1 -1
- package/node_modules/@conductor-oss/plugin-agent-amp/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-ccr/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-claude-code/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-codex/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-cursor-cli/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-droid/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-gemini/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-github-copilot/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-opencode/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-qwen-code/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-mcp-server/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-notifier-desktop/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-notifier-discord/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-runtime-tmux/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-scm-github/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-terminal-web/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-tracker-github/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-workspace-worktree/package.json +1 -1
- package/package.json +29 -25
- package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +5 -0
- package/web/.next/standalone/packages/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/routes-manifest.json +34 -0
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +3 -4
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js +3 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +3 -5
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +3 -4
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +4 -6
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +4 -5
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +3 -4
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +4 -6
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.rsc +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/page/react-loadable-manifest.json +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +5 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/29f24__next-internal_server_app_api_filesystem_pick-directory_route_actions_51e42977.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_executor_health_route_actions_8e415531.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_repositories_[id]_route_actions_4d42b4b5.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_archive_route_actions_bdb25739.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0074ebac._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__03a6b3e6._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__049daed6._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__6023a748._.js → [root-of-the-server]__095ffdaa._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__2a83553a._.js → [root-of-the-server]__0c7f79b1._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__137c9740._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__1aa339ea._.js → [root-of-the-server]__144e8e60._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__1ed2e6c1._.js → [root-of-the-server]__14949257._.js} +17 -163
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__15594e11._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__159ecc1b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__29be362d._.js → [root-of-the-server]__16d4a78f._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__171dd44e._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__177505ca._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__18aa1fa3._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1c3521a3._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1c793b78._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__22fbbc7b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__25bbe81a._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2d10de49._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30442998._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__31d22800._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3d6b30a3._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__44892736._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__495221b1._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4ff9e8b0._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__54eb1ef0._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5c375e13._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6362697f._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__69b36e36._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6badbf4e._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6c4cd852._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6f7b329b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__70b7af90._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__71077192._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__758687ca._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7604e43b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__77b23eae._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78650ac9._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__789107eb._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78c062a8._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78c4bb1e._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__790d1d4b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8132442f._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__833a2cd9._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__85d6ae4c._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8d933120._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__90ac5665._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__92a4f9bf._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__93d550e2._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__96e59c1f._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9d98fee2._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9fcf6265._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a5b78741._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a8a4b101._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a8d11727._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b2e0e81c._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bf756716._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c09452b3._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c43dcff1._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c923cbdc._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ce993e7b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cfbdd2bf._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d1d8bfb5._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d4d1744d._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d8852803._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ea1961bd._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ee8a3221._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef8c815b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef918d06._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f3693403._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f62cac3a._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f73117e9._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f7651519._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__fc6ffe6c._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web__next-internal_server_app_api_agents_route_actions_29063d1a.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__1c826f12._.js → [root-of-the-server]__3fa9033c._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__6622b514._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__869d9ac0._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__b388693f._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_20a4007d._.js → _7677a7eb._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b6d31783._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_fbb4738c._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_270cb834._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{node_modules_@clerk_nextjs_dist_esm_app-router_2985ec6c._.js → node_modules_@clerk_nextjs_dist_esm_app-router_a7198aa1._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_be826890._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_f2ebd7a9._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_79316445._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_a078c137._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_page_tsx_cd282e82._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_app_unlock_UnlockForm_tsx_ce3149a7._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{packages_web_src_components_6cec00fe._.js → packages_web_src_components_73b876ad._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_board_WorkspaceKanban_tsx_735b7999._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +8 -8
- package/web/.next/standalone/packages/web/.next/static/chunks/{695b7cb206c6dadd.js → 1b825c5c6412ffea.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/479b8cb58c95a8a0.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/6060a9e792ca20e9.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/677af9130f0e0430.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/6d083840413686dd.css +3 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/870a993d28314a90.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/9442ca926d25e16d.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/9f7a0f79147b60c8.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{6b43741a27171ff7.js → b3d2f9a3c2a31b09.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/c5caacf383990e7b.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/edb1bf1dd617f3d6.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{ad82e3dcd5fe1a50.js → f83c5e5b4a7ece08.js} +2 -2
- package/web/.next/standalone/packages/web/package.json +1 -1
- package/web/.next/standalone/packages/web/src/app/api/access/route.ts +3 -211
- package/web/.next/standalone/packages/web/src/app/api/agents/route.ts +5 -0
- package/web/.next/standalone/packages/web/src/app/api/attachments/route.ts +2 -166
- package/web/.next/standalone/packages/web/src/app/api/auth/session/route.ts +4 -52
- package/web/.next/standalone/packages/web/src/app/api/boards/route.ts +3 -517
- package/web/.next/standalone/packages/web/src/app/api/config/route.ts +2 -78
- package/web/.next/standalone/packages/web/src/app/api/context-files/route.ts +2 -198
- package/web/.next/standalone/packages/web/src/app/api/events/route.ts +2 -122
- package/web/.next/standalone/packages/web/src/app/api/executor/health/route.ts +5 -0
- package/web/.next/standalone/packages/web/src/app/api/filesystem/directory/route.ts +2 -142
- package/web/.next/standalone/packages/web/src/app/api/filesystem/pick-directory/route.ts +5 -0
- package/web/.next/standalone/packages/web/src/app/api/github/repos/route.ts +2 -103
- package/web/.next/standalone/packages/web/src/app/api/health/boards/route.ts +2 -69
- package/web/.next/standalone/packages/web/src/app/api/health/sessions/route.ts +2 -74
- package/web/.next/standalone/packages/web/src/app/api/notifications/route.ts +3 -88
- package/web/.next/standalone/packages/web/src/app/api/preferences/route.ts +3 -191
- package/web/.next/standalone/packages/web/src/app/api/repositories/[id]/route.ts +8 -0
- package/web/.next/standalone/packages/web/src/app/api/repositories/route.ts +4 -416
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/actions/route.ts +5 -77
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/archive/route.ts +8 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/checks/route.ts +5 -172
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/diff/route.ts +5 -423
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/feed/route.ts +5 -94
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/feedback/route.ts +5 -44
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/files/route.ts +5 -194
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/keys/route.ts +6 -138
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/kill/route.ts +5 -42
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/output/route.ts +5 -259
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/output/stream/route.ts +5 -108
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/restore/route.ts +5 -46
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/route.ts +6 -204
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/send/route.ts +5 -55
- package/web/.next/standalone/packages/web/src/app/api/sessions/route.ts +2 -102
- package/web/.next/standalone/packages/web/src/app/api/spawn/route.ts +3 -214
- package/web/.next/standalone/packages/web/src/app/api/workspaces/branches/route.ts +2 -230
- package/web/.next/standalone/packages/web/src/app/api/workspaces/route.ts +3 -589
- package/web/.next/standalone/packages/web/src/app/unlock/UnlockForm.tsx +25 -4
- package/web/.next/standalone/packages/web/src/components/board/WorkspaceKanban.tsx +8 -8
- package/web/.next/standalone/packages/web/src/components/layout/WorkspaceSidebarPanel.tsx +199 -84
- package/web/.next/standalone/packages/web/src/components/sessions/ChatPanel.tsx +36 -5
- package/web/.next/standalone/packages/web/src/features/dashboard/DashboardClient.tsx +86 -22
- package/web/.next/standalone/packages/web/src/features/dashboard/components/WorkspaceOverview.tsx +57 -9
- package/web/.next/standalone/packages/web/src/hooks/useSessionOutputStream.ts +11 -0
- package/web/.next/standalone/packages/web/src/lib/auth.ts +90 -14
- package/web/.next/standalone/packages/web/src/lib/guardedRustProxy.ts +25 -0
- package/web/.next/standalone/packages/web/src/lib/liveEvents.ts +64 -7
- package/web/.next/standalone/packages/web/src/lib/proxyRoutes.ts +46 -0
- package/web/.next/standalone/packages/web/src/lib/rustBackendProxy.ts +94 -0
- package/web/.next/standalone/packages/web/src/proxy.ts +3 -20
- package/web/.next/static/chunks/{695b7cb206c6dadd.js → 1b825c5c6412ffea.js} +1 -1
- package/web/.next/static/chunks/479b8cb58c95a8a0.js +1 -0
- package/web/.next/static/chunks/6060a9e792ca20e9.js +1 -0
- package/web/.next/static/chunks/677af9130f0e0430.js +1 -0
- package/web/.next/static/chunks/6d083840413686dd.css +3 -0
- package/web/.next/static/chunks/870a993d28314a90.js +1 -0
- package/web/.next/static/chunks/9442ca926d25e16d.js +1 -0
- package/web/.next/static/chunks/9f7a0f79147b60c8.js +1 -0
- package/web/.next/static/chunks/{6b43741a27171ff7.js → b3d2f9a3c2a31b09.js} +1 -1
- package/web/.next/static/chunks/c5caacf383990e7b.js +1 -0
- package/web/.next/static/chunks/edb1bf1dd617f3d6.js +1 -0
- package/web/.next/static/chunks/{ad82e3dcd5fe1a50.js → f83c5e5b4a7ece08.js} +2 -2
- package/native/conductor +0 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[externals]__f25f12d4._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__005aa909._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__008d962e._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__00cf28e7._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__03ff76ee._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__06365513._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__075f8697._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__097be5a7._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0a0f0f01._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1003246b._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__11918223._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__13ad088c._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1458f8ec._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__14b1d4a3._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1741fb8a._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1875f00e._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1beced71._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1f626a16._.js +0 -129
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2062aaab._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__206c3d8a._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__22f8f0d6._.js +0 -129
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__23bebaf9._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2556a816._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__25788ed3._.js +0 -54
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2c3f6397._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2c909fe3._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30921756._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__31eea08c._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__346d9484._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3edd3509._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3f8b49ba._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3f8e82c2._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__44d59fd0._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__48875cbb._.js +0 -7
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__49c6a20e._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4ac9d639._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4c3fb752._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4ca8b259._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4dab6a6a._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__53385c40._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__544326ac._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__54a218f0._.js +0 -54
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__55e337f7._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5661ca72._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5cd49624._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5e0533de._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5e161db4._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5ebcb223._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5fd609c9._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__60cf7bf4._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__60ee4897._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6559c1a4._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__659938b1._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6712f45a._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__69227de6._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6ab08a39._.js +0 -129
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6c10c03b._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6cd54de1._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6ce2b5d7._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6cfd00d2._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6d62709d._.js +0 -129
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6e08e4e4._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__749331b0._.js +0 -54
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__74a53184._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__76c16426._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__778e46a1._.js +0 -129
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7a26e452._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7ba96fa5._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7e684560._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__848eb266._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8596d782._.js +0 -7
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__85d8966b._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__86aff2b8._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__879cf4d2._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__881858fa._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__885e3a00._.js +0 -54
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__887ea436._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__893f6b3b._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__89dfcd05._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8cc5826f._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__913af875._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__91b42119._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__93ce1b75._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__96633022._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__96951362._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__971fcc75._.js +0 -9
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__99da6324._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9f07930d._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9f36b7ec._.js +0 -129
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9fd08bbc._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a05953cc._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a0b6570d._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a3766ac1._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a3bfaabf._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a420e374._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a4a33247._.js +0 -54
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ac544bb5._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ad84d2e0._.js +0 -54
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b3095e9d._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b59abfbd._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b9692a3c._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bcc08c70._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__be051d52._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bea07e07._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c1759514._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c2ef2bfc._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c8618cb1._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ca8a18f8._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cafd7bb3._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cb112606._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cc74ea40._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cd3692a0._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cf3cdecd._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d09e7a99._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d40b50e7._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d4721d30._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d538c110._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d73ea818._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__db3d0133._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__dd0cf085._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__de0f2533._.js +0 -7
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e113f6df._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e1a418bc._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e6c1d827._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ea69c4ce._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eac16890._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eb1dfcc6._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ee75d43a._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef773ea6._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f0d15920._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f15cbcfc._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f48eb2d4._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__fb6ab669._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__fe8419b5._.js +0 -129
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0e4dc4f7.js +0 -4
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_dd27f857.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_e445b36c.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f375f3c4.js +0 -28
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_core_dist_index_cdd30418.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-amp_dist_index_bf3d8239.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-ccr_dist_index_69cbf726.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-claude-code_dist_index_31314e43.js +0 -125
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-cursor-cli_dist_index_8d5cc426.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-droid_dist_index_f731227a.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-gemini_dist_index_b2d219e8.js +0 -54
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-github-copilot_dist_index_9f80cb45.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-opencode_dist_index_7c7015da.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-qwen-code_dist_index_46dd8653.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_notifier-desktop_dist_index_ef3473f0.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_notifier-discord_dist_index_34257226.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_scm-github_dist_index_3b5a621e.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_terminal-web_dist_index_1e0706d3.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_tracker-github_dist_index_2d7af62f.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web_src_lib_13fee5eb._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_web_src_lib_d64596cc._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b88bcf2c._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_ad33a435._.js +0 -3
- package/web/.next/standalone/packages/web/.next/static/chunks/062888342200567f.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/8221b78965a50858.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/858f7ae5c23d7b37.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/8de84e208e201d72.css +0 -3
- package/web/.next/standalone/packages/web/.next/static/chunks/a8d4e0d75ca51921.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/ac6a06c17a4f651f.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/c4ea57fb949fb623.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/d9d05e7b540400af.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/f5d9ad0f62ede339.js +0 -1
- package/web/.next/standalone/packages/web/src/lib/services.ts +0 -319
- package/web/.next/static/chunks/062888342200567f.js +0 -1
- package/web/.next/static/chunks/8221b78965a50858.js +0 -1
- package/web/.next/static/chunks/858f7ae5c23d7b37.js +0 -1
- package/web/.next/static/chunks/8de84e208e201d72.css +0 -3
- package/web/.next/static/chunks/a8d4e0d75ca51921.js +0 -1
- package/web/.next/static/chunks/ac6a06c17a4f651f.js +0 -1
- package/web/.next/static/chunks/c4ea57fb949fb623.js +0 -1
- package/web/.next/static/chunks/d9d05e7b540400af.js +0 -1
- package/web/.next/static/chunks/f5d9ad0f62ede339.js +0 -1
- /package/web/.next/standalone/packages/web/.next/static/{UGPSYGs8x8jahGnVodP_c → e49CDY4d0gPQtcy9IRzk2}/_buildManifest.js +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{UGPSYGs8x8jahGnVodP_c → e49CDY4d0gPQtcy9IRzk2}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{UGPSYGs8x8jahGnVodP_c → e49CDY4d0gPQtcy9IRzk2}/_ssgManifest.js +0 -0
- /package/web/.next/static/{UGPSYGs8x8jahGnVodP_c → e49CDY4d0gPQtcy9IRzk2}/_buildManifest.js +0 -0
- /package/web/.next/static/{UGPSYGs8x8jahGnVodP_c → e49CDY4d0gPQtcy9IRzk2}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{UGPSYGs8x8jahGnVodP_c → e49CDY4d0gPQtcy9IRzk2}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,347,e=>{e.v({name:"next",version:"16.1.6",description:"The React Framework",main:"./dist/server/next.js",license:"MIT",repository:"vercel/next.js",bugs:"https://github.com/vercel/next.js/issues",homepage:"https://nextjs.org",types:"index.d.ts",files:["dist","app.js","app.d.ts","babel.js","babel.d.ts","client.js","client.d.ts","compat","cache.js","cache.d.ts","constants.js","constants.d.ts","document.js","document.d.ts","dynamic.js","dynamic.d.ts","error.js","error.d.ts","future","legacy","script.js","script.d.ts","server.js","server.d.ts","head.js","head.d.ts","image.js","image.d.ts","link.js","link.d.ts","form.js","form.d.ts","router.js","router.d.ts","jest.js","jest.d.ts","og.js","og.d.ts","root-params.js","root-params.d.ts","types.d.ts","types.js","index.d.ts","types/global.d.ts","types/compiled.d.ts","image-types/global.d.ts","navigation-types/navigation.d.ts","navigation-types/compat/navigation.d.ts","font","navigation.js","navigation.d.ts","headers.js","headers.d.ts","navigation-types","web-vitals.js","web-vitals.d.ts","experimental/testing/server.js","experimental/testing/server.d.ts","experimental/testmode/playwright.js","experimental/testmode/playwright.d.ts","experimental/testmode/playwright/msw.js","experimental/testmode/playwright/msw.d.ts","experimental/testmode/proxy.js","experimental/testmode/proxy.d.ts"],bin:{next:"./dist/bin/next"},scripts:{dev:"cross-env NEXT_SERVER_NO_MANGLE=1 taskr",build:"taskr release",prepublishOnly:"cd ../../ && turbo run build",types:"tsc --project tsconfig.build.json --declaration --emitDeclarationOnly --stripInternal --declarationDir dist",typescript:"tsec --noEmit","ncc-compiled":"taskr ncc",storybook:"BROWSER=none storybook dev -p 6006","build-storybook":"storybook build","test-storybook":"test-storybook"},taskr:{requires:["./taskfile-webpack.js","./taskfile-ncc.js","./taskfile-swc.js","./taskfile-watch.js"]},dependencies:{"@next/env":"16.1.6","@swc/helpers":"0.5.15","baseline-browser-mapping":"^2.8.3","caniuse-lite":"^1.0.30001579",postcss:"8.4.31","styled-jsx":"5.1.6"},peerDependencies:{"@opentelemetry/api":"^1.1.0","@playwright/test":"^1.51.1","babel-plugin-react-compiler":"*",react:"^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0","react-dom":"^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",sass:"^1.3.0"},peerDependenciesMeta:{"babel-plugin-react-compiler":{optional:!0},sass:{optional:!0},"@opentelemetry/api":{optional:!0},"@playwright/test":{optional:!0}},optionalDependencies:{sharp:"^0.34.4","@next/swc-darwin-arm64":"16.1.6","@next/swc-darwin-x64":"16.1.6","@next/swc-linux-arm64-gnu":"16.1.6","@next/swc-linux-arm64-musl":"16.1.6","@next/swc-linux-x64-gnu":"16.1.6","@next/swc-linux-x64-musl":"16.1.6","@next/swc-win32-arm64-msvc":"16.1.6","@next/swc-win32-x64-msvc":"16.1.6"},devDependencies:{"@babel/code-frame":"7.26.2","@babel/core":"7.26.10","@babel/eslint-parser":"7.24.6","@babel/generator":"7.27.0","@babel/plugin-syntax-bigint":"7.8.3","@babel/plugin-syntax-dynamic-import":"7.8.3","@babel/plugin-syntax-import-attributes":"7.26.0","@babel/plugin-syntax-jsx":"7.25.9","@babel/plugin-syntax-typescript":"7.25.4","@babel/plugin-transform-class-properties":"7.25.9","@babel/plugin-transform-export-namespace-from":"7.25.9","@babel/plugin-transform-modules-commonjs":"7.26.3","@babel/plugin-transform-numeric-separator":"7.25.9","@babel/plugin-transform-object-rest-spread":"7.25.9","@babel/plugin-transform-runtime":"7.26.10","@babel/preset-env":"7.26.9","@babel/preset-react":"7.26.3","@babel/preset-typescript":"7.27.0","@babel/runtime":"7.27.0","@babel/traverse":"7.27.0","@babel/types":"7.27.0","@base-ui-components/react":"1.0.0-beta.2","@capsizecss/metrics":"3.4.0","@edge-runtime/cookies":"6.0.0","@edge-runtime/ponyfill":"4.0.0","@edge-runtime/primitives":"6.0.0","@hapi/accept":"5.0.2","@jest/transform":"29.5.0","@jest/types":"29.5.0","@modelcontextprotocol/sdk":"1.18.1","@mswjs/interceptors":"0.23.0","@napi-rs/triples":"1.2.0","@next/font":"16.1.6","@next/polyfill-module":"16.1.6","@next/polyfill-nomodule":"16.1.6","@next/react-refresh-utils":"16.1.6","@next/swc":"16.1.6","@opentelemetry/api":"1.6.0","@playwright/test":"1.51.1","@rspack/core":"1.6.7","@storybook/addon-a11y":"8.6.0","@storybook/addon-essentials":"8.6.0","@storybook/addon-interactions":"8.6.0","@storybook/addon-webpack5-compiler-swc":"3.0.0","@storybook/blocks":"8.6.0","@storybook/react":"8.6.0","@storybook/react-webpack5":"8.6.0","@storybook/test":"8.6.0","@storybook/test-runner":"0.21.0","@swc/core":"1.11.24","@swc/types":"0.1.7","@taskr/clear":"1.1.0","@taskr/esnext":"1.1.0","@types/babel__code-frame":"7.0.6","@types/babel__core":"7.20.5","@types/babel__generator":"7.27.0","@types/babel__template":"7.4.4","@types/babel__traverse":"7.20.7","@types/bytes":"3.1.1","@types/ci-info":"2.0.0","@types/compression":"0.0.36","@types/content-disposition":"0.5.4","@types/content-type":"1.1.3","@types/cookie":"0.3.3","@types/cross-spawn":"6.0.0","@types/debug":"4.1.5","@types/express-serve-static-core":"4.17.33","@types/fresh":"0.5.0","@types/glob":"7.1.1","@types/jsonwebtoken":"9.0.0","@types/lodash":"4.14.198","@types/lodash.curry":"4.1.6","@types/path-to-regexp":"1.7.0","@types/picomatch":"2.3.3","@types/platform":"1.3.4","@types/react":"19.0.8","@types/react-dom":"19.0.3","@types/react-is":"18.2.4","@types/semver":"7.3.1","@types/send":"0.14.4","@types/serve-handler":"6.1.4","@types/shell-quote":"1.7.1","@types/tar":"6.1.5","@types/text-table":"0.2.1","@types/ua-parser-js":"0.7.36","@types/webpack-sources1":"npm:@types/webpack-sources@0.1.5","@types/ws":"8.2.0","@vercel/ncc":"0.34.0","@vercel/nft":"0.27.1","@vercel/routing-utils":"5.2.0","@vercel/turbopack-ecmascript-runtime":"*",acorn:"8.14.0",anser:"1.4.9",arg:"4.1.0",assert:"2.0.0","async-retry":"1.2.3","async-sema":"3.0.0","axe-playwright":"2.0.3","babel-loader":"10.0.0","babel-plugin-react-compiler":"0.0.0-experimental-3fde738-20250918","babel-plugin-transform-define":"2.0.0","babel-plugin-transform-react-remove-prop-types":"0.4.24","browserify-zlib":"0.2.0",browserslist:"4.28.0",buffer:"5.6.0",busboy:"1.6.0",bytes:"3.1.1","ci-info":"watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540","cli-select":"1.1.2","client-only":"0.0.1",commander:"12.1.0","comment-json":"3.0.3",compression:"1.7.4",conf:"5.0.0","constants-browserify":"1.0.0","content-disposition":"0.5.3","content-type":"1.0.4",cookie:"0.4.1","cross-env":"6.0.3","cross-spawn":"7.0.3","crypto-browserify":"3.12.0","css-loader":"7.1.2","css.escape":"1.5.1","cssnano-preset-default":"7.0.6","data-uri-to-buffer":"3.0.1",debug:"4.1.1",devalue:"2.0.1","domain-browser":"4.19.0","edge-runtime":"4.0.1",events:"3.3.0","find-up":"4.1.0",fresh:"0.5.2",glob:"7.1.7","gzip-size":"5.1.1","http-proxy":"1.18.1","http-proxy-agent":"5.0.0","https-browserify":"1.0.0","https-proxy-agent":"5.0.1","icss-utils":"5.1.0","ignore-loader":"0.1.2","image-size":"1.2.1","ipaddr.js":"2.2.0","is-docker":"2.0.0","is-wsl":"2.2.0","jest-worker":"27.5.1",json5:"2.2.3",jsonwebtoken:"9.0.0","loader-runner":"4.3.0","loader-utils2":"npm:loader-utils@2.0.4","loader-utils3":"npm:loader-utils@3.1.3","lodash.curry":"4.1.1","mini-css-extract-plugin":"2.4.4",msw:"2.3.0",nanoid:"3.1.32","native-url":"0.3.4","neo-async":"2.6.1","node-html-parser":"5.3.3",ora:"4.0.4","os-browserify":"0.3.0","p-limit":"3.1.0","p-queue":"6.6.2","path-browserify":"1.0.1","path-to-regexp":"6.3.0",picomatch:"4.0.1","postcss-flexbugs-fixes":"5.0.2","postcss-modules-extract-imports":"3.0.0","postcss-modules-local-by-default":"4.2.0","postcss-modules-scope":"3.0.0","postcss-modules-values":"4.0.0","postcss-preset-env":"7.4.3","postcss-safe-parser":"6.0.0","postcss-scss":"4.0.3","postcss-value-parser":"4.2.0",process:"0.11.10",punycode:"2.1.1","querystring-es3":"0.2.1","raw-body":"2.4.1","react-refresh":"0.12.0",recast:"0.23.11","regenerator-runtime":"0.13.4","safe-stable-stringify":"2.5.0","sass-loader":"16.0.5","schema-utils2":"npm:schema-utils@2.7.1","schema-utils3":"npm:schema-utils@3.0.0",semver:"7.3.2",send:"0.18.0","serve-handler":"6.1.6","server-only":"0.0.1",setimmediate:"1.0.5","shell-quote":"1.7.3","source-map":"0.6.1","source-map-loader":"5.0.0","source-map08":"npm:source-map@0.8.0-beta.0","stacktrace-parser":"0.1.10",storybook:"8.6.0","stream-browserify":"3.0.0","stream-http":"3.1.1","strict-event-emitter":"0.5.0","string-hash":"1.1.3",string_decoder:"1.3.0","strip-ansi":"6.0.0","style-loader":"4.0.0",superstruct:"1.0.3",tar:"6.1.15",taskr:"1.1.0",terser:"5.27.0","terser-webpack-plugin":"5.3.9","text-table":"0.2.0","timers-browserify":"2.0.12","tty-browserify":"0.0.1",typescript:"5.9.2","ua-parser-js":"1.0.35",unistore:"3.4.1",util:"0.12.4","vm-browserify":"1.1.2",watchpack:"2.4.0","web-vitals":"4.2.1",webpack:"5.98.0","webpack-sources1":"npm:webpack-sources@1.4.3","webpack-sources3":"npm:webpack-sources@3.2.3",ws:"8.2.3",zod:"3.25.76","zod-validation-error":"3.4.0"},keywords:["react","framework","nextjs","web","server","node","front-end","backend","cli","vercel"],engines:{node:">=20.9.0"}})},18566,(e,t,r)=>{t.exports=e.r(76562)},95187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={callServer:function(){return i.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return a.findSourceMapURL}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(32120),a=e.r(92245),l=e.r(35326)},81545,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("007d256d4940662c4a75c8364e8308de6f9fb53073",t.callServer,void 0,t.findSourceMapURL,"detectKeylessEnvDriftAction");e.s(["detectKeylessEnvDriftAction",()=>r])},67585,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let s=e.r(32061);function n({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new s.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},9885,(e,t,r)=>{"use strict";function s(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return s}})},52157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let s=e.r(18050),n=e.r(74080),i=e.r(63599),a=e.r(9885),l=e.r(43369);function o({moduleIds:e}){if("u">typeof window)return null;let t=i.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let s=t.reactLoadableManifest;for(let t of e){if(!s[t])continue;let e=s[t].files;r.push(...e)}}if(0===r.length)return null;let o=(0,l.getDeploymentIdQueryOrEmptyString)();return(0,s.jsx)(s.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,a.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,s.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,n.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let s=e.r(18050),n=e.r(71645),i=e.r(67585),a=e.r(52157);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},c=function(e){let t={...o,...e},r=(0,n.lazy)(()=>t.loader().then(l)),c=t.loading;function u(e){let l=c?(0,s.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,u=o?n.Suspense:n.Fragment,d=t.ssr?(0,s.jsxs)(s.Fragment,{children:["u"<typeof window?(0,s.jsx)(a.PreloadChunks,{moduleIds:t.modules}):null,(0,s.jsx)(r,{...e})]}):(0,s.jsx)(i.BailoutToCSR,{reason:"next/dynamic",children:(0,s.jsx)(r,{...e})});return(0,s.jsx)(u,{...o?{fallback:l}:{},children:d})}return u.displayName="LoadableComponent",u}},70703,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});let s=e.r(55682)._(e.r(69093));function n(e,t){let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,s.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},93375,96248,4816,28069,15331,e=>{"use strict";let t=[".lcl.dev",".lclstage.dev",".lclclerk.com"],r=[".accounts.dev",".accountsstage.dev",".accounts.lclclerk.com"],s=[".lcl.dev",".stg.dev",".lclstage.dev",".stgstage.dev",".dev.lclclerk.com",".stg.lclclerk.com",".accounts.lclclerk.com","accountsstage.dev","accounts.dev"],n=[".lcl.dev","lclstage.dev",".lclclerk.com",".accounts.lclclerk.com"],i=[".accountsstage.dev"];e.s(["CURRENT_DEV_INSTANCE_SUFFIXES",()=>r,"DEV_OR_STAGING_SUFFIXES",()=>s,"LEGACY_DEV_INSTANCE_SUFFIXES",()=>t,"LOCAL_API_URL",()=>"https://api.lclclerk.com","LOCAL_ENV_SUFFIXES",()=>n,"PROD_API_URL",()=>"https://api.clerk.com","STAGING_API_URL",()=>"https://api.clerkstage.dev","STAGING_ENV_SUFFIXES",()=>i],93375);let a=t=>"u">typeof atob&&"function"==typeof atob?atob(t):e.g.Buffer?new e.g.Buffer(t,"base64").toString():t;e.s(["isomorphicAtob",()=>a],96248);let l=t=>"u">typeof btoa&&"function"==typeof btoa?btoa(t):e.g.Buffer?new e.g.Buffer(t).toString("base64"):t;e.s(["isomorphicBtoa",()=>l],4816);let o="pk_live_",c="pk_test_",u=/^(([a-z]+)-){2}([0-9]{1,2})\.clerk\.accounts([a-z.]*)(dev|com)$/i;function d(e){return`${u.test(e)||e.startsWith("clerk.")&&t.some(t=>e.endsWith(t))?c:o}${l(`${e}$`)}`}function p(e){if(!e.endsWith("$"))return!1;let t=e.slice(0,-1);return!t.includes("$")&&t.includes(".")}function f(e,t={}){let r;if(!(e=e||"")||!m(e)){if(t.fatal&&!e)throw Error("Publishable key is missing. Ensure that your publishable key is correctly configured. Double-check your environment configuration for your keys, or access them here: https://dashboard.clerk.com/last-active?path=api-keys");if(t.fatal&&!m(e))throw Error("Publishable key not valid.");return null}let s=e.startsWith(o)?"production":"development";try{r=a(e.split("_")[2])}catch{if(t.fatal)throw Error("Publishable key not valid: Failed to decode key.");return null}if(!p(r)){if(t.fatal)throw Error("Publishable key not valid: Decoded key has invalid format.");return null}let n=r.slice(0,-1);return t.proxyUrl?n=t.proxyUrl:"development"!==s&&t.domain&&t.isSatellite&&(n=`clerk.${t.domain}`),{instanceType:s,frontendApi:n}}function m(e=""){try{if(!(e.startsWith(o)||e.startsWith(c)))return!1;let t=e.split("_");if(3!==t.length)return!1;let r=t[2];if(!r)return!1;return p(a(r))}catch{return!1}}function _(){let e=new Map;return{isDevOrStagingUrl:t=>{if(!t)return!1;let r="string"==typeof t?t:t.hostname,n=e.get(r);return void 0===n&&(n=s.some(e=>r.endsWith(e)),e.set(r,n)),n}}}function b(e){return e.startsWith("test_")||e.startsWith("pk_test_")}function y(e){return e.startsWith("live_")||e.startsWith("pk_live_")}function v(e){return e.startsWith("test_")||e.startsWith("sk_test_")}function g(e){return e.startsWith("live_")||e.startsWith("sk_live_")}async function h(e,t=globalThis.crypto.subtle){let r=new TextEncoder().encode(e);return l(String.fromCharCode(...new Uint8Array(await t.digest("sha-1",r)))).replace(/\+/gi,"-").replace(/\//gi,"_").substring(0,8)}let E=(e,t)=>`${e}_${t}`;e.s(["buildPublishableKey",()=>d,"createDevOrStagingUrlCache",()=>_,"getCookieSuffix",()=>h,"getSuffixedCookieName",()=>E,"isDevelopmentFromPublishableKey",()=>b,"isDevelopmentFromSecretKey",()=>v,"isProductionFromPublishableKey",()=>y,"isProductionFromSecretKey",()=>g,"isPublishableKey",()=>m,"parsePublishableKey",()=>f],28069);let k=e=>{if(0==e.length)return"";if(1==e.length)return e[0];let t=e.slice(0,-1).join(", ");return t+`, or ${e.slice(-1)}`},w=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;function C(e){return w.test(e||"")}function L(e){let t=e||"";return t.charAt(0).toUpperCase()+t.slice(1)}function S(e){return e?e.replace(/([-_][a-z])/g,e=>e.toUpperCase().replace(/-|_/,"")):""}function R(e){return e?e.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`):""}let I=e=>{let t=r=>{if(!r)return r;if(Array.isArray(r))return r.map(e=>"object"==typeof e||Array.isArray(e)?t(e):e);let s={...r};for(let r of Object.keys(s)){let n=e(r.toString());n!==r&&(s[n]=s[r],delete s[r]),"object"==typeof s[n]&&(s[n]=t(s[n]))}return s};return t},P=I(R),U=I(S);function x(e){if("boolean"==typeof e)return e;if(null==e)return!1;if("string"==typeof e){if("true"===e.toLowerCase())return!0;if("false"===e.toLowerCase())return!1}let t=parseInt(e,10);return!isNaN(t)&&t>0}function T(e){return Object.entries(e).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{})}e.s(["camelToSnake",()=>R,"deepCamelToSnake",()=>P,"deepSnakeToCamel",()=>U,"getNonUndefinedValues",()=>T,"isIPV4Address",()=>C,"isTruthy",()=>x,"snakeToCamel",()=>S,"titleize",()=>L,"toSentence",()=>k],15331)},49542,11432,e=>{"use strict";let t=(...e)=>{};e.s(["noop",()=>t],49542);let r=()=>{let e=t,r=t;return{promise:new Promise((t,s)=>{e=t,r=s}),resolve:e,reject:r}};e.s(["createDeferredPromise",()=>r],11432)},41383,78754,e=>{"use strict";e.i(47167);let t=()=>!1,r=()=>!1,s=()=>{try{return!0}catch{}return!1};function n(e,t,r){return"function"==typeof e?e(t):void 0!==e?e:void 0!==r?r:void 0}e.s(["isDevelopmentEnvironment",()=>t,"isProductionEnvironment",()=>s,"isTestEnvironment",()=>r],41383),e.s(["handleValueOrFn",()=>n],78754)},2193,9580,3949,e=>{"use strict";var t=e.i(41383);function r(e){return Promise.all(Array.from(e).map(e=>e.then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))}e.i(78754),e.i(49542),e.i(11432);let s=e=>{(0,t.isDevelopmentEnvironment)()&&console.error(`Clerk: ${e}`)},n=new Set(["__proto__","constructor","prototype"]),i=(e,t)=>{if(e&&t)for(let r in e)!n.has(r)&&(Object.prototype.hasOwnProperty.call(e,r)&&null!==e[r]&&"object"==typeof e[r]?(void 0===t[r]&&(t[r]=new(Object.getPrototypeOf(e[r])).constructor),i(e[r],t[r])):Object.prototype.hasOwnProperty.call(e,r)&&void 0!==e[r]&&(t[r]=e[r]))},a=(e,t)=>{if(e&&t)for(let r in e)!n.has(r)&&(Object.prototype.hasOwnProperty.call(e,r)&&null!==e[r]&&"object"==typeof e[r]?(void 0===t[r]&&(t[r]=new(Object.getPrototypeOf(e[r])).constructor),a(e[r],t[r])):Object.prototype.hasOwnProperty.call(e,r)&&void 0===t[r]&&(t[r]=e[r]))};function l(e){return e.endsWith(".lclstage.dev")||e.endsWith(".stgstage.dev")||e.endsWith(".clerkstage.dev")||e.endsWith(".accountsstage.dev")}e.s(["allSettled",()=>r,"fastDeepMergeAndKeep",()=>a,"fastDeepMergeAndReplace",()=>i,"logErrorInDevMode",()=>s],9580),e.s(["isStaging",()=>l],3949),e.s([],2193)},78424,22375,82524,89397,e=>{"use strict";let t;e.i(2193);var r,s,n,i,a,l,o,c,u=e.i(41383),d=e.i(47167),p=e.i(93375);e.i(96248),e.i(4816);var f=e.i(28069),m=e.i(15331);e.s([],22375),d.default.env.NEXT_PUBLIC_CLERK_JS_VERSION,d.default.env.NEXT_PUBLIC_CLERK_JS_URL,d.default.env.CLERK_API_VERSION,d.default.env.CLERK_SECRET_KEY,d.default.env.CLERK_MACHINE_SECRET_KEY;let _=d.default.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY||"";d.default.env.CLERK_ENCRYPTION_KEY,d.default.env.CLERK_API_URL||(t=(0,f.parsePublishableKey)(_)?.frontendApi,t?.startsWith("clerk.")&&p.LEGACY_DEV_INSTANCE_SUFFIXES.some(e=>t?.endsWith(e))?p.PROD_API_URL:p.LOCAL_ENV_SUFFIXES.some(e=>t?.endsWith(e))?p.LOCAL_API_URL:p.STAGING_ENV_SUFFIXES.some(e=>t?.endsWith(e))?p.STAGING_API_URL:p.PROD_API_URL),d.default.env.NEXT_PUBLIC_CLERK_DOMAIN,d.default.env.NEXT_PUBLIC_CLERK_PROXY_URL,(0,m.isTruthy)(d.default.env.NEXT_PUBLIC_CLERK_IS_SATELLITE),d.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL,d.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL;let b={name:"@clerk/nextjs",version:"6.39.0",environment:"production"};(0,m.isTruthy)(d.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DISABLED),(0,m.isTruthy)(d.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DEBUG);let y=(0,m.isTruthy)(d.default.env.NEXT_PUBLIC_CLERK_KEYLESS_DISABLED)||!1;e.s(["KEYLESS_DISABLED",()=>y,"SDK_METADATA",()=>b],82524);var v=e.i(347);let g=null!=(a=null==(i=null==(n=v.default)?void 0:n.version)?void 0:i.startsWith("13."))&&a||null!=(c=null==(o=null==(l=v.default)?void 0:l.version)?void 0:o.startsWith("14.0"))&&c;r=0,(null==(s=v.default)?void 0:s.version)&&isNaN(parseInt(v.default.version.split(".")[0],10)),e.s(["isNextWithUnstableServerActions",()=>g],89397);let h=!g&&(0,u.isDevelopmentEnvironment)()&&!y;e.s(["canUseKeyless",()=>h],78424)},96211,e=>{"use strict";var t=e.i(18566),r=e.i(71645),s=e.i(78424);function n(n){var i;let a=(null==(i=(0,t.useSelectedLayoutSegments)()[0])?void 0:i.startsWith("/_not-found"))||!1;return(0,r.useEffect)(()=>{s.canUseKeyless&&!a&&e.A(94773).then(e=>e.syncKeylessConfigAction({...n,returnUrl:window.location.href}))},[a]),n.children}e.s(["KeylessCookieSync",()=>n])},27534,e=>{"use strict";e.i(92448);var t=e.i(65829);e.i(97651),e.s([],73483),e.i(73483),e.s(["AuthenticateWithRedirectCallback",()=>t.AuthenticateWithRedirectCallback,"ClerkDegraded",()=>t.ClerkDegraded,"ClerkFailed",()=>t.ClerkFailed,"ClerkLoaded",()=>t.ClerkLoaded,"ClerkLoading",()=>t.ClerkLoading,"MultisessionAppSupport",()=>t.MultisessionAppSupport,"Protect",()=>t.Protect,"RedirectToCreateOrganization",()=>t.RedirectToCreateOrganization,"RedirectToOrganizationProfile",()=>t.RedirectToOrganizationProfile,"RedirectToSignIn",()=>t.RedirectToSignIn,"RedirectToSignUp",()=>t.RedirectToSignUp,"RedirectToTasks",()=>t.RedirectToTasks,"RedirectToUserProfile",()=>t.RedirectToUserProfile,"SignedIn",()=>t.SignedIn,"SignedOut",()=>t.SignedOut],27534)},40578,e=>{"use strict";e.i(92448);var t=e.i(65389);e.i(97651);var r=e.i(74041),s=e.i(71645);let n=s.default.createContext(null);function i({authPromise:e,children:t}){return s.default.createElement(n.Provider,{value:e},t)}function a(e={}){let i=(0,r.useRouter)(),l=s.default.useContext(n),o=l;return(l&&"then"in l&&(o=s.default.use(l)),"u"<typeof window)?i?(0,t.useAuth)(e):(0,t.useDerivedAuth)({...o,...e}):(0,t.useAuth)({...o,...e})}e.s(["PromisifiedAuthProvider",()=>i,"usePromisifiedAuth",()=>a])},96136,e=>{"use strict";e.i(92448);var t=e.i(27085),r=e.i(65389);e.i(10507),e.i(80240);var s=e.i(13039),n=e.i(40578);e.s([],93819),e.i(93819),e.s(["EmailLinkErrorCode",()=>s.EmailLinkErrorCode,"EmailLinkErrorCodeStatus",()=>s.EmailLinkErrorCodeStatus,"isClerkAPIResponseError",()=>s.isClerkAPIResponseError,"isClerkRuntimeError",()=>s.isClerkRuntimeError,"isEmailLinkError",()=>s.isEmailLinkError,"isKnownError",()=>s.isKnownError,"isMetamaskError",()=>s.isMetamaskError,"isReverificationCancelledError",()=>s.isReverificationCancelledError,"useAuth",()=>n.usePromisifiedAuth,"useClerk",()=>t.useClerk,"useEmailLink",()=>r.useEmailLink,"useOrganization",()=>t.useOrganization,"useOrganizationCreationDefaults",()=>t.useOrganizationCreationDefaults,"useOrganizationList",()=>t.useOrganizationList,"useReverification",()=>t.useReverification,"useSession",()=>t.useSession,"useSessionList",()=>t.useSessionList,"useSignIn",()=>r.useSignIn,"useSignUp",()=>r.useSignUp,"useUser",()=>t.useUser],96136)},8341,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={cancelIdleCallback:function(){return a},requestIdleCallback:function(){return i}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},a="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79520,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return g},handleClientScriptLoad:function(){return b},initScriptLoader:function(){return y}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(55682),a=e.r(90809),l=e.r(18050),o=i._(e.r(74080)),c=a._(e.r(71645)),u=e.r(42732),d=e.r(22737),p=e.r(8341),f=new Map,m=new Set,_=e=>{let{src:t,id:r,onLoad:s=()=>{},onReady:n=null,dangerouslySetInnerHTML:i,children:a="",strategy:l="afterInteractive",onError:c,stylesheets:u}=e,p=r||t;if(p&&m.has(p))return;if(f.has(t)){m.add(p),f.get(t).then(s,c);return}let _=()=>{n&&n(),m.add(p)},b=document.createElement("script"),y=new Promise((e,t)=>{b.addEventListener("load",function(t){e(),s&&s.call(this,t),_()}),b.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});i?(b.innerHTML=i.__html||"",_()):a?(b.textContent="string"==typeof a?a:Array.isArray(a)?a.join(""):"",_()):t&&(b.src=t,f.set(t,y)),(0,d.setAttributesFromProps)(b,e),"worker"===l&&b.setAttribute("type","text/partytown"),b.setAttribute("data-nscript",l),u&&(e=>{if(o.default.preinit)return e.forEach(e=>{o.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(u),document.body.appendChild(b)};function b(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,p.requestIdleCallback)(()=>_(e))}):_(e)}function y(e){e.forEach(b),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");m.add(t)})}function v(e){let{id:t,src:r="",onLoad:s=()=>{},onReady:n=null,strategy:i="afterInteractive",onError:a,stylesheets:d,...f}=e,{updateScripts:b,scripts:y,getIsSsr:v,appDir:g,nonce:h}=(0,c.useContext)(u.HeadManagerContext);h=f.nonce||h;let E=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let e=t||r;E.current||(n&&e&&m.has(e)&&n(),E.current=!0)},[n,t,r]);let k=(0,c.useRef)(!1);if((0,c.useEffect)(()=>{if(!k.current){if("afterInteractive"===i)_(e);else"lazyOnload"===i&&("complete"===document.readyState?(0,p.requestIdleCallback)(()=>_(e)):window.addEventListener("load",()=>{(0,p.requestIdleCallback)(()=>_(e))}));k.current=!0}},[e,i]),("beforeInteractive"===i||"worker"===i)&&(b?(y[i]=(y[i]||[]).concat([{id:t,src:r,onLoad:s,onReady:n,onError:a,...f,nonce:h}]),b(y)):v&&v()?m.add(t||r):v&&!v()&&_({...e,nonce:h})),g){if(d&&d.forEach(e=>{o.default.preinit(e,{as:"style"})}),"beforeInteractive"===i)if(!r)return f.dangerouslySetInnerHTML&&(f.children=f.dangerouslySetInnerHTML.__html,delete f.dangerouslySetInnerHTML),(0,l.jsx)("script",{nonce:h,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...f,id:t}])})`}});else return o.default.preload(r,f.integrity?{as:"script",integrity:f.integrity,nonce:h,crossOrigin:f.crossOrigin}:{as:"script",nonce:h,crossOrigin:f.crossOrigin}),(0,l.jsx)("script",{nonce:h,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([r,{...f,id:t}])})`}});"afterInteractive"===i&&r&&o.default.preload(r,f.integrity?{as:"script",integrity:f.integrity,nonce:h,crossOrigin:f.crossOrigin}:{as:"script",nonce:h,crossOrigin:f.crossOrigin})}return null}Object.defineProperty(v,"__nextScript",{value:!0});let g=v;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3303,(e,t,r)=>{t.exports=e.r(79520)},41895,e=>{"use strict";var t=e.i(92448);e.i(38821);var r=e.i(75369);let s=new Set;var n=e.i(70703),i=e.i(18566),a=e.i(347),l=e.i(71645);let o="u">typeof window?l.default.useLayoutEffect:l.default.useEffect,c=l.default.createContext(void 0);c.displayName="ClerkNextOptionsCtx";let u=()=>{let e=l.default.useContext(c);return null==e?void 0:e.value},d=e=>{let{children:t,options:r}=e;return l.default.createElement(c.Provider,{value:{value:r}},t)};var p=e.i(27085);e.i(97651);var f=e.i(99656),m=e.i(3303);function _(e){let{publishableKey:t,clerkJSUrl:r,clerkJSVersion:s,clerkJSVariant:n,nonce:i}=u(),{domain:a,proxyUrl:o}=(0,p.useClerk)();if(!t)return null;let c={domain:a,proxyUrl:o,publishableKey:t,clerkJSUrl:r,clerkJSVersion:s,clerkJSVariant:n,nonce:i},d=(0,f.clerkJsScriptUrl)(c),_="app"===e.router?"script":m.default;return l.default.createElement(_,{src:d,"data-clerk-js-script":!0,async:!0,defer:"pages"!==e.router&&void 0,crossOrigin:"anonymous",strategy:"pages"===e.router?"beforeInteractive":void 0,...(0,f.buildClerkJsScriptAttributes)(c)})}var b=e.i(78424),y=e.i(47167);e.i(22375);var v=e.i(15331),g=e.i(82524);let h=e=>{var t;return{...e,publishableKey:e.publishableKey||y.default.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY||"",clerkJSUrl:e.clerkJSUrl||y.default.env.NEXT_PUBLIC_CLERK_JS_URL,clerkJSVersion:e.clerkJSVersion||y.default.env.NEXT_PUBLIC_CLERK_JS_VERSION,proxyUrl:e.proxyUrl||y.default.env.NEXT_PUBLIC_CLERK_PROXY_URL||"",domain:e.domain||y.default.env.NEXT_PUBLIC_CLERK_DOMAIN||"",isSatellite:e.isSatellite||(0,v.isTruthy)(y.default.env.NEXT_PUBLIC_CLERK_IS_SATELLITE),signInUrl:e.signInUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL||"",signUpUrl:e.signUpUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL||"",signInForceRedirectUrl:e.signInForceRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL||"",signUpForceRedirectUrl:e.signUpForceRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL||"",signInFallbackRedirectUrl:e.signInFallbackRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL||"",signUpFallbackRedirectUrl:e.signUpFallbackRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL||"",afterSignInUrl:e.afterSignInUrl||y.default.env.NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL||"",afterSignUpUrl:e.afterSignUpUrl||y.default.env.NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL||"",newSubscriptionRedirectUrl:e.newSubscriptionRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_CHECKOUT_CONTINUE_URL||"",telemetry:null!=(t=e.telemetry)?t:{disabled:(0,v.isTruthy)(y.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DISABLED),debug:(0,v.isTruthy)(y.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DEBUG)},sdkMetadata:g.SDK_METADATA}};e.i(75372);var E=e.i(24440),k=e.i(22528);let w=()=>{var e,t;let r=(0,p.useClerk)(),{pagesRouter:s}=(0,k.usePagesRouter)();return null==(t=r.telemetry)||t.record((0,E.eventFrameworkMetadata)({router:s?"pages":"app",...(null==(e=null==globalThis?void 0:globalThis.next)?void 0:e.version)?{nextjsVersion:globalThis.next.version}:{}})),null};var C=e.i(89397),L=e.i(81545),S=e.i(95187);let R=(0,S.createServerReference)("000a6182e56f982c29f9890d970fbb9c61053eb71d",S.callServer,void 0,S.findSourceMapURL,"invalidateCacheAction"),I=e=>{var t;return null!=window.__clerk_internal_navigations||(window.__clerk_internal_navigations={}),null!=(t=window.__clerk_internal_navigations)[e]||(t[e]={}),window.__clerk_internal_navigations[e]},P=e=>{let{windowNav:t,routerNav:r,name:s}=e,n=(0,i.usePathname)(),[a,o]=(0,l.useTransition)();t&&(I(s).fun=(e,n)=>new Promise(i=>{var a,l;null!=(a=I(s)).promisesBuffer||(a.promisesBuffer=[]),null==(l=I(s).promisesBuffer)||l.push(i),o(()=>{var s,i,a;(null==(s=null==n?void 0:n.__internal_metadata)?void 0:s.navigationType)==="internal"?t((null!=(a=null==(i=window.next)?void 0:i.version)?a:"")<"14.1.0"?history.state:null,"",e):r(e)})}));let c=()=>{var e;null==(e=I(s).promisesBuffer)||e.forEach(e=>e()),I(s).promisesBuffer=[]};return(0,l.useEffect)(()=>(c(),c),[]),(0,l.useEffect)(()=>{a||c()},[n,a]),(0,l.useCallback)((e,t)=>I(s).fun(e,t),[])},U=(0,n.default)(()=>e.A(98943).then(e=>e.KeylessCreatorOrReader)),x=e=>{let n,c;if(C.isNextWithUnstableServerActions){var p,f;let e=`Clerk:
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,347,e=>{e.v({name:"next",version:"16.1.6",description:"The React Framework",main:"./dist/server/next.js",license:"MIT",repository:"vercel/next.js",bugs:"https://github.com/vercel/next.js/issues",homepage:"https://nextjs.org",types:"index.d.ts",files:["dist","app.js","app.d.ts","babel.js","babel.d.ts","client.js","client.d.ts","compat","cache.js","cache.d.ts","constants.js","constants.d.ts","document.js","document.d.ts","dynamic.js","dynamic.d.ts","error.js","error.d.ts","future","legacy","script.js","script.d.ts","server.js","server.d.ts","head.js","head.d.ts","image.js","image.d.ts","link.js","link.d.ts","form.js","form.d.ts","router.js","router.d.ts","jest.js","jest.d.ts","og.js","og.d.ts","root-params.js","root-params.d.ts","types.d.ts","types.js","index.d.ts","types/global.d.ts","types/compiled.d.ts","image-types/global.d.ts","navigation-types/navigation.d.ts","navigation-types/compat/navigation.d.ts","font","navigation.js","navigation.d.ts","headers.js","headers.d.ts","navigation-types","web-vitals.js","web-vitals.d.ts","experimental/testing/server.js","experimental/testing/server.d.ts","experimental/testmode/playwright.js","experimental/testmode/playwright.d.ts","experimental/testmode/playwright/msw.js","experimental/testmode/playwright/msw.d.ts","experimental/testmode/proxy.js","experimental/testmode/proxy.d.ts"],bin:{next:"./dist/bin/next"},scripts:{dev:"cross-env NEXT_SERVER_NO_MANGLE=1 taskr",build:"taskr release",prepublishOnly:"cd ../../ && turbo run build",types:"tsc --project tsconfig.build.json --declaration --emitDeclarationOnly --stripInternal --declarationDir dist",typescript:"tsec --noEmit","ncc-compiled":"taskr ncc",storybook:"BROWSER=none storybook dev -p 6006","build-storybook":"storybook build","test-storybook":"test-storybook"},taskr:{requires:["./taskfile-webpack.js","./taskfile-ncc.js","./taskfile-swc.js","./taskfile-watch.js"]},dependencies:{"@next/env":"16.1.6","@swc/helpers":"0.5.15","baseline-browser-mapping":"^2.8.3","caniuse-lite":"^1.0.30001579",postcss:"8.4.31","styled-jsx":"5.1.6"},peerDependencies:{"@opentelemetry/api":"^1.1.0","@playwright/test":"^1.51.1","babel-plugin-react-compiler":"*",react:"^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0","react-dom":"^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",sass:"^1.3.0"},peerDependenciesMeta:{"babel-plugin-react-compiler":{optional:!0},sass:{optional:!0},"@opentelemetry/api":{optional:!0},"@playwright/test":{optional:!0}},optionalDependencies:{sharp:"^0.34.4","@next/swc-darwin-arm64":"16.1.6","@next/swc-darwin-x64":"16.1.6","@next/swc-linux-arm64-gnu":"16.1.6","@next/swc-linux-arm64-musl":"16.1.6","@next/swc-linux-x64-gnu":"16.1.6","@next/swc-linux-x64-musl":"16.1.6","@next/swc-win32-arm64-msvc":"16.1.6","@next/swc-win32-x64-msvc":"16.1.6"},devDependencies:{"@babel/code-frame":"7.26.2","@babel/core":"7.26.10","@babel/eslint-parser":"7.24.6","@babel/generator":"7.27.0","@babel/plugin-syntax-bigint":"7.8.3","@babel/plugin-syntax-dynamic-import":"7.8.3","@babel/plugin-syntax-import-attributes":"7.26.0","@babel/plugin-syntax-jsx":"7.25.9","@babel/plugin-syntax-typescript":"7.25.4","@babel/plugin-transform-class-properties":"7.25.9","@babel/plugin-transform-export-namespace-from":"7.25.9","@babel/plugin-transform-modules-commonjs":"7.26.3","@babel/plugin-transform-numeric-separator":"7.25.9","@babel/plugin-transform-object-rest-spread":"7.25.9","@babel/plugin-transform-runtime":"7.26.10","@babel/preset-env":"7.26.9","@babel/preset-react":"7.26.3","@babel/preset-typescript":"7.27.0","@babel/runtime":"7.27.0","@babel/traverse":"7.27.0","@babel/types":"7.27.0","@base-ui-components/react":"1.0.0-beta.2","@capsizecss/metrics":"3.4.0","@edge-runtime/cookies":"6.0.0","@edge-runtime/ponyfill":"4.0.0","@edge-runtime/primitives":"6.0.0","@hapi/accept":"5.0.2","@jest/transform":"29.5.0","@jest/types":"29.5.0","@modelcontextprotocol/sdk":"1.18.1","@mswjs/interceptors":"0.23.0","@napi-rs/triples":"1.2.0","@next/font":"16.1.6","@next/polyfill-module":"16.1.6","@next/polyfill-nomodule":"16.1.6","@next/react-refresh-utils":"16.1.6","@next/swc":"16.1.6","@opentelemetry/api":"1.6.0","@playwright/test":"1.51.1","@rspack/core":"1.6.7","@storybook/addon-a11y":"8.6.0","@storybook/addon-essentials":"8.6.0","@storybook/addon-interactions":"8.6.0","@storybook/addon-webpack5-compiler-swc":"3.0.0","@storybook/blocks":"8.6.0","@storybook/react":"8.6.0","@storybook/react-webpack5":"8.6.0","@storybook/test":"8.6.0","@storybook/test-runner":"0.21.0","@swc/core":"1.11.24","@swc/types":"0.1.7","@taskr/clear":"1.1.0","@taskr/esnext":"1.1.0","@types/babel__code-frame":"7.0.6","@types/babel__core":"7.20.5","@types/babel__generator":"7.27.0","@types/babel__template":"7.4.4","@types/babel__traverse":"7.20.7","@types/bytes":"3.1.1","@types/ci-info":"2.0.0","@types/compression":"0.0.36","@types/content-disposition":"0.5.4","@types/content-type":"1.1.3","@types/cookie":"0.3.3","@types/cross-spawn":"6.0.0","@types/debug":"4.1.5","@types/express-serve-static-core":"4.17.33","@types/fresh":"0.5.0","@types/glob":"7.1.1","@types/jsonwebtoken":"9.0.0","@types/lodash":"4.14.198","@types/lodash.curry":"4.1.6","@types/path-to-regexp":"1.7.0","@types/picomatch":"2.3.3","@types/platform":"1.3.4","@types/react":"19.0.8","@types/react-dom":"19.0.3","@types/react-is":"18.2.4","@types/semver":"7.3.1","@types/send":"0.14.4","@types/serve-handler":"6.1.4","@types/shell-quote":"1.7.1","@types/tar":"6.1.5","@types/text-table":"0.2.1","@types/ua-parser-js":"0.7.36","@types/webpack-sources1":"npm:@types/webpack-sources@0.1.5","@types/ws":"8.2.0","@vercel/ncc":"0.34.0","@vercel/nft":"0.27.1","@vercel/routing-utils":"5.2.0","@vercel/turbopack-ecmascript-runtime":"*",acorn:"8.14.0",anser:"1.4.9",arg:"4.1.0",assert:"2.0.0","async-retry":"1.2.3","async-sema":"3.0.0","axe-playwright":"2.0.3","babel-loader":"10.0.0","babel-plugin-react-compiler":"0.0.0-experimental-3fde738-20250918","babel-plugin-transform-define":"2.0.0","babel-plugin-transform-react-remove-prop-types":"0.4.24","browserify-zlib":"0.2.0",browserslist:"4.28.0",buffer:"5.6.0",busboy:"1.6.0",bytes:"3.1.1","ci-info":"watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540","cli-select":"1.1.2","client-only":"0.0.1",commander:"12.1.0","comment-json":"3.0.3",compression:"1.7.4",conf:"5.0.0","constants-browserify":"1.0.0","content-disposition":"0.5.3","content-type":"1.0.4",cookie:"0.4.1","cross-env":"6.0.3","cross-spawn":"7.0.3","crypto-browserify":"3.12.0","css-loader":"7.1.2","css.escape":"1.5.1","cssnano-preset-default":"7.0.6","data-uri-to-buffer":"3.0.1",debug:"4.1.1",devalue:"2.0.1","domain-browser":"4.19.0","edge-runtime":"4.0.1",events:"3.3.0","find-up":"4.1.0",fresh:"0.5.2",glob:"7.1.7","gzip-size":"5.1.1","http-proxy":"1.18.1","http-proxy-agent":"5.0.0","https-browserify":"1.0.0","https-proxy-agent":"5.0.1","icss-utils":"5.1.0","ignore-loader":"0.1.2","image-size":"1.2.1","ipaddr.js":"2.2.0","is-docker":"2.0.0","is-wsl":"2.2.0","jest-worker":"27.5.1",json5:"2.2.3",jsonwebtoken:"9.0.0","loader-runner":"4.3.0","loader-utils2":"npm:loader-utils@2.0.4","loader-utils3":"npm:loader-utils@3.1.3","lodash.curry":"4.1.1","mini-css-extract-plugin":"2.4.4",msw:"2.3.0",nanoid:"3.1.32","native-url":"0.3.4","neo-async":"2.6.1","node-html-parser":"5.3.3",ora:"4.0.4","os-browserify":"0.3.0","p-limit":"3.1.0","p-queue":"6.6.2","path-browserify":"1.0.1","path-to-regexp":"6.3.0",picomatch:"4.0.1","postcss-flexbugs-fixes":"5.0.2","postcss-modules-extract-imports":"3.0.0","postcss-modules-local-by-default":"4.2.0","postcss-modules-scope":"3.0.0","postcss-modules-values":"4.0.0","postcss-preset-env":"7.4.3","postcss-safe-parser":"6.0.0","postcss-scss":"4.0.3","postcss-value-parser":"4.2.0",process:"0.11.10",punycode:"2.1.1","querystring-es3":"0.2.1","raw-body":"2.4.1","react-refresh":"0.12.0",recast:"0.23.11","regenerator-runtime":"0.13.4","safe-stable-stringify":"2.5.0","sass-loader":"16.0.5","schema-utils2":"npm:schema-utils@2.7.1","schema-utils3":"npm:schema-utils@3.0.0",semver:"7.3.2",send:"0.18.0","serve-handler":"6.1.6","server-only":"0.0.1",setimmediate:"1.0.5","shell-quote":"1.7.3","source-map":"0.6.1","source-map-loader":"5.0.0","source-map08":"npm:source-map@0.8.0-beta.0","stacktrace-parser":"0.1.10",storybook:"8.6.0","stream-browserify":"3.0.0","stream-http":"3.1.1","strict-event-emitter":"0.5.0","string-hash":"1.1.3",string_decoder:"1.3.0","strip-ansi":"6.0.0","style-loader":"4.0.0",superstruct:"1.0.3",tar:"6.1.15",taskr:"1.1.0",terser:"5.27.0","terser-webpack-plugin":"5.3.9","text-table":"0.2.0","timers-browserify":"2.0.12","tty-browserify":"0.0.1",typescript:"5.9.2","ua-parser-js":"1.0.35",unistore:"3.4.1",util:"0.12.4","vm-browserify":"1.1.2",watchpack:"2.4.0","web-vitals":"4.2.1",webpack:"5.98.0","webpack-sources1":"npm:webpack-sources@1.4.3","webpack-sources3":"npm:webpack-sources@3.2.3",ws:"8.2.3",zod:"3.25.76","zod-validation-error":"3.4.0"},keywords:["react","framework","nextjs","web","server","node","front-end","backend","cli","vercel"],engines:{node:">=20.9.0"}})},18566,(e,t,r)=>{t.exports=e.r(76562)},95187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={callServer:function(){return i.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return a.findSourceMapURL}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(32120),a=e.r(92245),l=e.r(35326)},74323,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("00cfb33ff6bd607a53cf12012596f94717b2c91a0d",t.callServer,void 0,t.findSourceMapURL,"detectKeylessEnvDriftAction");e.s(["detectKeylessEnvDriftAction",()=>r])},67585,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let s=e.r(32061);function n({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new s.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},9885,(e,t,r)=>{"use strict";function s(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return s}})},52157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let s=e.r(18050),n=e.r(74080),i=e.r(63599),a=e.r(9885),l=e.r(43369);function o({moduleIds:e}){if("u">typeof window)return null;let t=i.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let s=t.reactLoadableManifest;for(let t of e){if(!s[t])continue;let e=s[t].files;r.push(...e)}}if(0===r.length)return null;let o=(0,l.getDeploymentIdQueryOrEmptyString)();return(0,s.jsx)(s.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,a.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,s.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,n.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let s=e.r(18050),n=e.r(71645),i=e.r(67585),a=e.r(52157);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},c=function(e){let t={...o,...e},r=(0,n.lazy)(()=>t.loader().then(l)),c=t.loading;function u(e){let l=c?(0,s.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,u=o?n.Suspense:n.Fragment,d=t.ssr?(0,s.jsxs)(s.Fragment,{children:["u"<typeof window?(0,s.jsx)(a.PreloadChunks,{moduleIds:t.modules}):null,(0,s.jsx)(r,{...e})]}):(0,s.jsx)(i.BailoutToCSR,{reason:"next/dynamic",children:(0,s.jsx)(r,{...e})});return(0,s.jsx)(u,{...o?{fallback:l}:{},children:d})}return u.displayName="LoadableComponent",u}},70703,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});let s=e.r(55682)._(e.r(69093));function n(e,t){let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,s.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},93375,96248,4816,28069,15331,e=>{"use strict";let t=[".lcl.dev",".lclstage.dev",".lclclerk.com"],r=[".accounts.dev",".accountsstage.dev",".accounts.lclclerk.com"],s=[".lcl.dev",".stg.dev",".lclstage.dev",".stgstage.dev",".dev.lclclerk.com",".stg.lclclerk.com",".accounts.lclclerk.com","accountsstage.dev","accounts.dev"],n=[".lcl.dev","lclstage.dev",".lclclerk.com",".accounts.lclclerk.com"],i=[".accountsstage.dev"];e.s(["CURRENT_DEV_INSTANCE_SUFFIXES",()=>r,"DEV_OR_STAGING_SUFFIXES",()=>s,"LEGACY_DEV_INSTANCE_SUFFIXES",()=>t,"LOCAL_API_URL",()=>"https://api.lclclerk.com","LOCAL_ENV_SUFFIXES",()=>n,"PROD_API_URL",()=>"https://api.clerk.com","STAGING_API_URL",()=>"https://api.clerkstage.dev","STAGING_ENV_SUFFIXES",()=>i],93375);let a=t=>"u">typeof atob&&"function"==typeof atob?atob(t):e.g.Buffer?new e.g.Buffer(t,"base64").toString():t;e.s(["isomorphicAtob",()=>a],96248);let l=t=>"u">typeof btoa&&"function"==typeof btoa?btoa(t):e.g.Buffer?new e.g.Buffer(t).toString("base64"):t;e.s(["isomorphicBtoa",()=>l],4816);let o="pk_live_",c="pk_test_",u=/^(([a-z]+)-){2}([0-9]{1,2})\.clerk\.accounts([a-z.]*)(dev|com)$/i;function d(e){return`${u.test(e)||e.startsWith("clerk.")&&t.some(t=>e.endsWith(t))?c:o}${l(`${e}$`)}`}function p(e){if(!e.endsWith("$"))return!1;let t=e.slice(0,-1);return!t.includes("$")&&t.includes(".")}function f(e,t={}){let r;if(!(e=e||"")||!b(e)){if(t.fatal&&!e)throw Error("Publishable key is missing. Ensure that your publishable key is correctly configured. Double-check your environment configuration for your keys, or access them here: https://dashboard.clerk.com/last-active?path=api-keys");if(t.fatal&&!b(e))throw Error("Publishable key not valid.");return null}let s=e.startsWith(o)?"production":"development";try{r=a(e.split("_")[2])}catch{if(t.fatal)throw Error("Publishable key not valid: Failed to decode key.");return null}if(!p(r)){if(t.fatal)throw Error("Publishable key not valid: Decoded key has invalid format.");return null}let n=r.slice(0,-1);return t.proxyUrl?n=t.proxyUrl:"development"!==s&&t.domain&&t.isSatellite&&(n=`clerk.${t.domain}`),{instanceType:s,frontendApi:n}}function b(e=""){try{if(!(e.startsWith(o)||e.startsWith(c)))return!1;let t=e.split("_");if(3!==t.length)return!1;let r=t[2];if(!r)return!1;return p(a(r))}catch{return!1}}function m(){let e=new Map;return{isDevOrStagingUrl:t=>{if(!t)return!1;let r="string"==typeof t?t:t.hostname,n=e.get(r);return void 0===n&&(n=s.some(e=>r.endsWith(e)),e.set(r,n)),n}}}function _(e){return e.startsWith("test_")||e.startsWith("pk_test_")}function y(e){return e.startsWith("live_")||e.startsWith("pk_live_")}function v(e){return e.startsWith("test_")||e.startsWith("sk_test_")}function g(e){return e.startsWith("live_")||e.startsWith("sk_live_")}async function h(e,t=globalThis.crypto.subtle){let r=new TextEncoder().encode(e);return l(String.fromCharCode(...new Uint8Array(await t.digest("sha-1",r)))).replace(/\+/gi,"-").replace(/\//gi,"_").substring(0,8)}let E=(e,t)=>`${e}_${t}`;e.s(["buildPublishableKey",()=>d,"createDevOrStagingUrlCache",()=>m,"getCookieSuffix",()=>h,"getSuffixedCookieName",()=>E,"isDevelopmentFromPublishableKey",()=>_,"isDevelopmentFromSecretKey",()=>v,"isProductionFromPublishableKey",()=>y,"isProductionFromSecretKey",()=>g,"isPublishableKey",()=>b,"parsePublishableKey",()=>f],28069);let k=e=>{if(0==e.length)return"";if(1==e.length)return e[0];let t=e.slice(0,-1).join(", ");return t+`, or ${e.slice(-1)}`},w=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;function C(e){return w.test(e||"")}function L(e){let t=e||"";return t.charAt(0).toUpperCase()+t.slice(1)}function S(e){return e?e.replace(/([-_][a-z])/g,e=>e.toUpperCase().replace(/-|_/,"")):""}function R(e){return e?e.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`):""}let I=e=>{let t=r=>{if(!r)return r;if(Array.isArray(r))return r.map(e=>"object"==typeof e||Array.isArray(e)?t(e):e);let s={...r};for(let r of Object.keys(s)){let n=e(r.toString());n!==r&&(s[n]=s[r],delete s[r]),"object"==typeof s[n]&&(s[n]=t(s[n]))}return s};return t},P=I(R),U=I(S);function x(e){if("boolean"==typeof e)return e;if(null==e)return!1;if("string"==typeof e){if("true"===e.toLowerCase())return!0;if("false"===e.toLowerCase())return!1}let t=parseInt(e,10);return!isNaN(t)&&t>0}function T(e){return Object.entries(e).reduce((e,[t,r])=>(void 0!==r&&(e[t]=r),e),{})}e.s(["camelToSnake",()=>R,"deepCamelToSnake",()=>P,"deepSnakeToCamel",()=>U,"getNonUndefinedValues",()=>T,"isIPV4Address",()=>C,"isTruthy",()=>x,"snakeToCamel",()=>S,"titleize",()=>L,"toSentence",()=>k],15331)},49542,11432,e=>{"use strict";let t=(...e)=>{};e.s(["noop",()=>t],49542);let r=()=>{let e=t,r=t;return{promise:new Promise((t,s)=>{e=t,r=s}),resolve:e,reject:r}};e.s(["createDeferredPromise",()=>r],11432)},41383,78754,e=>{"use strict";e.i(47167);let t=()=>!1,r=()=>!1,s=()=>{try{return!0}catch{}return!1};function n(e,t,r){return"function"==typeof e?e(t):void 0!==e?e:void 0!==r?r:void 0}e.s(["isDevelopmentEnvironment",()=>t,"isProductionEnvironment",()=>s,"isTestEnvironment",()=>r],41383),e.s(["handleValueOrFn",()=>n],78754)},2193,9580,3949,e=>{"use strict";var t=e.i(41383);function r(e){return Promise.all(Array.from(e).map(e=>e.then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))}e.i(78754),e.i(49542),e.i(11432);let s=e=>{(0,t.isDevelopmentEnvironment)()&&console.error(`Clerk: ${e}`)},n=new Set(["__proto__","constructor","prototype"]),i=(e,t)=>{if(e&&t)for(let r in e)!n.has(r)&&(Object.prototype.hasOwnProperty.call(e,r)&&null!==e[r]&&"object"==typeof e[r]?(void 0===t[r]&&(t[r]=new(Object.getPrototypeOf(e[r])).constructor),i(e[r],t[r])):Object.prototype.hasOwnProperty.call(e,r)&&void 0!==e[r]&&(t[r]=e[r]))},a=(e,t)=>{if(e&&t)for(let r in e)!n.has(r)&&(Object.prototype.hasOwnProperty.call(e,r)&&null!==e[r]&&"object"==typeof e[r]?(void 0===t[r]&&(t[r]=new(Object.getPrototypeOf(e[r])).constructor),a(e[r],t[r])):Object.prototype.hasOwnProperty.call(e,r)&&void 0===t[r]&&(t[r]=e[r]))};function l(e){return e.endsWith(".lclstage.dev")||e.endsWith(".stgstage.dev")||e.endsWith(".clerkstage.dev")||e.endsWith(".accountsstage.dev")}e.s(["allSettled",()=>r,"fastDeepMergeAndKeep",()=>a,"fastDeepMergeAndReplace",()=>i,"logErrorInDevMode",()=>s],9580),e.s(["isStaging",()=>l],3949),e.s([],2193)},78424,22375,82524,89397,e=>{"use strict";let t;e.i(2193);var r,s,n,i,a,l,o,c,u=e.i(41383),d=e.i(47167),p=e.i(93375);e.i(96248),e.i(4816);var f=e.i(28069),b=e.i(15331);e.s([],22375),d.default.env.NEXT_PUBLIC_CLERK_JS_VERSION,d.default.env.NEXT_PUBLIC_CLERK_JS_URL,d.default.env.CLERK_API_VERSION,d.default.env.CLERK_SECRET_KEY,d.default.env.CLERK_MACHINE_SECRET_KEY;let m=d.default.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY||"";d.default.env.CLERK_ENCRYPTION_KEY,d.default.env.CLERK_API_URL||(t=(0,f.parsePublishableKey)(m)?.frontendApi,t?.startsWith("clerk.")&&p.LEGACY_DEV_INSTANCE_SUFFIXES.some(e=>t?.endsWith(e))?p.PROD_API_URL:p.LOCAL_ENV_SUFFIXES.some(e=>t?.endsWith(e))?p.LOCAL_API_URL:p.STAGING_ENV_SUFFIXES.some(e=>t?.endsWith(e))?p.STAGING_API_URL:p.PROD_API_URL),d.default.env.NEXT_PUBLIC_CLERK_DOMAIN,d.default.env.NEXT_PUBLIC_CLERK_PROXY_URL,(0,b.isTruthy)(d.default.env.NEXT_PUBLIC_CLERK_IS_SATELLITE),d.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL,d.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL;let _={name:"@clerk/nextjs",version:"6.39.0",environment:"production"};(0,b.isTruthy)(d.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DISABLED),(0,b.isTruthy)(d.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DEBUG);let y=(0,b.isTruthy)(d.default.env.NEXT_PUBLIC_CLERK_KEYLESS_DISABLED)||!1;e.s(["KEYLESS_DISABLED",()=>y,"SDK_METADATA",()=>_],82524);var v=e.i(347);let g=null!=(a=null==(i=null==(n=v.default)?void 0:n.version)?void 0:i.startsWith("13."))&&a||null!=(c=null==(o=null==(l=v.default)?void 0:l.version)?void 0:o.startsWith("14.0"))&&c;r=0,(null==(s=v.default)?void 0:s.version)&&isNaN(parseInt(v.default.version.split(".")[0],10)),e.s(["isNextWithUnstableServerActions",()=>g],89397);let h=!g&&(0,u.isDevelopmentEnvironment)()&&!y;e.s(["canUseKeyless",()=>h],78424)},96211,e=>{"use strict";var t=e.i(18566),r=e.i(71645),s=e.i(78424);function n(n){var i;let a=(null==(i=(0,t.useSelectedLayoutSegments)()[0])?void 0:i.startsWith("/_not-found"))||!1;return(0,r.useEffect)(()=>{s.canUseKeyless&&!a&&e.A(94773).then(e=>e.syncKeylessConfigAction({...n,returnUrl:window.location.href}))},[a]),n.children}e.s(["KeylessCookieSync",()=>n])},27534,e=>{"use strict";e.i(92448);var t=e.i(65829);e.i(97651),e.s([],73483),e.i(73483),e.s(["AuthenticateWithRedirectCallback",()=>t.AuthenticateWithRedirectCallback,"ClerkDegraded",()=>t.ClerkDegraded,"ClerkFailed",()=>t.ClerkFailed,"ClerkLoaded",()=>t.ClerkLoaded,"ClerkLoading",()=>t.ClerkLoading,"MultisessionAppSupport",()=>t.MultisessionAppSupport,"Protect",()=>t.Protect,"RedirectToCreateOrganization",()=>t.RedirectToCreateOrganization,"RedirectToOrganizationProfile",()=>t.RedirectToOrganizationProfile,"RedirectToSignIn",()=>t.RedirectToSignIn,"RedirectToSignUp",()=>t.RedirectToSignUp,"RedirectToTasks",()=>t.RedirectToTasks,"RedirectToUserProfile",()=>t.RedirectToUserProfile,"SignedIn",()=>t.SignedIn,"SignedOut",()=>t.SignedOut],27534)},40578,e=>{"use strict";e.i(92448);var t=e.i(65389);e.i(97651);var r=e.i(74041),s=e.i(71645);let n=s.default.createContext(null);function i({authPromise:e,children:t}){return s.default.createElement(n.Provider,{value:e},t)}function a(e={}){let i=(0,r.useRouter)(),l=s.default.useContext(n),o=l;return(l&&"then"in l&&(o=s.default.use(l)),"u"<typeof window)?i?(0,t.useAuth)(e):(0,t.useDerivedAuth)({...o,...e}):(0,t.useAuth)({...o,...e})}e.s(["PromisifiedAuthProvider",()=>i,"usePromisifiedAuth",()=>a])},96136,e=>{"use strict";e.i(92448);var t=e.i(27085),r=e.i(65389);e.i(10507),e.i(80240);var s=e.i(13039),n=e.i(40578);e.s([],93819),e.i(93819),e.s(["EmailLinkErrorCode",()=>s.EmailLinkErrorCode,"EmailLinkErrorCodeStatus",()=>s.EmailLinkErrorCodeStatus,"isClerkAPIResponseError",()=>s.isClerkAPIResponseError,"isClerkRuntimeError",()=>s.isClerkRuntimeError,"isEmailLinkError",()=>s.isEmailLinkError,"isKnownError",()=>s.isKnownError,"isMetamaskError",()=>s.isMetamaskError,"isReverificationCancelledError",()=>s.isReverificationCancelledError,"useAuth",()=>n.usePromisifiedAuth,"useClerk",()=>t.useClerk,"useEmailLink",()=>r.useEmailLink,"useOrganization",()=>t.useOrganization,"useOrganizationCreationDefaults",()=>t.useOrganizationCreationDefaults,"useOrganizationList",()=>t.useOrganizationList,"useReverification",()=>t.useReverification,"useSession",()=>t.useSession,"useSessionList",()=>t.useSessionList,"useSignIn",()=>r.useSignIn,"useSignUp",()=>r.useSignUp,"useUser",()=>t.useUser],96136)},8341,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={cancelIdleCallback:function(){return a},requestIdleCallback:function(){return i}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},a="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79520,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return g},handleClientScriptLoad:function(){return _},initScriptLoader:function(){return y}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let i=e.r(55682),a=e.r(90809),l=e.r(18050),o=i._(e.r(74080)),c=a._(e.r(71645)),u=e.r(42732),d=e.r(22737),p=e.r(8341),f=new Map,b=new Set,m=e=>{let{src:t,id:r,onLoad:s=()=>{},onReady:n=null,dangerouslySetInnerHTML:i,children:a="",strategy:l="afterInteractive",onError:c,stylesheets:u}=e,p=r||t;if(p&&b.has(p))return;if(f.has(t)){b.add(p),f.get(t).then(s,c);return}let m=()=>{n&&n(),b.add(p)},_=document.createElement("script"),y=new Promise((e,t)=>{_.addEventListener("load",function(t){e(),s&&s.call(this,t),m()}),_.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});i?(_.innerHTML=i.__html||"",m()):a?(_.textContent="string"==typeof a?a:Array.isArray(a)?a.join(""):"",m()):t&&(_.src=t,f.set(t,y)),(0,d.setAttributesFromProps)(_,e),"worker"===l&&_.setAttribute("type","text/partytown"),_.setAttribute("data-nscript",l),u&&(e=>{if(o.default.preinit)return e.forEach(e=>{o.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(u),document.body.appendChild(_)};function _(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,p.requestIdleCallback)(()=>m(e))}):m(e)}function y(e){e.forEach(_),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");b.add(t)})}function v(e){let{id:t,src:r="",onLoad:s=()=>{},onReady:n=null,strategy:i="afterInteractive",onError:a,stylesheets:d,...f}=e,{updateScripts:_,scripts:y,getIsSsr:v,appDir:g,nonce:h}=(0,c.useContext)(u.HeadManagerContext);h=f.nonce||h;let E=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let e=t||r;E.current||(n&&e&&b.has(e)&&n(),E.current=!0)},[n,t,r]);let k=(0,c.useRef)(!1);if((0,c.useEffect)(()=>{if(!k.current){if("afterInteractive"===i)m(e);else"lazyOnload"===i&&("complete"===document.readyState?(0,p.requestIdleCallback)(()=>m(e)):window.addEventListener("load",()=>{(0,p.requestIdleCallback)(()=>m(e))}));k.current=!0}},[e,i]),("beforeInteractive"===i||"worker"===i)&&(_?(y[i]=(y[i]||[]).concat([{id:t,src:r,onLoad:s,onReady:n,onError:a,...f,nonce:h}]),_(y)):v&&v()?b.add(t||r):v&&!v()&&m({...e,nonce:h})),g){if(d&&d.forEach(e=>{o.default.preinit(e,{as:"style"})}),"beforeInteractive"===i)if(!r)return f.dangerouslySetInnerHTML&&(f.children=f.dangerouslySetInnerHTML.__html,delete f.dangerouslySetInnerHTML),(0,l.jsx)("script",{nonce:h,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...f,id:t}])})`}});else return o.default.preload(r,f.integrity?{as:"script",integrity:f.integrity,nonce:h,crossOrigin:f.crossOrigin}:{as:"script",nonce:h,crossOrigin:f.crossOrigin}),(0,l.jsx)("script",{nonce:h,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([r,{...f,id:t}])})`}});"afterInteractive"===i&&r&&o.default.preload(r,f.integrity?{as:"script",integrity:f.integrity,nonce:h,crossOrigin:f.crossOrigin}:{as:"script",nonce:h,crossOrigin:f.crossOrigin})}return null}Object.defineProperty(v,"__nextScript",{value:!0});let g=v;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3303,(e,t,r)=>{t.exports=e.r(79520)},41895,e=>{"use strict";var t=e.i(92448);e.i(38821);var r=e.i(75369);let s=new Set;var n=e.i(70703),i=e.i(18566),a=e.i(347),l=e.i(71645);let o="u">typeof window?l.default.useLayoutEffect:l.default.useEffect,c=l.default.createContext(void 0);c.displayName="ClerkNextOptionsCtx";let u=()=>{let e=l.default.useContext(c);return null==e?void 0:e.value},d=e=>{let{children:t,options:r}=e;return l.default.createElement(c.Provider,{value:{value:r}},t)};var p=e.i(27085);e.i(97651);var f=e.i(99656),b=e.i(3303);function m(e){let{publishableKey:t,clerkJSUrl:r,clerkJSVersion:s,clerkJSVariant:n,nonce:i}=u(),{domain:a,proxyUrl:o}=(0,p.useClerk)();if(!t)return null;let c={domain:a,proxyUrl:o,publishableKey:t,clerkJSUrl:r,clerkJSVersion:s,clerkJSVariant:n,nonce:i},d=(0,f.clerkJsScriptUrl)(c),m="app"===e.router?"script":b.default;return l.default.createElement(m,{src:d,"data-clerk-js-script":!0,async:!0,defer:"pages"!==e.router&&void 0,crossOrigin:"anonymous",strategy:"pages"===e.router?"beforeInteractive":void 0,...(0,f.buildClerkJsScriptAttributes)(c)})}var _=e.i(78424),y=e.i(47167);e.i(22375);var v=e.i(15331),g=e.i(82524);let h=e=>{var t;return{...e,publishableKey:e.publishableKey||y.default.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY||"",clerkJSUrl:e.clerkJSUrl||y.default.env.NEXT_PUBLIC_CLERK_JS_URL,clerkJSVersion:e.clerkJSVersion||y.default.env.NEXT_PUBLIC_CLERK_JS_VERSION,proxyUrl:e.proxyUrl||y.default.env.NEXT_PUBLIC_CLERK_PROXY_URL||"",domain:e.domain||y.default.env.NEXT_PUBLIC_CLERK_DOMAIN||"",isSatellite:e.isSatellite||(0,v.isTruthy)(y.default.env.NEXT_PUBLIC_CLERK_IS_SATELLITE),signInUrl:e.signInUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL||"",signUpUrl:e.signUpUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL||"",signInForceRedirectUrl:e.signInForceRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL||"",signUpForceRedirectUrl:e.signUpForceRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL||"",signInFallbackRedirectUrl:e.signInFallbackRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL||"",signUpFallbackRedirectUrl:e.signUpFallbackRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL||"",afterSignInUrl:e.afterSignInUrl||y.default.env.NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL||"",afterSignUpUrl:e.afterSignUpUrl||y.default.env.NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL||"",newSubscriptionRedirectUrl:e.newSubscriptionRedirectUrl||y.default.env.NEXT_PUBLIC_CLERK_CHECKOUT_CONTINUE_URL||"",telemetry:null!=(t=e.telemetry)?t:{disabled:(0,v.isTruthy)(y.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DISABLED),debug:(0,v.isTruthy)(y.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DEBUG)},sdkMetadata:g.SDK_METADATA}};e.i(75372);var E=e.i(24440),k=e.i(22528);let w=()=>{var e,t;let r=(0,p.useClerk)(),{pagesRouter:s}=(0,k.usePagesRouter)();return null==(t=r.telemetry)||t.record((0,E.eventFrameworkMetadata)({router:s?"pages":"app",...(null==(e=null==globalThis?void 0:globalThis.next)?void 0:e.version)?{nextjsVersion:globalThis.next.version}:{}})),null};var C=e.i(89397),L=e.i(74323),S=e.i(95187);let R=(0,S.createServerReference)("00f2dce9c536ae1320f311713cb1aef6118e5e2b77",S.callServer,void 0,S.findSourceMapURL,"invalidateCacheAction"),I=e=>{var t;return null!=window.__clerk_internal_navigations||(window.__clerk_internal_navigations={}),null!=(t=window.__clerk_internal_navigations)[e]||(t[e]={}),window.__clerk_internal_navigations[e]},P=e=>{let{windowNav:t,routerNav:r,name:s}=e,n=(0,i.usePathname)(),[a,o]=(0,l.useTransition)();t&&(I(s).fun=(e,n)=>new Promise(i=>{var a,l;null!=(a=I(s)).promisesBuffer||(a.promisesBuffer=[]),null==(l=I(s).promisesBuffer)||l.push(i),o(()=>{var s,i,a;(null==(s=null==n?void 0:n.__internal_metadata)?void 0:s.navigationType)==="internal"?t((null!=(a=null==(i=window.next)?void 0:i.version)?a:"")<"14.1.0"?history.state:null,"",e):r(e)})}));let c=()=>{var e;null==(e=I(s).promisesBuffer)||e.forEach(e=>e()),I(s).promisesBuffer=[]};return(0,l.useEffect)(()=>(c(),c),[]),(0,l.useEffect)(()=>{a||c()},[n,a]),(0,l.useCallback)((e,t)=>I(s).fun(e,t),[])},U=(0,n.default)(()=>e.A(98943).then(e=>e.KeylessCreatorOrReader)),x=e=>{let n,c;if(C.isNextWithUnstableServerActions){var p,f;let e=`Clerk:
|
|
2
2
|
Your current Next.js version (${a.default.version}) will be deprecated in the next major release of "@clerk/nextjs". Please upgrade to next@14.1.0 or later.`;(0,r.inBrowser)()?(p=e,s.has(p)||(s.add(p),console.warn(p))):(f=`
|
|
3
3
|
\x1b[43m----------
|
|
4
4
|
${e}
|
|
5
5
|
----------\x1b[0m
|
|
6
|
-
`,s.has(f)||(console.log(f),s.add(f)))}let{__unstable_invokeMiddlewareOnAuthStateChange:
|
|
6
|
+
`,s.has(f)||(console.log(f),s.add(f)))}let{__unstable_invokeMiddlewareOnAuthStateChange:b=!0,children:y}=e,v=(0,i.useRouter)(),g=(n=(0,i.useRouter)(),P({windowNav:"u">typeof window?window.history.pushState.bind(window.history):void 0,routerNav:n.push.bind(n),name:"push"})),E=(c=(0,i.useRouter)(),P({windowNav:"u">typeof window?window.history.replaceState.bind(window.history):void 0,routerNav:c.replace.bind(c),name:"replace"})),[k,S]=(0,l.useTransition)();if(o(()=>{_.canUseKeyless&&(0,L.detectKeylessEnvDriftAction)()},[]),u())return e.children;(0,l.useEffect)(()=>{var e;k||null==(e=window.__clerk_internal_invalidateCachePromise)||e.call(window)},[k]),o(()=>{window.__unstable__onBeforeSetActive=e=>new Promise(t=>{var r;window.__clerk_internal_invalidateCachePromise=t;let s=(null==(r=null==window?void 0:window.next)?void 0:r.version)||"";s.startsWith("13")?S(()=>{v.refresh()}):(s.startsWith("15")||s.startsWith("16"))&&"sign-out"===e?t():R().then(()=>t())}),window.__unstable__onAfterSetActive=()=>{if(b)return v.refresh()}},[]);let I=h({...e,routerPush:g,routerReplace:E});return l.default.createElement(d,{options:I},l.default.createElement(t.ClerkProvider,{...I},l.default.createElement(w,null),l.default.createElement(m,{router:"app"}),y))},T=e=>{let{children:t,disableKeyless:r=!1,...s}=e;return h(s).publishableKey||!_.canUseKeyless||r?l.default.createElement(x,{...s},t):l.default.createElement(U,null,l.default.createElement(x,{...s},t))};e.s(["ClientClerkProvider",()=>T],41895)},46770,e=>{"use strict";var t=e.i(18050),r=e.i(71645);let s=(0,r.createContext)({theme:"dark",toggleTheme:()=>{}});function n(e){let t=document.documentElement;t.classList.remove("dark","light"),t.classList.add(e)}function i({children:e}){let[i,a]=(0,r.useState)("dark");(0,r.useEffect)(()=>{let e=localStorage.getItem("conductor-theme");if("light"===e||"dark"===e){a(e),n(e);return}n("dark")},[]);let l=(0,r.useCallback)(()=>{a(e=>{let t="dark"===e?"light":"dark";return localStorage.setItem("conductor-theme",t),n(t),t})},[]);return(0,t.jsx)(s.Provider,{value:{theme:i,toggleTheme:l},children:e})}function a(){return(0,r.useContext)(s)}e.s(["ThemeProvider",()=>i,"useTheme",()=>a])},98943,e=>{e.v(t=>Promise.all(["static/chunks/b3d2f9a3c2a31b09.js"].map(t=>e.l(t))).then(()=>t(37572)))},94773,e=>{e.v(t=>Promise.all(["static/chunks/9442ca926d25e16d.js"].map(t=>e.l(t))).then(()=>t(23151)))}]);
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"dev": "next dev -p ${PORT:-3000}",
|
|
10
10
|
"build": "next build",
|
|
11
|
-
"start": "
|
|
11
|
+
"start": "next start",
|
|
12
12
|
"typecheck": "tsc --noEmit",
|
|
13
13
|
"clean": "rm -rf .next"
|
|
14
14
|
},
|
|
@@ -1,214 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { readFile, writeFile } from "node:fs/promises";
|
|
3
|
-
import { parse, stringify } from "yaml";
|
|
4
|
-
import type { DashboardAccessConfig, DashboardRoleBindings } from "@conductor-oss/core/types";
|
|
5
|
-
import { getDashboardAccess, guardApiAccess, guardApiActionAccess } from "@/lib/auth";
|
|
6
|
-
import { getServices, invalidateServicesCache } from "@/lib/services";
|
|
7
|
-
import { normalizeRootProjectPaths } from "@/lib/projectConfigSync";
|
|
1
|
+
import { guardedProxyRoute } from "@/lib/proxyRoutes";
|
|
8
2
|
|
|
9
3
|
export const dynamic = "force-dynamic";
|
|
10
4
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
type AccessPatchBody = {
|
|
14
|
-
requireAuth?: unknown;
|
|
15
|
-
defaultRole?: unknown;
|
|
16
|
-
trustedHeaders?: unknown;
|
|
17
|
-
roles?: unknown;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
function toObject(value: unknown): Record<string, unknown> {
|
|
21
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) return {};
|
|
22
|
-
return { ...(value as Record<string, unknown>) };
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function asOptionalRole(value: unknown): DashboardAccessConfig["defaultRole"] | undefined {
|
|
26
|
-
if (value === "viewer" || value === "operator" || value === "admin") {
|
|
27
|
-
return value;
|
|
28
|
-
}
|
|
29
|
-
return undefined;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function normalizeStringList(value: unknown): string[] {
|
|
33
|
-
if (Array.isArray(value)) {
|
|
34
|
-
return value
|
|
35
|
-
.filter((item): item is string => typeof item === "string")
|
|
36
|
-
.map((item) => item.trim())
|
|
37
|
-
.filter(Boolean);
|
|
38
|
-
}
|
|
39
|
-
if (typeof value !== "string") return [];
|
|
40
|
-
return value
|
|
41
|
-
.split(/[\n,]+/g)
|
|
42
|
-
.map((item) => item.trim())
|
|
43
|
-
.filter(Boolean);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function normalizeRoles(value: unknown): DashboardRoleBindings | undefined {
|
|
47
|
-
const root = toObject(value);
|
|
48
|
-
const next: DashboardRoleBindings = {};
|
|
49
|
-
|
|
50
|
-
const viewers = normalizeStringList(root["viewers"]);
|
|
51
|
-
const operators = normalizeStringList(root["operators"]);
|
|
52
|
-
const admins = normalizeStringList(root["admins"]);
|
|
53
|
-
const viewerDomains = normalizeStringList(root["viewerDomains"]);
|
|
54
|
-
const operatorDomains = normalizeStringList(root["operatorDomains"]);
|
|
55
|
-
const adminDomains = normalizeStringList(root["adminDomains"]);
|
|
56
|
-
|
|
57
|
-
if (viewers.length > 0) next.viewers = viewers;
|
|
58
|
-
if (operators.length > 0) next.operators = operators;
|
|
59
|
-
if (admins.length > 0) next.admins = admins;
|
|
60
|
-
if (viewerDomains.length > 0) next.viewerDomains = viewerDomains;
|
|
61
|
-
if (operatorDomains.length > 0) next.operatorDomains = operatorDomains;
|
|
62
|
-
if (adminDomains.length > 0) next.adminDomains = adminDomains;
|
|
63
|
-
|
|
64
|
-
return Object.keys(next).length > 0 ? next : undefined;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function normalizeAccessConfig(value: unknown): DashboardAccessConfig {
|
|
68
|
-
const root = toObject(value);
|
|
69
|
-
const trustedHeaders = toObject(root["trustedHeaders"]);
|
|
70
|
-
const defaultRole = asOptionalRole(root["defaultRole"]);
|
|
71
|
-
|
|
72
|
-
const next: DashboardAccessConfig = {
|
|
73
|
-
requireAuth: root["requireAuth"] === true,
|
|
74
|
-
trustedHeaders: {
|
|
75
|
-
enabled: trustedHeaders["enabled"] === true,
|
|
76
|
-
provider:
|
|
77
|
-
trustedHeaders["provider"] === "generic"
|
|
78
|
-
? "generic"
|
|
79
|
-
: "cloudflare-access",
|
|
80
|
-
emailHeader:
|
|
81
|
-
(typeof trustedHeaders["emailHeader"] === "string" && trustedHeaders["emailHeader"].trim().length > 0
|
|
82
|
-
? trustedHeaders["emailHeader"].trim()
|
|
83
|
-
: "Cf-Access-Authenticated-User-Email"),
|
|
84
|
-
jwtHeader:
|
|
85
|
-
(typeof trustedHeaders["jwtHeader"] === "string" && trustedHeaders["jwtHeader"].trim().length > 0
|
|
86
|
-
? trustedHeaders["jwtHeader"].trim()
|
|
87
|
-
: "Cf-Access-Jwt-Assertion"),
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
if (typeof trustedHeaders["teamDomain"] === "string" && trustedHeaders["teamDomain"].trim().length > 0) {
|
|
92
|
-
next.trustedHeaders!.teamDomain = trustedHeaders["teamDomain"].trim();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (typeof trustedHeaders["audience"] === "string" && trustedHeaders["audience"].trim().length > 0) {
|
|
96
|
-
next.trustedHeaders!.audience = trustedHeaders["audience"].trim();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (defaultRole) {
|
|
100
|
-
next.defaultRole = defaultRole;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const roles = normalizeRoles(root["roles"]);
|
|
104
|
-
if (roles) {
|
|
105
|
-
next.roles = roles;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return next;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export async function GET(request: NextRequest) {
|
|
112
|
-
const denied = await guardApiAccess(request, "viewer");
|
|
113
|
-
if (denied) return denied;
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
const { config } = await getServices();
|
|
117
|
-
const access = normalizeAccessConfig(config.access);
|
|
118
|
-
const current = await getDashboardAccess(request);
|
|
119
|
-
|
|
120
|
-
return NextResponse.json({
|
|
121
|
-
access,
|
|
122
|
-
current: {
|
|
123
|
-
authenticated: current.authenticated,
|
|
124
|
-
role: current.role ?? null,
|
|
125
|
-
email: current.email ?? null,
|
|
126
|
-
provider: current.provider ?? null,
|
|
127
|
-
},
|
|
128
|
-
});
|
|
129
|
-
} catch (err) {
|
|
130
|
-
const message = err instanceof Error ? err.message : "Failed to load access settings";
|
|
131
|
-
return NextResponse.json({ error: message }, { status: 500 });
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
export async function PUT(request: NextRequest) {
|
|
136
|
-
const denied = await guardApiAccess(request, "admin");
|
|
137
|
-
if (denied) return denied;
|
|
138
|
-
const deniedAction = guardApiActionAccess(request);
|
|
139
|
-
if (deniedAction) return deniedAction;
|
|
140
|
-
|
|
141
|
-
const body = (await request.json().catch(() => null)) as AccessPatchBody | null;
|
|
142
|
-
if (!body || typeof body !== "object") {
|
|
143
|
-
return NextResponse.json({ error: "Invalid JSON body" }, { status: 400 });
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
try {
|
|
147
|
-
const { config } = await getServices();
|
|
148
|
-
const configPath = config.configPath;
|
|
149
|
-
if (!configPath) {
|
|
150
|
-
return NextResponse.json({ error: "Unable to resolve conductor config path" }, { status: 500 });
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
const originalConfigRaw = await readFile(configPath, "utf8");
|
|
154
|
-
const parsed = (parse(originalConfigRaw) ?? {}) as MutableConfig;
|
|
155
|
-
const nextRoot: MutableConfig =
|
|
156
|
-
parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
157
|
-
? { ...parsed }
|
|
158
|
-
: {};
|
|
159
|
-
|
|
160
|
-
const nextAccess = normalizeAccessConfig(nextRoot["access"]);
|
|
161
|
-
|
|
162
|
-
if (typeof body.requireAuth === "boolean") {
|
|
163
|
-
nextAccess.requireAuth = body.requireAuth;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
if (body.defaultRole !== undefined) {
|
|
167
|
-
nextAccess.defaultRole = asOptionalRole(body.defaultRole);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
if (body.trustedHeaders !== undefined) {
|
|
171
|
-
const nextTrusted = toObject(body.trustedHeaders);
|
|
172
|
-
nextAccess.trustedHeaders = {
|
|
173
|
-
enabled: nextTrusted["enabled"] === true,
|
|
174
|
-
emailHeader:
|
|
175
|
-
(typeof nextTrusted["emailHeader"] === "string" && nextTrusted["emailHeader"].trim().length > 0
|
|
176
|
-
? nextTrusted["emailHeader"].trim()
|
|
177
|
-
: "Cf-Access-Authenticated-User-Email"),
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
if (body.roles !== undefined) {
|
|
182
|
-
nextAccess.roles = normalizeRoles(body.roles);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
nextRoot["access"] = nextAccess;
|
|
186
|
-
await normalizeRootProjectPaths(nextRoot);
|
|
187
|
-
|
|
188
|
-
const updatedYaml = stringify(nextRoot, { lineWidth: 0 });
|
|
189
|
-
await writeFile(configPath, updatedYaml, "utf8");
|
|
190
|
-
|
|
191
|
-
try {
|
|
192
|
-
invalidateServicesCache("access updated");
|
|
193
|
-
await getServices();
|
|
194
|
-
} catch (err) {
|
|
195
|
-
await writeFile(configPath, originalConfigRaw, "utf8");
|
|
196
|
-
invalidateServicesCache("access update rollback");
|
|
197
|
-
throw err;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
const current = await getDashboardAccess(request);
|
|
201
|
-
return NextResponse.json({
|
|
202
|
-
access: nextAccess,
|
|
203
|
-
current: {
|
|
204
|
-
authenticated: current.authenticated,
|
|
205
|
-
role: current.role ?? null,
|
|
206
|
-
email: current.email ?? null,
|
|
207
|
-
provider: current.provider ?? null,
|
|
208
|
-
},
|
|
209
|
-
});
|
|
210
|
-
} catch (err) {
|
|
211
|
-
const message = err instanceof Error ? err.message : "Failed to update access settings";
|
|
212
|
-
return NextResponse.json({ error: message }, { status: 500 });
|
|
213
|
-
}
|
|
214
|
-
}
|
|
5
|
+
export const GET = guardedProxyRoute("/api/access", { role: "viewer" });
|
|
6
|
+
export const PUT = guardedProxyRoute("/api/access", { role: "admin", requireActionGuard: true });
|
|
@@ -1,169 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { randomBytes } from "node:crypto";
|
|
3
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
4
|
-
import { homedir } from "node:os";
|
|
5
|
-
import { dirname, relative, resolve, sep } from "node:path";
|
|
6
|
-
import type { OrchestratorConfig } from "@conductor-oss/core";
|
|
7
|
-
import { guardApiAccess, guardApiActionAccess } from "@/lib/auth";
|
|
8
|
-
import { getServices } from "@/lib/services";
|
|
1
|
+
import { guardedProxyRoute } from "@/lib/proxyRoutes";
|
|
9
2
|
|
|
10
3
|
export const dynamic = "force-dynamic";
|
|
11
4
|
|
|
12
|
-
const
|
|
13
|
-
const MAX_UPLOAD_BYTES = 25 * 1024 * 1024; // 25MB per file
|
|
14
|
-
|
|
15
|
-
const IMAGE_EXTENSIONS = new Set([
|
|
16
|
-
".png", ".jpg", ".jpeg", ".gif", ".webp", ".svg", ".bmp", ".ico", ".tiff",
|
|
17
|
-
]);
|
|
18
|
-
|
|
19
|
-
function asNonEmptyString(value: unknown): string | null {
|
|
20
|
-
if (typeof value !== "string") return null;
|
|
21
|
-
const trimmed = value.trim();
|
|
22
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function expandHome(value: string): string {
|
|
26
|
-
if (value.startsWith("~/")) {
|
|
27
|
-
return resolve(homedir(), value.slice(2));
|
|
28
|
-
}
|
|
29
|
-
return resolve(value);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function resolveWorkspacePath(config: OrchestratorConfig): string {
|
|
33
|
-
if (process.env["CONDUCTOR_WORKSPACE"]?.trim()) {
|
|
34
|
-
return expandHome(process.env["CONDUCTOR_WORKSPACE"]);
|
|
35
|
-
}
|
|
36
|
-
if (config.configPath) {
|
|
37
|
-
return dirname(config.configPath);
|
|
38
|
-
}
|
|
39
|
-
return resolve(process.cwd());
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function normalizeToken(value: string): string {
|
|
43
|
-
const input = value.trim().toLowerCase();
|
|
44
|
-
let out = "";
|
|
45
|
-
let prevDash = false;
|
|
46
|
-
for (const ch of input) {
|
|
47
|
-
const code = ch.charCodeAt(0);
|
|
48
|
-
const isDigit = code >= 48 && code <= 57;
|
|
49
|
-
const isLowerAlpha = code >= 97 && code <= 122;
|
|
50
|
-
const isSafe = isDigit || isLowerAlpha || ch === "." || ch === "_";
|
|
51
|
-
if (isSafe) {
|
|
52
|
-
out += ch;
|
|
53
|
-
prevDash = false;
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
if (!prevDash && out.length > 0) {
|
|
57
|
-
out += "-";
|
|
58
|
-
prevDash = true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
while (out.endsWith("-")) out = out.slice(0, -1);
|
|
62
|
-
return out || "project";
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function sanitizeFileName(value: string): string {
|
|
66
|
-
const trimmed = value.trim();
|
|
67
|
-
if (!trimmed) return "upload.bin";
|
|
68
|
-
const normalized = trimmed
|
|
69
|
-
.replaceAll("\\", "/")
|
|
70
|
-
.split("/")
|
|
71
|
-
.filter(Boolean)
|
|
72
|
-
.pop() ?? "upload.bin";
|
|
73
|
-
const safe = normalized
|
|
74
|
-
.replace(/[^A-Za-z0-9._-]+/g, "-")
|
|
75
|
-
.replace(/-+/g, "-")
|
|
76
|
-
.replace(/^\.+/, "")
|
|
77
|
-
.replace(/^-+/, "");
|
|
78
|
-
return safe || "upload.bin";
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function isImagePath(path: string): boolean {
|
|
82
|
-
const lower = path.toLowerCase();
|
|
83
|
-
for (const ext of IMAGE_EXTENSIONS) {
|
|
84
|
-
if (lower.endsWith(ext)) return true;
|
|
85
|
-
}
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export async function POST(request: NextRequest) {
|
|
90
|
-
const denied = await guardApiAccess(request, "operator");
|
|
91
|
-
if (denied) return denied;
|
|
92
|
-
const deniedAction = guardApiActionAccess(request);
|
|
93
|
-
if (deniedAction) return deniedAction;
|
|
94
|
-
|
|
95
|
-
try {
|
|
96
|
-
const form = await request.formData();
|
|
97
|
-
const projectId = asNonEmptyString(form.get("projectId"));
|
|
98
|
-
if (!projectId) {
|
|
99
|
-
return NextResponse.json({ error: "projectId is required" }, { status: 400 });
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const incoming = form.getAll("files").filter((item): item is File => item instanceof File);
|
|
103
|
-
if (incoming.length === 0) {
|
|
104
|
-
return NextResponse.json({ error: "No files uploaded" }, { status: 400 });
|
|
105
|
-
}
|
|
106
|
-
if (incoming.length > MAX_UPLOAD_FILES) {
|
|
107
|
-
return NextResponse.json(
|
|
108
|
-
{ error: `Too many files. Max ${MAX_UPLOAD_FILES} files per request.` },
|
|
109
|
-
{ status: 400 },
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
const { config } = await getServices();
|
|
114
|
-
if (!config.projects[projectId]) {
|
|
115
|
-
return NextResponse.json({ error: `Unknown project: ${projectId}` }, { status: 404 });
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const workspaceRoot = resolveWorkspacePath(config);
|
|
119
|
-
const projectSegment = normalizeToken(projectId);
|
|
120
|
-
const targetDir = resolve(workspaceRoot, "attachments", projectSegment);
|
|
121
|
-
const workspacePrefix = workspaceRoot.endsWith(sep) ? workspaceRoot : `${workspaceRoot}${sep}`;
|
|
122
|
-
if (targetDir !== workspaceRoot && !targetDir.startsWith(workspacePrefix)) {
|
|
123
|
-
return NextResponse.json({ error: "Upload path escapes workspace" }, { status: 400 });
|
|
124
|
-
}
|
|
125
|
-
await mkdir(targetDir, { recursive: true });
|
|
126
|
-
|
|
127
|
-
const uploaded: Array<{
|
|
128
|
-
path: string;
|
|
129
|
-
name: string;
|
|
130
|
-
size: number;
|
|
131
|
-
mimeType: string | null;
|
|
132
|
-
kind: "image" | "file";
|
|
133
|
-
}> = [];
|
|
134
|
-
|
|
135
|
-
for (const [index, file] of incoming.entries()) {
|
|
136
|
-
if (file.size > MAX_UPLOAD_BYTES) {
|
|
137
|
-
return NextResponse.json(
|
|
138
|
-
{ error: `File "${file.name}" exceeds 25MB limit.` },
|
|
139
|
-
{ status: 413 },
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
const safeName = sanitizeFileName(file.name);
|
|
143
|
-
const uniquePrefix = `${Date.now()}-${index}-${randomBytes(3).toString("hex")}`;
|
|
144
|
-
const fileName = `${uniquePrefix}-${safeName}`;
|
|
145
|
-
const absolutePath = resolve(targetDir, fileName);
|
|
146
|
-
if (absolutePath !== workspaceRoot && !absolutePath.startsWith(workspacePrefix)) {
|
|
147
|
-
return NextResponse.json({ error: "Resolved upload path escapes workspace" }, { status: 400 });
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
const bytes = Buffer.from(await file.arrayBuffer());
|
|
151
|
-
await writeFile(absolutePath, bytes);
|
|
152
|
-
const relPath = relative(workspaceRoot, absolutePath).replaceAll("\\", "/");
|
|
153
|
-
uploaded.push({
|
|
154
|
-
path: relPath,
|
|
155
|
-
name: file.name || safeName,
|
|
156
|
-
size: file.size,
|
|
157
|
-
mimeType: file.type || null,
|
|
158
|
-
kind: isImagePath(relPath) ? "image" : "file",
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
return NextResponse.json({ files: uploaded }, { status: 201 });
|
|
163
|
-
} catch (err) {
|
|
164
|
-
return NextResponse.json(
|
|
165
|
-
{ error: err instanceof Error ? err.message : "Failed to upload files" },
|
|
166
|
-
{ status: 500 },
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
5
|
+
export const POST = guardedProxyRoute("/api/attachments", { role: "operator", requireActionGuard: true });
|