@jcjeon/integration-cli 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/server/dist/app.controller.d.ts +6 -0
- package/apps/server/dist/app.controller.js +35 -0
- package/apps/server/dist/app.controller.js.map +1 -0
- package/apps/server/dist/app.module.d.ts +2 -0
- package/apps/server/dist/app.module.js +30 -0
- package/apps/server/dist/app.module.js.map +1 -0
- package/apps/server/dist/app.service.d.ts +3 -0
- package/apps/server/dist/app.service.js +20 -0
- package/apps/server/dist/app.service.js.map +1 -0
- package/apps/server/dist/common/ji-paths.d.ts +22 -0
- package/apps/server/dist/common/ji-paths.js +77 -0
- package/apps/server/dist/common/ji-paths.js.map +1 -0
- package/apps/server/dist/database/database.module.d.ts +2 -0
- package/apps/server/dist/database/database.module.js +38 -0
- package/apps/server/dist/database/database.module.js.map +1 -0
- package/apps/server/dist/database/entities/agent-changelog.entity.d.ts +14 -0
- package/apps/server/dist/database/entities/agent-changelog.entity.js +75 -0
- package/apps/server/dist/database/entities/agent-changelog.entity.js.map +1 -0
- package/apps/server/dist/database/entities/agent-session.entity.d.ts +10 -0
- package/apps/server/dist/database/entities/agent-session.entity.js +60 -0
- package/apps/server/dist/database/entities/agent-session.entity.js.map +1 -0
- package/apps/server/dist/database/entities/conversation.entity.d.ts +12 -0
- package/apps/server/dist/database/entities/conversation.entity.js +66 -0
- package/apps/server/dist/database/entities/conversation.entity.js.map +1 -0
- package/apps/server/dist/database/entities/session.entity.d.ts +6 -0
- package/apps/server/dist/database/entities/session.entity.js +40 -0
- package/apps/server/dist/database/entities/session.entity.js.map +1 -0
- package/apps/server/dist/database/entities/task-agent-run.entity.d.ts +15 -0
- package/apps/server/dist/database/entities/task-agent-run.entity.js +77 -0
- package/apps/server/dist/database/entities/task-agent-run.entity.js.map +1 -0
- package/apps/server/dist/database/entities/task-agent.entity.d.ts +16 -0
- package/apps/server/dist/database/entities/task-agent.entity.js +76 -0
- package/apps/server/dist/database/entities/task-agent.entity.js.map +1 -0
- package/apps/server/dist/database/entities/task-requirement.entity.d.ts +10 -0
- package/apps/server/dist/database/entities/task-requirement.entity.js +56 -0
- package/apps/server/dist/database/entities/task-requirement.entity.js.map +1 -0
- package/apps/server/dist/database/entities/task-run.entity.d.ts +13 -0
- package/apps/server/dist/database/entities/task-run.entity.js +67 -0
- package/apps/server/dist/database/entities/task-run.entity.js.map +1 -0
- package/apps/server/dist/database/entities/task.entity.d.ts +14 -0
- package/apps/server/dist/database/entities/task.entity.js +72 -0
- package/apps/server/dist/database/entities/task.entity.js.map +1 -0
- package/apps/server/dist/main.d.ts +1 -0
- package/apps/server/dist/main.js +81 -0
- package/apps/server/dist/main.js.map +1 -0
- package/apps/server/dist/modules/agents/agents.module.d.ts +2 -0
- package/apps/server/dist/modules/agents/agents.module.js +23 -0
- package/apps/server/dist/modules/agents/agents.module.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/claude-auth.manager.d.ts +15 -0
- package/apps/server/dist/modules/agents/claude/claude-auth.manager.js +71 -0
- package/apps/server/dist/modules/agents/claude/claude-auth.manager.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/claude-pty.manager.d.ts +29 -0
- package/apps/server/dist/modules/agents/claude/claude-pty.manager.js +372 -0
- package/apps/server/dist/modules/agents/claude/claude-pty.manager.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/claude.controller.d.ts +19 -0
- package/apps/server/dist/modules/agents/claude/claude.controller.js +125 -0
- package/apps/server/dist/modules/agents/claude/claude.controller.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/claude.gateway.d.ts +27 -0
- package/apps/server/dist/modules/agents/claude/claude.gateway.js +148 -0
- package/apps/server/dist/modules/agents/claude/claude.gateway.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/claude.module.d.ts +2 -0
- package/apps/server/dist/modules/agents/claude/claude.module.js +30 -0
- package/apps/server/dist/modules/agents/claude/claude.module.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/claude.service.d.ts +28 -0
- package/apps/server/dist/modules/agents/claude/claude.service.js +94 -0
- package/apps/server/dist/modules/agents/claude/claude.service.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/dto/create-session.dto.d.ts +6 -0
- package/apps/server/dist/modules/agents/claude/dto/create-session.dto.js +46 -0
- package/apps/server/dist/modules/agents/claude/dto/create-session.dto.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/dto/resize-session.dto.d.ts +4 -0
- package/apps/server/dist/modules/agents/claude/dto/resize-session.dto.js +31 -0
- package/apps/server/dist/modules/agents/claude/dto/resize-session.dto.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/dto/send-input.dto.d.ts +3 -0
- package/apps/server/dist/modules/agents/claude/dto/send-input.dto.js +25 -0
- package/apps/server/dist/modules/agents/claude/dto/send-input.dto.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/interfaces/claude-session.interface.d.ts +22 -0
- package/apps/server/dist/modules/agents/claude/interfaces/claude-session.interface.js +3 -0
- package/apps/server/dist/modules/agents/claude/interfaces/claude-session.interface.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/interfaces/pty-event.interface.d.ts +9 -0
- package/apps/server/dist/modules/agents/claude/interfaces/pty-event.interface.js +3 -0
- package/apps/server/dist/modules/agents/claude/interfaces/pty-event.interface.js.map +1 -0
- package/apps/server/dist/modules/agents/claude/interfaces/stream-event.interface.d.ts +53 -0
- package/apps/server/dist/modules/agents/claude/interfaces/stream-event.interface.js +3 -0
- package/apps/server/dist/modules/agents/claude/interfaces/stream-event.interface.js.map +1 -0
- package/apps/server/dist/modules/agents/codex/codex-auth.manager.d.ts +16 -0
- package/apps/server/dist/modules/agents/codex/codex-auth.manager.js +136 -0
- package/apps/server/dist/modules/agents/codex/codex-auth.manager.js.map +1 -0
- package/apps/server/dist/modules/agents/codex/codex-session.manager.d.ts +37 -0
- package/apps/server/dist/modules/agents/codex/codex-session.manager.js +319 -0
- package/apps/server/dist/modules/agents/codex/codex-session.manager.js.map +1 -0
- package/apps/server/dist/modules/agents/codex/codex.controller.d.ts +19 -0
- package/apps/server/dist/modules/agents/codex/codex.controller.js +95 -0
- package/apps/server/dist/modules/agents/codex/codex.controller.js.map +1 -0
- package/apps/server/dist/modules/agents/codex/codex.gateway.d.ts +27 -0
- package/apps/server/dist/modules/agents/codex/codex.gateway.js +123 -0
- package/apps/server/dist/modules/agents/codex/codex.gateway.js.map +1 -0
- package/apps/server/dist/modules/agents/codex/codex.module.d.ts +2 -0
- package/apps/server/dist/modules/agents/codex/codex.module.js +29 -0
- package/apps/server/dist/modules/agents/codex/codex.module.js.map +1 -0
- package/apps/server/dist/modules/agents/codex/dto/configure-auth.dto.d.ts +3 -0
- package/apps/server/dist/modules/agents/codex/dto/configure-auth.dto.js +23 -0
- package/apps/server/dist/modules/agents/codex/dto/configure-auth.dto.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/dto/configure-auth.dto.d.ts +5 -0
- package/apps/server/dist/modules/agents/gemini/dto/configure-auth.dto.js +31 -0
- package/apps/server/dist/modules/agents/gemini/dto/configure-auth.dto.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/dto/create-session.dto.d.ts +3 -0
- package/apps/server/dist/modules/agents/gemini/dto/create-session.dto.js +25 -0
- package/apps/server/dist/modules/agents/gemini/dto/create-session.dto.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/dto/send-input.dto.d.ts +3 -0
- package/apps/server/dist/modules/agents/gemini/dto/send-input.dto.js +25 -0
- package/apps/server/dist/modules/agents/gemini/dto/send-input.dto.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/gemini-auth.manager.d.ts +20 -0
- package/apps/server/dist/modules/agents/gemini/gemini-auth.manager.js +154 -0
- package/apps/server/dist/modules/agents/gemini/gemini-auth.manager.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/gemini-session.manager.d.ts +31 -0
- package/apps/server/dist/modules/agents/gemini/gemini-session.manager.js +304 -0
- package/apps/server/dist/modules/agents/gemini/gemini-session.manager.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/gemini.controller.d.ts +19 -0
- package/apps/server/dist/modules/agents/gemini/gemini.controller.js +135 -0
- package/apps/server/dist/modules/agents/gemini/gemini.controller.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/gemini.gateway.d.ts +24 -0
- package/apps/server/dist/modules/agents/gemini/gemini.gateway.js +142 -0
- package/apps/server/dist/modules/agents/gemini/gemini.gateway.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/gemini.module.d.ts +2 -0
- package/apps/server/dist/modules/agents/gemini/gemini.module.js +29 -0
- package/apps/server/dist/modules/agents/gemini/gemini.module.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/interfaces/gemini-session.interface.d.ts +16 -0
- package/apps/server/dist/modules/agents/gemini/interfaces/gemini-session.interface.js +3 -0
- package/apps/server/dist/modules/agents/gemini/interfaces/gemini-session.interface.js.map +1 -0
- package/apps/server/dist/modules/agents/gemini/interfaces/stream-event.interface.d.ts +12 -0
- package/apps/server/dist/modules/agents/gemini/interfaces/stream-event.interface.js +3 -0
- package/apps/server/dist/modules/agents/gemini/interfaces/stream-event.interface.js.map +1 -0
- package/apps/server/dist/modules/changelog/changelog.controller.d.ts +7 -0
- package/apps/server/dist/modules/changelog/changelog.controller.js +50 -0
- package/apps/server/dist/modules/changelog/changelog.controller.js.map +1 -0
- package/apps/server/dist/modules/changelog/changelog.module.d.ts +2 -0
- package/apps/server/dist/modules/changelog/changelog.module.js +26 -0
- package/apps/server/dist/modules/changelog/changelog.module.js.map +1 -0
- package/apps/server/dist/modules/changelog/changelog.service.d.ts +68 -0
- package/apps/server/dist/modules/changelog/changelog.service.js +598 -0
- package/apps/server/dist/modules/changelog/changelog.service.js.map +1 -0
- package/apps/server/dist/modules/conversations/conversation.controller.d.ts +11 -0
- package/apps/server/dist/modules/conversations/conversation.controller.js +95 -0
- package/apps/server/dist/modules/conversations/conversation.controller.js.map +1 -0
- package/apps/server/dist/modules/conversations/conversation.module.d.ts +2 -0
- package/apps/server/dist/modules/conversations/conversation.module.js +26 -0
- package/apps/server/dist/modules/conversations/conversation.module.js.map +1 -0
- package/apps/server/dist/modules/conversations/conversation.service.d.ts +13 -0
- package/apps/server/dist/modules/conversations/conversation.service.js +61 -0
- package/apps/server/dist/modules/conversations/conversation.service.js.map +1 -0
- package/apps/server/dist/modules/conversations/dto/create-conversation.dto.d.ts +10 -0
- package/apps/server/dist/modules/conversations/dto/create-conversation.dto.js +64 -0
- package/apps/server/dist/modules/conversations/dto/create-conversation.dto.js.map +1 -0
- package/apps/server/dist/modules/conversations/enums/conversation.enum.d.ts +12 -0
- package/apps/server/dist/modules/conversations/enums/conversation.enum.js +18 -0
- package/apps/server/dist/modules/conversations/enums/conversation.enum.js.map +1 -0
- package/apps/server/dist/modules/fs/fs.controller.d.ts +6 -0
- package/apps/server/dist/modules/fs/fs.controller.js +85 -0
- package/apps/server/dist/modules/fs/fs.controller.js.map +1 -0
- package/apps/server/dist/modules/fs/fs.module.d.ts +2 -0
- package/apps/server/dist/modules/fs/fs.module.js +20 -0
- package/apps/server/dist/modules/fs/fs.module.js.map +1 -0
- package/apps/server/dist/modules/harness/dto/save-harness.dto.d.ts +4 -0
- package/apps/server/dist/modules/harness/dto/save-harness.dto.js +27 -0
- package/apps/server/dist/modules/harness/dto/save-harness.dto.js.map +1 -0
- package/apps/server/dist/modules/harness/harness.controller.d.ts +14 -0
- package/apps/server/dist/modules/harness/harness.controller.js +72 -0
- package/apps/server/dist/modules/harness/harness.controller.js.map +1 -0
- package/apps/server/dist/modules/harness/harness.module.d.ts +2 -0
- package/apps/server/dist/modules/harness/harness.module.js +23 -0
- package/apps/server/dist/modules/harness/harness.module.js.map +1 -0
- package/apps/server/dist/modules/harness/harness.service.d.ts +20 -0
- package/apps/server/dist/modules/harness/harness.service.js +134 -0
- package/apps/server/dist/modules/harness/harness.service.js.map +1 -0
- package/apps/server/dist/modules/sessions/session.controller.d.ts +12 -0
- package/apps/server/dist/modules/sessions/session.controller.js +79 -0
- package/apps/server/dist/modules/sessions/session.controller.js.map +1 -0
- package/apps/server/dist/modules/sessions/session.module.d.ts +2 -0
- package/apps/server/dist/modules/sessions/session.module.js +26 -0
- package/apps/server/dist/modules/sessions/session.module.js.map +1 -0
- package/apps/server/dist/modules/sessions/session.service.d.ts +9 -0
- package/apps/server/dist/modules/sessions/session.service.js +49 -0
- package/apps/server/dist/modules/sessions/session.service.js.map +1 -0
- package/apps/server/dist/modules/tasks/dto/create-task.dto.d.ts +15 -0
- package/apps/server/dist/modules/tasks/dto/create-task.dto.js +88 -0
- package/apps/server/dist/modules/tasks/dto/create-task.dto.js.map +1 -0
- package/apps/server/dist/modules/tasks/dto/execute-task.dto.d.ts +7 -0
- package/apps/server/dist/modules/tasks/dto/execute-task.dto.js +43 -0
- package/apps/server/dist/modules/tasks/dto/execute-task.dto.js.map +1 -0
- package/apps/server/dist/modules/tasks/dto/merge-file.dto.d.ts +3 -0
- package/apps/server/dist/modules/tasks/dto/merge-file.dto.js +23 -0
- package/apps/server/dist/modules/tasks/dto/merge-file.dto.js.map +1 -0
- package/apps/server/dist/modules/tasks/dto/rerun-task.dto.d.ts +4 -0
- package/apps/server/dist/modules/tasks/dto/rerun-task.dto.js +32 -0
- package/apps/server/dist/modules/tasks/dto/rerun-task.dto.js.map +1 -0
- package/apps/server/dist/modules/tasks/dto/update-task.dto.d.ts +15 -0
- package/apps/server/dist/modules/tasks/dto/update-task.dto.js +89 -0
- package/apps/server/dist/modules/tasks/dto/update-task.dto.js.map +1 -0
- package/apps/server/dist/modules/tasks/task-execution.service.d.ts +105 -0
- package/apps/server/dist/modules/tasks/task-execution.service.js +842 -0
- package/apps/server/dist/modules/tasks/task-execution.service.js.map +1 -0
- package/apps/server/dist/modules/tasks/task.gateway.d.ts +17 -0
- package/apps/server/dist/modules/tasks/task.gateway.js +126 -0
- package/apps/server/dist/modules/tasks/task.gateway.js.map +1 -0
- package/apps/server/dist/modules/tasks/tasks.controller.d.ts +29 -0
- package/apps/server/dist/modules/tasks/tasks.controller.js +209 -0
- package/apps/server/dist/modules/tasks/tasks.controller.js.map +1 -0
- package/apps/server/dist/modules/tasks/tasks.module.d.ts +2 -0
- package/apps/server/dist/modules/tasks/tasks.module.js +42 -0
- package/apps/server/dist/modules/tasks/tasks.module.js.map +1 -0
- package/apps/server/dist/modules/tasks/tasks.service.d.ts +47 -0
- package/apps/server/dist/modules/tasks/tasks.service.js +341 -0
- package/apps/server/dist/modules/tasks/tasks.service.js.map +1 -0
- package/apps/server/dist/tsconfig.build.tsbuildinfo +1 -0
- package/apps/web/.next/BUILD_ID +1 -0
- package/apps/web/.next/app-path-routes-manifest.json +12 -0
- package/apps/web/.next/build/chunks/[root-of-the-server]__0cstldc._.js +206 -0
- package/apps/web/.next/build/chunks/[root-of-the-server]__0cstldc._.js.map +8 -0
- package/apps/web/.next/build/chunks/[root-of-the-server]__0s3ts0r._.js +500 -0
- package/apps/web/.next/build/chunks/[root-of-the-server]__0s3ts0r._.js.map +11 -0
- package/apps/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0xqnjlz._.js +13 -0
- package/apps/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0xqnjlz._.js.map +5 -0
- package/apps/web/.next/build/chunks/[turbopack]_runtime.js +890 -0
- package/apps/web/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
- package/apps/web/.next/build/chunks/node_modules_13sb.px._.js +6820 -0
- package/apps/web/.next/build/chunks/node_modules_13sb.px._.js.map +47 -0
- package/apps/web/.next/build/package.json +1 -0
- package/apps/web/.next/build/postcss.js +6 -0
- package/apps/web/.next/build/postcss.js.map +5 -0
- package/apps/web/.next/build-manifest.json +21 -0
- package/apps/web/.next/diagnostics/build-diagnostics.json +6 -0
- package/apps/web/.next/diagnostics/framework.json +1 -0
- package/apps/web/.next/diagnostics/route-bundle-stats.json +118 -0
- package/apps/web/.next/export-marker.json +6 -0
- package/apps/web/.next/fallback-build-manifest.json +13 -0
- package/apps/web/.next/images-manifest.json +68 -0
- package/apps/web/.next/next-minimal-server.js.nft.json +1 -0
- package/apps/web/.next/next-server.js.nft.json +1 -0
- package/apps/web/.next/package.json +1 -0
- package/apps/web/.next/prerender-manifest.json +234 -0
- package/apps/web/.next/required-server-files.js +332 -0
- package/apps/web/.next/required-server-files.json +332 -0
- package/apps/web/.next/routes-manifest.json +108 -0
- package/apps/web/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/_global-error/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/apps/web/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/_global-error/page.js +10 -0
- package/apps/web/.next/server/app/_global-error/page.js.map +5 -0
- package/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/_global-error.html +1 -0
- package/apps/web/.next/server/app/_global-error.meta +15 -0
- package/apps/web/.next/server/app/_global-error.rsc +15 -0
- package/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
- package/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/apps/web/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/_not-found/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
- package/apps/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/_not-found/page.js +13 -0
- package/apps/web/.next/server/app/_not-found/page.js.map +5 -0
- package/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/_not-found.html +1 -0
- package/apps/web/.next/server/app/_not-found.meta +16 -0
- package/apps/web/.next/server/app/_not-found.rsc +19 -0
- package/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +19 -0
- package/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +8 -0
- package/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
- package/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
- package/apps/web/.next/server/app/claude/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/claude/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/claude/page/next-font-manifest.json +11 -0
- package/apps/web/.next/server/app/claude/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/claude/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/claude/page.js +14 -0
- package/apps/web/.next/server/app/claude/page.js.map +5 -0
- package/apps/web/.next/server/app/claude/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/claude/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/claude.html +1 -0
- package/apps/web/.next/server/app/claude.meta +15 -0
- package/apps/web/.next/server/app/claude.rsc +22 -0
- package/apps/web/.next/server/app/claude.segments/_full.segment.rsc +22 -0
- package/apps/web/.next/server/app/claude.segments/_head.segment.rsc +6 -0
- package/apps/web/.next/server/app/claude.segments/_index.segment.rsc +8 -0
- package/apps/web/.next/server/app/claude.segments/_tree.segment.rsc +5 -0
- package/apps/web/.next/server/app/claude.segments/claude/__PAGE__.segment.rsc +6 -0
- package/apps/web/.next/server/app/claude.segments/claude.segment.rsc +5 -0
- package/apps/web/.next/server/app/codex/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/codex/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/codex/page/next-font-manifest.json +11 -0
- package/apps/web/.next/server/app/codex/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/codex/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/codex/page.js +14 -0
- package/apps/web/.next/server/app/codex/page.js.map +5 -0
- package/apps/web/.next/server/app/codex/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/codex/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/codex.html +1 -0
- package/apps/web/.next/server/app/codex.meta +15 -0
- package/apps/web/.next/server/app/codex.rsc +25 -0
- package/apps/web/.next/server/app/codex.segments/_full.segment.rsc +25 -0
- package/apps/web/.next/server/app/codex.segments/_head.segment.rsc +6 -0
- package/apps/web/.next/server/app/codex.segments/_index.segment.rsc +8 -0
- package/apps/web/.next/server/app/codex.segments/_tree.segment.rsc +5 -0
- package/apps/web/.next/server/app/codex.segments/codex/__PAGE__.segment.rsc +9 -0
- package/apps/web/.next/server/app/codex.segments/codex.segment.rsc +5 -0
- package/apps/web/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/favicon.ico/route/build-manifest.json +9 -0
- package/apps/web/.next/server/app/favicon.ico/route.js +6 -0
- package/apps/web/.next/server/app/favicon.ico/route.js.map +5 -0
- package/apps/web/.next/server/app/favicon.ico/route.js.nft.json +1 -0
- package/apps/web/.next/server/app/favicon.ico.meta +1 -0
- package/apps/web/.next/server/app/gemini/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/gemini/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/gemini/page/next-font-manifest.json +11 -0
- package/apps/web/.next/server/app/gemini/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/gemini/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/gemini/page.js +14 -0
- package/apps/web/.next/server/app/gemini/page.js.map +5 -0
- package/apps/web/.next/server/app/gemini/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/gemini/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/gemini.html +1 -0
- package/apps/web/.next/server/app/gemini.meta +15 -0
- package/apps/web/.next/server/app/gemini.rsc +25 -0
- package/apps/web/.next/server/app/gemini.segments/_full.segment.rsc +25 -0
- package/apps/web/.next/server/app/gemini.segments/_head.segment.rsc +6 -0
- package/apps/web/.next/server/app/gemini.segments/_index.segment.rsc +8 -0
- package/apps/web/.next/server/app/gemini.segments/_tree.segment.rsc +5 -0
- package/apps/web/.next/server/app/gemini.segments/gemini/__PAGE__.segment.rsc +9 -0
- package/apps/web/.next/server/app/gemini.segments/gemini.segment.rsc +5 -0
- package/apps/web/.next/server/app/index.html +1 -0
- package/apps/web/.next/server/app/index.meta +14 -0
- package/apps/web/.next/server/app/index.rsc +23 -0
- package/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
- package/apps/web/.next/server/app/index.segments/_full.segment.rsc +23 -0
- package/apps/web/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/apps/web/.next/server/app/index.segments/_index.segment.rsc +8 -0
- package/apps/web/.next/server/app/index.segments/_tree.segment.rsc +5 -0
- package/apps/web/.next/server/app/login/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/login/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/login/page/next-font-manifest.json +11 -0
- package/apps/web/.next/server/app/login/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/login/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/login/page.js +14 -0
- package/apps/web/.next/server/app/login/page.js.map +5 -0
- package/apps/web/.next/server/app/login/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/login/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/login.html +1 -0
- package/apps/web/.next/server/app/login.meta +15 -0
- package/apps/web/.next/server/app/login.rsc +25 -0
- package/apps/web/.next/server/app/login.segments/_full.segment.rsc +25 -0
- package/apps/web/.next/server/app/login.segments/_head.segment.rsc +6 -0
- package/apps/web/.next/server/app/login.segments/_index.segment.rsc +8 -0
- package/apps/web/.next/server/app/login.segments/_tree.segment.rsc +5 -0
- package/apps/web/.next/server/app/login.segments/login/__PAGE__.segment.rsc +9 -0
- package/apps/web/.next/server/app/login.segments/login.segment.rsc +5 -0
- package/apps/web/.next/server/app/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/page/next-font-manifest.json +11 -0
- package/apps/web/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/page.js +14 -0
- package/apps/web/.next/server/app/page.js.map +5 -0
- package/apps/web/.next/server/app/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/task/[id]/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/task/[id]/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/task/[id]/page/next-font-manifest.json +11 -0
- package/apps/web/.next/server/app/task/[id]/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/task/[id]/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/task/[id]/page.js +14 -0
- package/apps/web/.next/server/app/task/[id]/page.js.map +5 -0
- package/apps/web/.next/server/app/task/[id]/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/task/[id]/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/test/page/app-paths-manifest.json +3 -0
- package/apps/web/.next/server/app/test/page/build-manifest.json +17 -0
- package/apps/web/.next/server/app/test/page/next-font-manifest.json +11 -0
- package/apps/web/.next/server/app/test/page/react-loadable-manifest.json +1 -0
- package/apps/web/.next/server/app/test/page/server-reference-manifest.json +4 -0
- package/apps/web/.next/server/app/test/page.js +14 -0
- package/apps/web/.next/server/app/test/page.js.map +5 -0
- package/apps/web/.next/server/app/test/page.js.nft.json +1 -0
- package/apps/web/.next/server/app/test/page_client-reference-manifest.js +3 -0
- package/apps/web/.next/server/app/test.html +1 -0
- package/apps/web/.next/server/app/test.meta +15 -0
- package/apps/web/.next/server/app/test.rsc +25 -0
- package/apps/web/.next/server/app/test.segments/_full.segment.rsc +25 -0
- package/apps/web/.next/server/app/test.segments/_head.segment.rsc +6 -0
- package/apps/web/.next/server/app/test.segments/_index.segment.rsc +8 -0
- package/apps/web/.next/server/app/test.segments/_tree.segment.rsc +5 -0
- package/apps/web/.next/server/app/test.segments/test/__PAGE__.segment.rsc +9 -0
- package/apps/web/.next/server/app/test.segments/test.segment.rsc +5 -0
- package/apps/web/.next/server/app-paths-manifest.json +12 -0
- package/apps/web/.next/server/chunks/[externals]_next_dist_0arv.vj._.js +3 -0
- package/apps/web/.next/server/chunks/[externals]_next_dist_0arv.vj._.js.map +1 -0
- package/apps/web/.next/server/chunks/[root-of-the-server]__0xjvedo._.js +13 -0
- package/apps/web/.next/server/chunks/[root-of-the-server]__0xjvedo._.js.map +1 -0
- package/apps/web/.next/server/chunks/[turbopack]_runtime.js +903 -0
- package/apps/web/.next/server/chunks/[turbopack]_runtime.js.map +11 -0
- package/apps/web/.next/server/chunks/apps_web__next-internal_server_app_favicon_ico_route_actions_0h5n1et.js +3 -0
- package/apps/web/.next/server/chunks/apps_web__next-internal_server_app_favicon_ico_route_actions_0h5n1et.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__00707zu._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__00707zu._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__02w1lqw._.js +33 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__02w1lqw._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__058frv2._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__058frv2._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__05mnfv7._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__05mnfv7._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__05w0js1._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__05w0js1._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__05y8~sf._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__05y8~sf._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0a~4k2j._.js +8 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0a~4k2j._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0bzgqz2._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0bzgqz2._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0csq2e.._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0csq2e.._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0dgn1-d._.js +8 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0dgn1-d._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0g.z8rw._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0g.z8rw._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0g7.yrd._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0g7.yrd._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ill7bp._.js +4 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ill7bp._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0lxs646._.js +33 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0lxs646._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0osecwm._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0osecwm._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0x5.eah._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0x5.eah._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10mg911._.js +9 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10mg911._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10xopfz._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10xopfz._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__11illgy._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/[root-of-the-server]__11illgy._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
- package/apps/web/.next/server/chunks/ssr/[turbopack]_runtime.js.map +11 -0
- package/apps/web/.next/server/chunks/ssr/_0hy8~s0._.js +6 -0
- package/apps/web/.next/server/chunks/ssr/_0hy8~s0._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__global-error_page_actions_0.u5cfa.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__global-error_page_actions_0.u5cfa.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__not-found_page_actions_0appun9.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__not-found_page_actions_0appun9.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_claude_page_actions_0_uv-yn.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_claude_page_actions_0_uv-yn.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_codex_page_actions_0ace7zi.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_codex_page_actions_0ace7zi.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_gemini_page_actions_0ux-r~z.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_gemini_page_actions_0ux-r~z.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_login_page_actions_0srfp5v.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_login_page_actions_0srfp5v.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_page_actions_0rm5_5w.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_page_actions_0rm5_5w.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_task_[id]_page_actions_0bd_3_p.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_task_[id]_page_actions_0bd_3_p.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_test_page_actions_0pn8asm.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_test_page_actions_0pn8asm.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_0s6cw51._.js +8 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_0s6cw51._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_app_login_page_tsx_07oskhj._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_app_login_page_tsx_07oskhj._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_app_page_tsx_0kq.zh9._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_app_page_tsx_0kq.zh9._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_app_test_page_tsx_04ji_kt._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_app_test_page_tsx_04ji_kt._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_features_02y94.o._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_features_02y94.o._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_features_0y6q6xu._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/apps_web_src_features_0y6q6xu._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_09w7yel._.js +33 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_09w7yel._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_0ck2~9g._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_0ck2~9g._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_0i2xw~e._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_0i2xw~e._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_0vtdjw7._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_0vtdjw7._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_03nkrli._.js +19 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_03nkrli._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js +6 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js +3 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js +3 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +3 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01s3o34.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01s3o34.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ax1b3s.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ax1b3s.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gl78zj.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gl78zj.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j~tyzr.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j~tyzr.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0khf96-.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0khf96-.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qgz_85.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qgz_85.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0unh3f-.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0unh3f-.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uq606i.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uq606i.js.map +1 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128e6.l.js +4 -0
- package/apps/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128e6.l.js.map +1 -0
- package/apps/web/.next/server/functions-config-manifest.json +4 -0
- package/apps/web/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/apps/web/.next/server/middleware-build-manifest.js +21 -0
- package/apps/web/.next/server/middleware-manifest.json +6 -0
- package/apps/web/.next/server/next-font-manifest.js +1 -0
- package/apps/web/.next/server/next-font-manifest.json +39 -0
- package/apps/web/.next/server/pages/404.html +1 -0
- package/apps/web/.next/server/pages/500.html +1 -0
- package/apps/web/.next/server/pages-manifest.json +4 -0
- package/apps/web/.next/server/prefetch-hints.json +1 -0
- package/apps/web/.next/server/server-reference-manifest.js +1 -0
- package/apps/web/.next/server/server-reference-manifest.json +5 -0
- package/apps/web/.next/static/chunks/01xlw8hd842-c.js +1 -0
- package/apps/web/.next/static/chunks/03~yq9q893hmn.js +1 -0
- package/apps/web/.next/static/chunks/04w-clkdzn_sn.js +6 -0
- package/apps/web/.next/static/chunks/066jf0nk75nic.css +2 -0
- package/apps/web/.next/static/chunks/0bmpc66o4m-9z.js +1 -0
- package/apps/web/.next/static/chunks/0cctfc2jrxq_0.js +1 -0
- package/apps/web/.next/static/chunks/0dk1ec~jpoxa3.css +1 -0
- package/apps/web/.next/static/chunks/0e992tq36rg-i.js +6 -0
- package/apps/web/.next/static/chunks/0ieuc6bs-l0iy.js +7 -0
- package/apps/web/.next/static/chunks/0nd5y.4d2gl8g.js +1 -0
- package/apps/web/.next/static/chunks/0o-t4yw-v8ahl.js +6 -0
- package/apps/web/.next/static/chunks/0pqt~8bl3ukh4.js +4 -0
- package/apps/web/.next/static/chunks/0rjn.~e6pvni1.js +2 -0
- package/apps/web/.next/static/chunks/0t2xr05rlu96l.js +1 -0
- package/apps/web/.next/static/chunks/0uuu-x.ka3jyt.js +1 -0
- package/apps/web/.next/static/chunks/0x15z029u118o.js +1 -0
- package/apps/web/.next/static/chunks/0~.kxojjn0k1x.js +1 -0
- package/apps/web/.next/static/chunks/10t1c-qsk.cdw.js +1 -0
- package/apps/web/.next/static/chunks/14zwv8duu059g.js +31 -0
- package/apps/web/.next/static/chunks/turbopack-0gpa2pyrgntw-.js +1 -0
- package/apps/web/.next/static/fdXuROcW6IkgkI61bg3UM/_buildManifest.js +11 -0
- package/apps/web/.next/static/fdXuROcW6IkgkI61bg3UM/_clientMiddlewareManifest.js +1 -0
- package/apps/web/.next/static/fdXuROcW6IkgkI61bg3UM/_ssgManifest.js +1 -0
- package/apps/web/.next/static/media/4fa387ec64143e14-s.0wkzw~je483f-.woff2 +0 -0
- package/apps/web/.next/static/media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2 +0 -0
- package/apps/web/.next/static/media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2 +0 -0
- package/apps/web/.next/static/media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2 +0 -0
- package/apps/web/.next/static/media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2 +0 -0
- package/apps/web/.next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2 +0 -0
- package/apps/web/.next/static/media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2 +0 -0
- package/apps/web/.next/static/media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2 +0 -0
- package/apps/web/.next/static/media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2 +0 -0
- package/apps/web/.next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2 +0 -0
- package/apps/web/.next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
- package/apps/web/.next/static/media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2 +0 -0
- package/apps/web/.next/trace +1 -0
- package/apps/web/.next/trace-build +1 -0
- package/apps/web/.next/turbopack +0 -0
- package/apps/web/.next/types/cache-life.d.ts +145 -0
- package/apps/web/.next/types/routes.d.ts +63 -0
- package/apps/web/.next/types/validator.ts +115 -0
- package/package.json +28 -42
- package/packages/cli/dist/commands/init.d.ts +1 -2
- package/packages/cli/dist/commands/init.js +14 -16
- package/packages/cli/dist/commands/start.js +41 -26
- package/packages/cli/dist/index.js +6 -23
- package/packages/cli/dist/utils/package-root.d.ts +3 -0
- package/packages/cli/dist/utils/package-root.js +62 -0
- package/.gitignore +0 -23
- package/.npmignore +0 -21
- package/.prettierignore +0 -6
- package/.prettierrc +0 -26
- package/AGENTS.md +0 -10
- package/CLAUDE.md +0 -10
- package/apps/server/eslint.config.mjs +0 -20
- package/apps/server/nest-cli.json +0 -8
- package/apps/server/package.json +0 -89
- package/apps/server/scripts/postinstall.js +0 -53
- package/apps/server/src/__mocks__/glob.js +0 -6
- package/apps/server/src/__mocks__/uuid.js +0 -5
- package/apps/server/src/app.controller.spec.ts +0 -24
- package/apps/server/src/app.controller.ts +0 -13
- package/apps/server/src/app.module.ts +0 -18
- package/apps/server/src/app.service.ts +0 -8
- package/apps/server/src/common/ji-paths.ts +0 -41
- package/apps/server/src/database/database.module.ts +0 -27
- package/apps/server/src/database/entities/agent-changelog.entity.ts +0 -39
- package/apps/server/src/database/entities/agent-session.entity.ts +0 -29
- package/apps/server/src/database/entities/conversation.entity.ts +0 -41
- package/apps/server/src/database/entities/session.entity.ts +0 -16
- package/apps/server/src/database/entities/task-agent-run.entity.ts +0 -40
- package/apps/server/src/database/entities/task-agent.entity.ts +0 -42
- package/apps/server/src/database/entities/task-requirement.entity.ts +0 -27
- package/apps/server/src/database/entities/task-run.entity.ts +0 -41
- package/apps/server/src/database/entities/task.entity.ts +0 -44
- package/apps/server/src/main.ts +0 -65
- package/apps/server/src/modules/agents/agent-model-settings.spec.ts +0 -80
- package/apps/server/src/modules/agents/agents.module.ts +0 -11
- package/apps/server/src/modules/agents/claude/claude-auth.manager.ts +0 -83
- package/apps/server/src/modules/agents/claude/claude-pty.manager.ts +0 -380
- package/apps/server/src/modules/agents/claude/claude.controller.ts +0 -85
- package/apps/server/src/modules/agents/claude/claude.gateway.ts +0 -158
- package/apps/server/src/modules/agents/claude/claude.module.ts +0 -18
- package/apps/server/src/modules/agents/claude/claude.service.ts +0 -67
- package/apps/server/src/modules/agents/claude/dto/create-session.dto.ts +0 -24
- package/apps/server/src/modules/agents/claude/dto/resize-session.dto.ts +0 -13
- package/apps/server/src/modules/agents/claude/dto/send-input.dto.ts +0 -9
- package/apps/server/src/modules/agents/claude/interfaces/claude-session.interface.ts +0 -26
- package/apps/server/src/modules/agents/claude/interfaces/pty-event.interface.ts +0 -10
- package/apps/server/src/modules/agents/claude/interfaces/stream-event.interface.ts +0 -61
- package/apps/server/src/modules/agents/codex/codex-auth.manager.ts +0 -107
- package/apps/server/src/modules/agents/codex/codex-session.manager.ts +0 -357
- package/apps/server/src/modules/agents/codex/codex.controller.ts +0 -64
- package/apps/server/src/modules/agents/codex/codex.gateway.ts +0 -97
- package/apps/server/src/modules/agents/codex/codex.module.ts +0 -17
- package/apps/server/src/modules/agents/codex/dto/configure-auth.dto.ts +0 -7
- package/apps/server/src/modules/agents/gemini/dto/configure-auth.dto.ts +0 -15
- package/apps/server/src/modules/agents/gemini/dto/create-session.dto.ts +0 -9
- package/apps/server/src/modules/agents/gemini/dto/send-input.dto.ts +0 -9
- package/apps/server/src/modules/agents/gemini/gemini-auth.manager.ts +0 -157
- package/apps/server/src/modules/agents/gemini/gemini-session.manager.ts +0 -287
- package/apps/server/src/modules/agents/gemini/gemini.controller.ts +0 -93
- package/apps/server/src/modules/agents/gemini/gemini.gateway.ts +0 -149
- package/apps/server/src/modules/agents/gemini/gemini.module.ts +0 -17
- package/apps/server/src/modules/agents/gemini/interfaces/gemini-session.interface.ts +0 -18
- package/apps/server/src/modules/agents/gemini/interfaces/stream-event.interface.ts +0 -14
- package/apps/server/src/modules/agents/session-termination.spec.ts +0 -103
- package/apps/server/src/modules/changelog/changelog.controller.ts +0 -20
- package/apps/server/src/modules/changelog/changelog.module.ts +0 -14
- package/apps/server/src/modules/changelog/changelog.service.spec.ts +0 -531
- package/apps/server/src/modules/changelog/changelog.service.ts +0 -690
- package/apps/server/src/modules/conversations/conversation.controller.spec.ts +0 -106
- package/apps/server/src/modules/conversations/conversation.controller.ts +0 -60
- package/apps/server/src/modules/conversations/conversation.module.ts +0 -14
- package/apps/server/src/modules/conversations/conversation.service.spec.ts +0 -176
- package/apps/server/src/modules/conversations/conversation.service.ts +0 -54
- package/apps/server/src/modules/conversations/dto/create-conversation.dto.ts +0 -37
- package/apps/server/src/modules/conversations/enums/conversation.enum.ts +0 -13
- package/apps/server/src/modules/fs/fs.controller.ts +0 -29
- package/apps/server/src/modules/fs/fs.module.ts +0 -8
- package/apps/server/src/modules/harness/dto/save-harness.dto.ts +0 -9
- package/apps/server/src/modules/harness/harness.controller.spec.ts +0 -95
- package/apps/server/src/modules/harness/harness.controller.ts +0 -35
- package/apps/server/src/modules/harness/harness.module.ts +0 -11
- package/apps/server/src/modules/harness/harness.service.spec.ts +0 -217
- package/apps/server/src/modules/harness/harness.service.ts +0 -112
- package/apps/server/src/modules/sessions/session.controller.spec.ts +0 -68
- package/apps/server/src/modules/sessions/session.controller.ts +0 -43
- package/apps/server/src/modules/sessions/session.module.ts +0 -14
- package/apps/server/src/modules/sessions/session.service.spec.ts +0 -106
- package/apps/server/src/modules/sessions/session.service.ts +0 -35
- package/apps/server/src/modules/tasks/dto/create-task.dto.ts +0 -54
- package/apps/server/src/modules/tasks/dto/execute-task.dto.ts +0 -22
- package/apps/server/src/modules/tasks/dto/merge-file.dto.ts +0 -7
- package/apps/server/src/modules/tasks/dto/rerun-task.dto.ts +0 -14
- package/apps/server/src/modules/tasks/dto/update-task.dto.ts +0 -55
- package/apps/server/src/modules/tasks/task-execution.service.ts +0 -978
- package/apps/server/src/modules/tasks/task.gateway.ts +0 -140
- package/apps/server/src/modules/tasks/tasks.controller.spec.ts +0 -210
- package/apps/server/src/modules/tasks/tasks.controller.ts +0 -139
- package/apps/server/src/modules/tasks/tasks.module.ts +0 -30
- package/apps/server/src/modules/tasks/tasks.service.spec.ts +0 -552
- package/apps/server/src/modules/tasks/tasks.service.ts +0 -333
- package/apps/server/test/app.e2e-spec.ts +0 -28
- package/apps/server/test/jest-e2e.json +0 -9
- package/apps/server/tsconfig.build.json +0 -4
- package/apps/server/tsconfig.json +0 -13
- package/apps/web/AGENTS.md +0 -7
- package/apps/web/CLAUDE.md +0 -1
- package/apps/web/eslint.config.mjs +0 -21
- package/apps/web/next-env.d.ts +0 -6
- package/apps/web/postcss.config.mjs +0 -7
- package/apps/web/src/app/claude/page.tsx +0 -5
- package/apps/web/src/app/codex/page.tsx +0 -126
- package/apps/web/src/app/gemini/page.tsx +0 -130
- package/apps/web/src/app/globals.css +0 -149
- package/apps/web/src/app/layout.tsx +0 -40
- package/apps/web/src/app/login/page.tsx +0 -67
- package/apps/web/src/app/page.tsx +0 -497
- package/apps/web/src/app/task/[id]/page.tsx +0 -11
- package/apps/web/src/app/test/page.tsx +0 -298
- package/apps/web/src/components/ui/Modal.tsx +0 -78
- package/apps/web/src/components/ui/WorkingDirPicker.tsx +0 -195
- package/apps/web/src/components/ui/__tests__/Modal.test.tsx +0 -68
- package/apps/web/src/features/auth/api/__tests__/auth.api.test.ts +0 -83
- package/apps/web/src/features/auth/api/auth.api.ts +0 -81
- package/apps/web/src/features/auth/hooks/__tests__/useClaudeAuth.test.ts +0 -166
- package/apps/web/src/features/auth/hooks/__tests__/useCodexAuth.test.ts +0 -127
- package/apps/web/src/features/auth/hooks/__tests__/useGeminiAuth.test.ts +0 -120
- package/apps/web/src/features/auth/hooks/useClaudeAuth.ts +0 -88
- package/apps/web/src/features/auth/hooks/useCodexAuth.ts +0 -149
- package/apps/web/src/features/auth/hooks/useGeminiAuth.ts +0 -125
- package/apps/web/src/features/auth/ui/CodexLoginPanel.tsx +0 -302
- package/apps/web/src/features/auth/ui/GeminiLoginPanel.tsx +0 -316
- package/apps/web/src/features/auth/ui/LoginForm.tsx +0 -190
- package/apps/web/src/features/auth/ui/LoginPanel.tsx +0 -114
- package/apps/web/src/features/auth/ui/__tests__/LoginPanel.test.tsx +0 -105
- package/apps/web/src/features/chat/api/__tests__/sessions.api.test.ts +0 -187
- package/apps/web/src/features/chat/api/sessions.api.ts +0 -161
- package/apps/web/src/features/chat/container/ClaudePageContainer.tsx +0 -152
- package/apps/web/src/features/chat/hooks/__tests__/useCodexSessions.test.ts +0 -131
- package/apps/web/src/features/chat/hooks/__tests__/useGeminiSessions.test.ts +0 -130
- package/apps/web/src/features/chat/hooks/useAgentModelSettings.ts +0 -54
- package/apps/web/src/features/chat/hooks/useClaudeSessions.ts +0 -323
- package/apps/web/src/features/chat/hooks/useCodexSessions.ts +0 -275
- package/apps/web/src/features/chat/hooks/useGeminiSessions.ts +0 -255
- package/apps/web/src/features/chat/hooks/useSessionCommand.ts +0 -66
- package/apps/web/src/features/chat/hooks/useSessionRename.ts +0 -61
- package/apps/web/src/features/chat/hooks/useSessionWorkingDirectories.ts +0 -34
- package/apps/web/src/features/chat/hooks/useUnifiedSessions.ts +0 -156
- package/apps/web/src/features/chat/lib/agentModelOptions.ts +0 -72
- package/apps/web/src/features/chat/ui/AgentModelPicker.tsx +0 -134
- package/apps/web/src/features/chat/ui/AgentSelectModal.tsx +0 -236
- package/apps/web/src/features/chat/ui/ChatInput.tsx +0 -162
- package/apps/web/src/features/chat/ui/ChatMessage.tsx +0 -204
- package/apps/web/src/features/chat/ui/ChatWorkspace.tsx +0 -207
- package/apps/web/src/features/chat/ui/CheckingSkeleton.tsx +0 -44
- package/apps/web/src/features/chat/ui/ClaudeLoginView.tsx +0 -44
- package/apps/web/src/features/chat/ui/PermissionCard.tsx +0 -37
- package/apps/web/src/features/chat/ui/SessionSidebar.tsx +0 -280
- package/apps/web/src/features/chat/ui/__tests__/AgentSelectModal.test.tsx +0 -58
- package/apps/web/src/features/chat/ui/__tests__/ChatInput.test.tsx +0 -134
- package/apps/web/src/features/chat/ui/__tests__/ChatMessage.test.tsx +0 -106
- package/apps/web/src/features/chat/ui/__tests__/ChatWorkspace.test.tsx +0 -66
- package/apps/web/src/features/diff/ui/DiffFileRow.tsx +0 -73
- package/apps/web/src/features/diff/ui/DiffHunk.tsx +0 -61
- package/apps/web/src/features/diff/ui/FileChangeBadge.tsx +0 -23
- package/apps/web/src/features/diff/ui/__tests__/DiffFileRow.test.tsx +0 -40
- package/apps/web/src/features/diff/ui/__tests__/DiffHunk.test.tsx +0 -24
- package/apps/web/src/features/diff/ui/__tests__/FileChangeBadge.test.tsx +0 -16
- package/apps/web/src/features/fs/api/fs.api.ts +0 -14
- package/apps/web/src/features/fs/hooks/useDirBrowser.ts +0 -50
- package/apps/web/src/features/harness/api/__tests__/harness.api.test.ts +0 -73
- package/apps/web/src/features/harness/api/harness.api.ts +0 -46
- package/apps/web/src/features/harness/hooks/__tests__/useHarness.test.ts +0 -65
- package/apps/web/src/features/harness/hooks/useHarness.ts +0 -66
- package/apps/web/src/features/harness/ui/HarnessModal.tsx +0 -171
- package/apps/web/src/features/harness/ui/__tests__/HarnessModal.test.tsx +0 -46
- package/apps/web/src/features/status/ui/AgentStatusModal.tsx +0 -267
- package/apps/web/src/features/status/ui/__tests__/AgentStatusModal.test.tsx +0 -71
- package/apps/web/src/features/tasks/api/__tests__/changelog.api.test.ts +0 -89
- package/apps/web/src/features/tasks/api/__tests__/tasks.api.test.ts +0 -282
- package/apps/web/src/features/tasks/api/changelog.api.ts +0 -52
- package/apps/web/src/features/tasks/api/tasks.api.ts +0 -175
- package/apps/web/src/features/tasks/container/TaskDetailPageContainer.tsx +0 -69
- package/apps/web/src/features/tasks/hooks/__tests__/useChangelogCodeCopy.test.ts +0 -48
- package/apps/web/src/features/tasks/hooks/__tests__/useTaskChangelog.test.ts +0 -48
- package/apps/web/src/features/tasks/hooks/__tests__/useTaskCreate.test.ts +0 -217
- package/apps/web/src/features/tasks/hooks/__tests__/useTaskEdit.test.ts +0 -152
- package/apps/web/src/features/tasks/hooks/__tests__/useTaskExecution.test.ts +0 -143
- package/apps/web/src/features/tasks/hooks/__tests__/useTaskList.test.ts +0 -168
- package/apps/web/src/features/tasks/hooks/__tests__/useTaskNotification.test.ts +0 -125
- package/apps/web/src/features/tasks/hooks/__tests__/useTaskRuns.test.ts +0 -51
- package/apps/web/src/features/tasks/hooks/useChangelogCodeCopy.ts +0 -52
- package/apps/web/src/features/tasks/hooks/useCopyToClipboard.ts +0 -47
- package/apps/web/src/features/tasks/hooks/useTaskChangelog.ts +0 -32
- package/apps/web/src/features/tasks/hooks/useTaskCreate.ts +0 -137
- package/apps/web/src/features/tasks/hooks/useTaskDetail.ts +0 -217
- package/apps/web/src/features/tasks/hooks/useTaskEdit.ts +0 -130
- package/apps/web/src/features/tasks/hooks/useTaskExecution.ts +0 -137
- package/apps/web/src/features/tasks/hooks/useTaskList.ts +0 -159
- package/apps/web/src/features/tasks/hooks/useTaskNotification.ts +0 -80
- package/apps/web/src/features/tasks/hooks/useTaskRuns.ts +0 -32
- package/apps/web/src/features/tasks/ui/AgentOutputPanel.tsx +0 -203
- package/apps/web/src/features/tasks/ui/AgentRoleSelect.tsx +0 -97
- package/apps/web/src/features/tasks/ui/ChangelogPanel.tsx +0 -321
- package/apps/web/src/features/tasks/ui/RunHistoryPanel.tsx +0 -193
- package/apps/web/src/features/tasks/ui/TaskCreateModal.tsx +0 -205
- package/apps/web/src/features/tasks/ui/TaskDetailView.tsx +0 -413
- package/apps/web/src/features/tasks/ui/TaskEditModal.tsx +0 -165
- package/apps/web/src/features/tasks/ui/TaskListModal.tsx +0 -591
- package/apps/web/src/features/tasks/ui/__tests__/AgentRoleSelect.test.tsx +0 -91
- package/apps/web/src/features/tasks/ui/__tests__/ChangelogPanel.test.tsx +0 -94
- package/apps/web/src/features/tasks/ui/__tests__/RunHistoryPanel.test.tsx +0 -71
- package/apps/web/src/features/tasks/ui/__tests__/TaskCreateModal.test.tsx +0 -153
- package/apps/web/src/features/tasks/ui/__tests__/TaskEditModal.test.tsx +0 -75
- package/apps/web/src/features/tasks/ui/__tests__/TaskListModal.test.tsx +0 -243
- package/apps/web/src/hooks/useWorkingDir.ts +0 -28
- package/apps/web/src/lib/__tests__/ansi.test.ts +0 -88
- package/apps/web/src/lib/ansi.ts +0 -105
- package/apps/web/src/lib/constants.ts +0 -4
- package/apps/web/src/lib/quota.ts +0 -22
- package/apps/web/src/lib/theme.tsx +0 -78
- package/apps/web/src/lib/toast.tsx +0 -175
- package/apps/web/src/store/agentStatusStore.ts +0 -38
- package/apps/web/tsconfig.json +0 -18
- package/apps/web/vitest.config.ts +0 -25
- package/apps/web/vitest.setup.ts +0 -10
- package/packages/cli/dist/utils/project-init.d.ts +0 -12
- package/packages/cli/dist/utils/project-init.js +0 -258
- package/packages/cli/package.json +0 -30
- package/packages/cli/src/commands/check.ts +0 -77
- package/packages/cli/src/commands/init.ts +0 -209
- package/packages/cli/src/commands/start.ts +0 -183
- package/packages/cli/src/index.ts +0 -91
- package/packages/cli/src/utils/agent-tools.ts +0 -201
- package/packages/cli/src/utils/project-init.ts +0 -252
- package/packages/cli/src/utils/proxy.ts +0 -123
- package/packages/cli/tsconfig.json +0 -14
- package/packages/eslint-config/base.mjs +0 -31
- package/packages/eslint-config/nest.mjs +0 -55
- package/packages/eslint-config/next.mjs +0 -23
- package/packages/eslint-config/package.json +0 -20
- package/packages/typescript-config/base.json +0 -16
- package/packages/typescript-config/nestjs.json +0 -17
- package/packages/typescript-config/nextjs.json +0 -15
- package/packages/typescript-config/package.json +0 -11
- package/turbo.json +0 -28
- /package/apps/web/{src/app/favicon.ico → .next/server/app/favicon.ico.body} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,95057,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return i},formatWithValidation:function(){return s},urlObjectKeys:function(){return l}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let a=e.r(90809)._(e.r(98183)),d=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:n}=e,r=e.protocol||"",o=e.pathname||"",i=e.hash||"",l=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:n&&(s=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(s+=":"+e.port)),l&&"object"==typeof l&&(l=String(a.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||d.test(r))&&!1!==s?(s="//"+(s||""),o&&"/"!==o[0]&&(o="/"+o)):s||(s=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${s}${o}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return i(e)}},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return o}});let r=e.r(71645);function o(e,t){let n=(0,r.useRef)(null),o=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(n.current=a(e,r)),t&&(o.current=a(t,r))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return a}});let r=e.r(18967),o=e.r(52817);function a(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,o.hasBasePath)(n.pathname)}catch(e){return!1}}},84508,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},22016,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return m},useLinkStatus:function(){return N}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let a=e.r(90809),d=e.r(18050),i=a._(e.r(71645)),l=e.r(95057),s=e.r(8372),c=e.r(18581),u=e.r(18967),p=e.r(5550);e.r(33525);let h=e.r(88540),x=e.r(91949),f=e.r(73668),y=e.r(9396);function m(t){var n,r;let o,a,m,[N,w]=(0,i.useOptimistic)(x.IDLE_LINK_STATUS),b=(0,i.useRef)(null),{href:L,as:v,children:j,prefetch:k=null,passHref:P,replace:S,shallow:T,scroll:R,onClick:C,onMouseEnter:_,onTouchStart:O,legacyBehavior:E=!1,onNavigate:M,transitionTypes:$,ref:U,unstable_dynamicOnHover:A,...B}=t;o=j,E&&("string"==typeof o||"number"==typeof o)&&(o=(0,d.jsx)("a",{children:o}));let I=i.default.useContext(s.AppRouterContext),F=!1!==k,D=!1!==k?null===(r=k)||"auto"===r?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,K="string"==typeof(n=v||L)?n:(0,l.formatUrl)(n);if(E){if(o?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});a=i.default.Children.only(o)}let z=E?a&&"object"==typeof a&&a.ref:U,H=i.default.useCallback(e=>(null!==I&&(b.current=(0,x.mountLinkInstance)(e,K,I,D,F,w)),()=>{b.current&&((0,x.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,x.unmountPrefetchableInstance)(e)}),[F,K,I,D,w]),q={ref:(0,c.useMergedRef)(H,z),onClick(t){E||"function"!=typeof C||C(t),E&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!I||t.defaultPrevented||function(t,n,r,o,a,d,l){if("u">typeof window){let s,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((s=t.currentTarget.getAttribute("target"))&&"_self"!==s||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,f.isLocalURL)(n)){o&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),d){let e=!1;if(d({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(99781);i.default.startTransition(()=>{u(n,o?"replace":"push",!1===a?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,r.current,l)})}}(t,K,b,S,R,M,$)},onMouseEnter(e){E||"function"!=typeof _||_(e),E&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),I&&F&&(0,x.onNavigationIntent)(e.currentTarget,!0===A)},onTouchStart:function(e){E||"function"!=typeof O||O(e),E&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),I&&F&&(0,x.onNavigationIntent)(e.currentTarget,!0===A)}};return(0,u.isAbsoluteUrl)(K)?q.href=K:E&&!P&&("a"!==a.type||"href"in a.props)||(q.href=(0,p.addBasePath)(K)),m=E?i.default.cloneElement(a,q):(0,d.jsx)("a",{...B,...q,children:o}),(0,d.jsx)(g.Provider,{value:N,children:m})}e.r(84508);let g=(0,i.createContext)(x.IDLE_LINK_STATUS),N=()=>(0,i.useContext)(g);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},85871,e=>{"use strict";var t=e.i(18050),n=e.i(22016),r=e.i(71645);let o={context:"text-gray-900/50 dark:text-white/40",added:"bg-emerald-500/[0.08] text-emerald-700 dark:text-emerald-400",removed:"bg-red-500/[0.08] text-red-700 dark:text-red-400",hunk:"text-purple-500/70 dark:text-purple-400/70"},a={context:"text-gray-900/15 dark:text-white/15",added:"text-emerald-600/40 dark:text-emerald-400/40",removed:"text-red-600/40 dark:text-red-400/40",hunk:"text-purple-500/30 dark:text-purple-400/30"};function d({lines:e}){return(0,t.jsx)("div",{className:"overflow-x-auto rounded-lg bg-gray-950/[0.03] dark:bg-white/[0.03]",children:(0,t.jsx)("table",{className:"w-full border-collapse font-mono text-[11px] leading-relaxed",children:(0,t.jsx)("tbody",{children:e.map((e,n)=>(0,t.jsx)("tr",{className:o[e.type],children:"hunk"===e.type?(0,t.jsx)("td",{colSpan:3,className:"px-3 py-0.5 text-purple-500/70 dark:text-purple-400/70 select-none",children:e.content}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("td",{className:`w-10 select-none px-2 py-0.5 text-right ${a[e.type]}`,children:e.oldLineNo??""}),(0,t.jsx)("td",{className:`w-10 select-none px-2 py-0.5 text-right ${a[e.type]}`,children:e.newLineNo??""}),(0,t.jsxs)("td",{className:"px-3 py-0.5 whitespace-pre",children:[(0,t.jsx)("span",{className:"mr-1 select-none opacity-50",children:"added"===e.type?"+":"removed"===e.type?"-":" "}),e.content]})]})},n))})})})}let i={added:{label:"추가",className:"bg-emerald-500/10 text-emerald-600 border-emerald-500/20 dark:text-emerald-400"},modified:{label:"수정",className:"bg-blue-500/10 text-blue-600 border-blue-500/20 dark:text-blue-400"},deleted:{label:"삭제",className:"bg-red-500/10 text-red-600 border-red-500/20 dark:text-red-400"},renamed:{label:"이동",className:"bg-amber-500/10 text-amber-600 border-amber-500/20 dark:text-amber-400"}};function l({type:e}){let{label:n,className:r}=i[e];return(0,t.jsx)("span",{className:`inline-flex items-center rounded-md border px-1.5 py-0.5 text-[10px] font-medium ${r}`,children:n})}function s({file:e,defaultOpen:n=!1}){let[o,a]=(0,r.useState)(n),i=e.filePath.split("/").pop()??e.filePath,c=e.filePath.includes("/")?e.filePath.slice(0,e.filePath.lastIndexOf("/")):"";return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border border-gray-900/[0.07] dark:border-white/[0.07]",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>a(e=>!e),className:"flex w-full items-center gap-2 px-3 py-2 text-left hover:bg-gray-900/[0.02] dark:hover:bg-white/[0.02]",children:[(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:`h-3 w-3 shrink-0 text-gray-900/20 transition-transform dark:text-white/20 ${o?"rotate-90":""}`,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M6.22 4.22a.75.75 0 011.06 0l3.25 3.25a.75.75 0 010 1.06l-3.25 3.25a.75.75 0 01-1.06-1.06L8.94 8 6.22 5.28a.75.75 0 010-1.06z",clipRule:"evenodd"})}),(0,t.jsx)(l,{type:e.changeType}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 truncate text-[12px]",children:[c&&(0,t.jsxs)("span",{className:"text-gray-900/30 dark:text-white/30",children:[c,"/"]}),(0,t.jsx)("span",{className:"font-medium text-gray-900/70 dark:text-white/70",children:i})]}),(0,t.jsxs)("span",{className:"shrink-0 text-[10px] font-mono",children:[e.additions>0&&(0,t.jsxs)("span",{className:"text-emerald-600 dark:text-emerald-400",children:["+",e.additions]}),e.additions>0&&e.deletions>0&&(0,t.jsx)("span",{className:"mx-0.5 text-gray-900/15 dark:text-white/15",children:"/"}),e.deletions>0&&(0,t.jsxs)("span",{className:"text-red-600 dark:text-red-400",children:["-",e.deletions]})]})]}),o&&e.lines.length>0&&(0,t.jsx)("div",{className:"border-t border-gray-900/[0.05] dark:border-white/[0.05]",children:(0,t.jsx)(d,{lines:e.lines})})]})}let c=[{filePath:"src/features/auth/hooks/useLogin.ts",changeType:"added",additions:42,deletions:0,lines:[{type:"hunk",content:"@@ -0,0 +1,42 @@"},{type:"added",content:'"use client";',newLineNo:1},{type:"added",content:"",newLineNo:2},{type:"added",content:'import { useState } from "react";',newLineNo:3},{type:"added",content:"",newLineNo:4},{type:"added",content:"export function useLogin() {",newLineNo:5},{type:"added",content:" const [loading, setLoading] = useState(false);",newLineNo:6},{type:"added",content:" const [error, setError] = useState<string | null>(null);",newLineNo:7},{type:"added",content:"",newLineNo:8},{type:"added",content:" const login = async (email: string, password: string) => {",newLineNo:9},{type:"added",content:" setLoading(true);",newLineNo:10},{type:"added",content:" try {",newLineNo:11},{type:"added",content:" await authApi.login({ email, password });",newLineNo:12},{type:"added",content:" } catch (e) {",newLineNo:13},{type:"added",content:' setError(e instanceof Error ? e.message : "로그인 실패");',newLineNo:14},{type:"added",content:" } finally {",newLineNo:15},{type:"added",content:" setLoading(false);",newLineNo:16},{type:"added",content:" }",newLineNo:17},{type:"added",content:" };",newLineNo:18},{type:"added",content:"",newLineNo:19},{type:"added",content:" return { loading, error, login };",newLineNo:20},{type:"added",content:"}",newLineNo:21}]},{filePath:"src/features/auth/ui/LoginForm.tsx",changeType:"modified",additions:15,deletions:8,lines:[{type:"hunk",content:"@@ -12,18 +12,25 @@"},{type:"context",content:"export function LoginForm() {",oldLineNo:12,newLineNo:12},{type:"context",content:" const { loading, error, login } = useLogin();",oldLineNo:13,newLineNo:13},{type:"context",content:"",oldLineNo:14,newLineNo:14},{type:"removed",content:' const [email, setEmail] = useState("");',oldLineNo:15},{type:"removed",content:' const [password, setPassword] = useState("");',oldLineNo:16},{type:"added",content:' const [form, setForm] = useState({ email: "", password: "" });',newLineNo:15},{type:"added",content:"",newLineNo:16},{type:"added",content:" const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {",newLineNo:17},{type:"added",content:" setForm((prev) => ({ ...prev, [e.target.name]: e.target.value }));",newLineNo:18},{type:"added",content:" };",newLineNo:19},{type:"context",content:"",oldLineNo:17,newLineNo:20},{type:"context",content:" const handleSubmit = async (e: React.FormEvent) => {",oldLineNo:18,newLineNo:21},{type:"context",content:" e.preventDefault();",oldLineNo:19,newLineNo:22},{type:"removed",content:" await login(email, password);",oldLineNo:20},{type:"added",content:" await login(form.email, form.password);",newLineNo:23},{type:"context",content:" };",oldLineNo:21,newLineNo:24}]},{filePath:"src/features/auth/api/auth.api.ts",changeType:"modified",additions:6,deletions:2,lines:[{type:"hunk",content:"@@ -28,10 +28,14 @@"},{type:"context",content:"export async function login(dto: LoginDto) {",oldLineNo:28,newLineNo:28},{type:"context",content:" const res = await fetch(`${SERVER_URL}/auth/login`, {",oldLineNo:29,newLineNo:29},{type:"context",content:' method: "POST",',oldLineNo:30,newLineNo:30},{type:"removed",content:" body: JSON.stringify(dto),",oldLineNo:31},{type:"added",content:' headers: { "Content-Type": "application/json" },',newLineNo:31},{type:"added",content:" body: JSON.stringify(dto),",newLineNo:32},{type:"context",content:" });",oldLineNo:32,newLineNo:33},{type:"removed",content:' if (!res.ok) throw new Error("HTTP " + res.status);',oldLineNo:33},{type:"added",content:" if (!res.ok) {",newLineNo:34},{type:"added",content:" const body = await res.json().catch(() => ({}));",newLineNo:35},{type:"added",content:" throw new Error(body.message ?? `HTTP ${res.status}`);",newLineNo:36},{type:"added",content:" }",newLineNo:37},{type:"context",content:" return res.json();",oldLineNo:34,newLineNo:38},{type:"context",content:"}",oldLineNo:35,newLineNo:39}]},{filePath:"src/features/auth/utils/validators.ts",changeType:"deleted",additions:0,deletions:18,lines:[{type:"hunk",content:"@@ -1,18 +0,0 @@"},{type:"removed",content:"export function validateEmail(email: string) {",oldLineNo:1},{type:"removed",content:" return /^[^@]+@[^@]+\\.[^@]+$/.test(email);",oldLineNo:2},{type:"removed",content:"}",oldLineNo:3},{type:"removed",content:"",oldLineNo:4},{type:"removed",content:"export function validatePassword(password: string) {",oldLineNo:5},{type:"removed",content:" return password.length >= 8;",oldLineNo:6},{type:"removed",content:"}",oldLineNo:7}]},{filePath:"src/features/auth/utils/validation.ts",changeType:"renamed",additions:4,deletions:0,lines:[{type:"hunk",content:"@@ -0,0 +1,12 @@ (validators.ts → validation.ts)"},{type:"context",content:"export function validateEmail(email: string) {",oldLineNo:1,newLineNo:1},{type:"context",content:" return /^[^@]+@[^@]+\\.[^@]+$/.test(email);",oldLineNo:2,newLineNo:2},{type:"context",content:"}",oldLineNo:3,newLineNo:3},{type:"context",content:"",oldLineNo:4,newLineNo:4},{type:"context",content:"export function validatePassword(password: string) {",oldLineNo:5,newLineNo:5},{type:"context",content:" return password.length >= 8;",oldLineNo:6,newLineNo:6},{type:"context",content:"}",oldLineNo:7,newLineNo:7},{type:"added",content:"",newLineNo:8},{type:"added",content:"export function validateRequired(value: string) {",newLineNo:9},{type:"added",content:" return value.trim().length > 0;",newLineNo:10},{type:"added",content:"}",newLineNo:11}]}],u=c.reduce((e,t)=>({additions:e.additions+t.additions,deletions:e.deletions+t.deletions}),{additions:0,deletions:0});function p(){let e=u.additions+u.deletions,n=e>0?u.additions/e*100:50;return(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("span",{className:"text-[11px] font-mono text-emerald-600 dark:text-emerald-400",children:["+",u.additions]}),(0,t.jsx)("div",{className:"h-1.5 flex-1 overflow-hidden rounded-full bg-gray-900/[0.06] dark:bg-white/[0.06]",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-emerald-500",style:{width:`${n}%`}})}),(0,t.jsxs)("span",{className:"text-[11px] font-mono text-red-600 dark:text-red-400",children:["-",u.deletions]})]})}let h={all:"전체",added:"추가",modified:"수정",deleted:"삭제",renamed:"이동"};function x({active:e,onChange:n}){let r=Object.keys(h);return(0,t.jsx)("div",{className:"flex gap-1 rounded-lg border border-gray-900/[0.06] bg-gray-900/[0.02] p-0.5 dark:border-white/[0.06] dark:bg-white/[0.02]",children:r.map(r=>(0,t.jsxs)("button",{type:"button",onClick:()=>n(r),className:["rounded-md px-2.5 py-1 text-[11px] font-medium transition-colors",e===r?"bg-white text-gray-900/70 shadow-sm dark:bg-white/[0.08] dark:text-white/70":"text-gray-900/35 hover:text-gray-900/60 dark:text-white/35 dark:hover:text-white/60"].join(" "),children:[h[r],"all"!==r&&(0,t.jsx)("span",{className:"ml-1 opacity-50",children:c.filter(e=>e.changeType===r).length})]},r))})}e.s(["default",0,function(){let[e,o]=(0,r.useState)("all"),[a,d]=(0,r.useState)(!1),i="all"===e?c:c.filter(t=>t.changeType===e);return(0,t.jsx)("div",{className:"min-h-screen bg-[#faf8f5] px-4 py-8 dark:bg-[#07090e]",children:(0,t.jsxs)("div",{className:"mx-auto max-w-3xl",children:[(0,t.jsxs)("div",{className:"mb-6 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(n.default,{href:"/",className:"flex h-7 w-7 items-center justify-center rounded-lg border border-gray-900/[0.08] text-gray-900/30 transition-colors hover:border-gray-900/[0.15] hover:text-gray-900/60 dark:border-white/[0.08] dark:text-white/30 dark:hover:border-white/[0.15] dark:hover:text-white/60",children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"h-3.5 w-3.5",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M9.78 4.22a.75.75 0 010 1.06L7.06 8l2.72 2.72a.75.75 0 11-1.06 1.06L5.47 8.53a.75.75 0 010-1.06l3.25-3.25a.75.75 0 011.06 0z",clipRule:"evenodd"})})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-sm font-semibold text-gray-900/80 dark:text-white/80",children:"Diff 뷰어 테스트"}),(0,t.jsx)("p",{className:"text-[11px] text-gray-900/30 dark:text-white/30",children:"feat/auth-refactor → main"})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 rounded-lg border border-gray-900/[0.07] bg-gray-900/[0.03] px-2.5 py-1.5 dark:border-white/[0.07] dark:bg-white/[0.03]",children:[(0,t.jsxs)("span",{className:"text-[11px] text-gray-900/40 dark:text-white/40",children:[c.length,"개 파일"]}),(0,t.jsx)("span",{className:"text-gray-900/10 dark:text-white/10",children:"·"}),(0,t.jsxs)("span",{className:"font-mono text-[11px] text-emerald-600 dark:text-emerald-400",children:["+",u.additions]}),(0,t.jsxs)("span",{className:"font-mono text-[11px] text-red-600 dark:text-red-400",children:["-",u.deletions]})]})]}),(0,t.jsxs)("div",{className:"mb-4 rounded-xl border border-gray-900/[0.07] bg-white/60 p-4 dark:border-white/[0.07] dark:bg-white/[0.03]",children:[(0,t.jsx)("p",{className:"mb-2 text-[11px] font-medium text-gray-900/40 dark:text-white/40",children:"변경 통계"}),(0,t.jsx)(p,{})]}),(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,t.jsx)(x,{active:e,onChange:o}),(0,t.jsxs)("button",{type:"button",onClick:()=>d(e=>!e),className:"flex items-center gap-1.5 rounded-lg border border-gray-900/[0.07] px-2.5 py-1 text-[11px] font-medium text-gray-900/35 transition-colors hover:border-gray-900/[0.13] hover:text-gray-900/70 dark:border-white/[0.07] dark:text-white/35 dark:hover:border-white/[0.13] dark:hover:text-white/70",children:[(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"h-3 w-3",children:a?(0,t.jsx)("path",{fillRule:"evenodd",d:"M4.22 6.22a.75.75 0 011.06 0L8 8.94l2.72-2.72a.75.75 0 111.06 1.06l-3.25 3.25a.75.75 0 01-1.06 0L4.22 7.28a.75.75 0 010-1.06z",clipRule:"evenodd"}):(0,t.jsx)("path",{fillRule:"evenodd",d:"M6.22 4.22a.75.75 0 011.06 0l3.25 3.25a.75.75 0 010 1.06l-3.25 3.25a.75.75 0 01-1.06-1.06L8.94 8 6.22 5.28a.75.75 0 010-1.06z",clipRule:"evenodd"})}),a?"모두 접기":"모두 펼치기"]})]}),0===i.length?(0,t.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-xl border border-gray-900/[0.06] py-12 text-center dark:border-white/[0.06]",children:[(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",className:"h-8 w-8 text-gray-900/15 dark:text-white/15",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12"})}),(0,t.jsx)("p",{className:"text-xs text-gray-900/30 dark:text-white/30",children:"해당 유형의 변경사항이 없습니다"})]}):(0,t.jsx)("div",{className:"flex flex-col gap-1.5",children:i.map(e=>(0,t.jsx)(s,{file:e,defaultOpen:a},`${e.filePath}-${String(a)}`))})]})})}],85871)}]);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74373,82005,e=>{"use strict";var t=e.i(71645),r=e.i(96085),a=e.i(3511),l=e.i(16936);let n=/https?:\/\/[\w./-]+/g,s=/(?<![A-Z0-9])([A-Z0-9]{4}-[A-Z0-9]{4,6})(?![A-Z0-9])/;e.s(["useCodexAuth",0,function(){let[e,i]=(0,t.useState)("checking"),[o,d]=(0,t.useState)("device"),[c,x]=(0,t.useState)("idle"),[u,h]=(0,t.useState)(""),[g,m]=(0,t.useState)([]),[f,p]=(0,t.useState)(null),[b,y]=(0,t.useState)("idle"),[w,v]=(0,t.useState)(""),j=(0,t.useRef)(null),k=(0,t.useRef)(""),N=(0,t.useRef)(!1),C=(0,t.useCallback)(async()=>{i("checking");try{let e=await (0,l.getCodexAuthStatus)();e.installed?i(e.loggedIn?"authenticated":"unauthenticated"):i("not-installed")}catch{i("unauthenticated")}},[]);(0,t.useEffect)(()=>{C()},[C]);let S=(0,t.useCallback)(()=>{if("pending"===c)return;k.current="",h(""),m([]),p(null),x("pending"),N.current=!0;let e=(0,r.io)(`${a.SERVER_URL}${a.CODEX_WS_NAMESPACE}`,{transports:["websocket"]});j.current=e,e.on("connect",()=>e.emit("auth:login:start")),e.on("auth:output",({text:e})=>{var t;k.current+=e,h(k.current),m(Array.from(new Set(k.current.match(n)??[])));let r=(t=k.current,t.match(s)?.[1]??null);r&&p(r)}),e.on("auth:done",({success:t})=>{N.current=!1,e.disconnect(),j.current=null,x(t?"done":"error"),t&&i("authenticated")}),e.on("disconnect",()=>{N.current&&(N.current=!1,x("error"))})},[c]),A=(0,t.useCallback)(()=>{N.current=!1,j.current?.emit("auth:login:cancel"),j.current?.disconnect(),j.current=null,x("idle"),h(""),m([]),p(null),k.current=""},[]);return{authState:e,loginMethod:o,setLoginMethod:d,loginState:c,loginOutput:u,loginUrls:g,deviceCode:f,startDeviceLogin:S,cancelDeviceLogin:A,apiKeyLoginState:b,configError:w,saveApiKey:(0,t.useCallback)(async e=>{v(""),y("pending");try{await (0,l.configureCodexAuth)(e),y("done"),i("authenticated")}catch{v("API 키 저장에 실패했습니다. 서버 연결을 확인하세요."),y("error")}},[]),resetApiKeyLogin:(0,t.useCallback)(()=>{y("idle"),v("")},[]),checkAuth:C}}],74373);var i=e.i(18050);let o=(0,i.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"h-5 w-5 shrink-0 text-gray-900/80 dark:text-white/80","aria-hidden":"true",children:(0,i.jsx)("path",{d:"M22.282 9.821a5.985 5.985 0 0 0-.516-4.91 6.046 6.046 0 0 0-6.51-2.9A6.065 6.065 0 0 0 4.981 4.18a5.985 5.985 0 0 0-3.998 2.9 6.046 6.046 0 0 0 .743 7.097 5.98 5.98 0 0 0 .51 4.911 6.051 6.051 0 0 0 6.515 2.9A5.985 5.985 0 0 0 13.26 24a6.056 6.056 0 0 0 5.772-4.206 5.99 5.99 0 0 0 3.997-2.9 6.056 6.056 0 0 0-.747-7.073zM13.26 22.43a4.476 4.476 0 0 1-2.876-1.04l.141-.081 4.779-2.758a.795.795 0 0 0 .392-.681v-6.737l2.02 1.168a.071.071 0 0 1 .038.052v5.583a4.504 4.504 0 0 1-4.494 4.494zM3.6 18.304a4.47 4.47 0 0 1-.535-3.014l.142.085 4.783 2.759a.771.771 0 0 0 .78 0l5.843-3.369v2.332a.08.08 0 0 1-.033.062L9.74 19.95a4.5 4.5 0 0 1-6.14-1.646zM2.34 7.896a4.485 4.485 0 0 1 2.366-1.973V11.6a.766.766 0 0 0 .388.676l5.815 3.355-2.02 1.168a.076.076 0 0 1-.071 0l-4.83-2.786A4.504 4.504 0 0 1 2.34 7.872zm16.597 3.855l-5.833-3.387L15.119 7.2a.076.076 0 0 1 .071 0l4.83 2.791a4.494 4.494 0 0 1-.676 8.105v-5.678a.79.79 0 0 0-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776 0 0 0-.785 0L9.409 9.23V6.897a.066.066 0 0 1 .028-.061l4.83-2.787a4.5 4.5 0 0 1 6.68 4.66zm-12.64 4.135l-2.02-1.164a.08.08 0 0 1-.038-.057V6.075a4.5 4.5 0 0 1 7.375-3.453l-.142.08L8.704 5.46a.795.795 0 0 0-.393.681zm1.097-2.365l2.602-1.5 2.607 1.5v2.999l-2.597 1.5-2.607-1.5z"})});function d({method:e,selected:t,onSelect:r,label:a}){return(0,i.jsx)("button",{type:"button",onClick:()=>r(e),className:["flex-1 rounded-lg px-4 py-2 text-xs font-medium transition-colors",t===e?"bg-gray-900/[0.07] text-gray-900/75 dark:bg-white/[0.07] dark:text-white/75":"text-gray-900/35 hover:text-gray-900/60 dark:text-white/35 dark:hover:text-white/60"].join(" "),children:a})}function c({loginState:e,loginOutput:t,loginUrls:r,deviceCode:a,onStart:l,onCancel:n}){return"idle"===e?(0,i.jsx)("button",{onClick:l,className:"rounded-xl bg-gray-900 px-6 py-3 text-sm font-semibold text-white transition-colors hover:bg-gray-800 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-100",children:"ChatGPT로 로그인"}):"pending"===e?(0,i.jsxs)("div",{className:"flex w-full max-w-sm flex-col gap-4",children:[r.length>0?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,i.jsx)("p",{className:"text-xs font-medium text-gray-900/35 dark:text-white/35",children:"1. 아래 링크를 브라우저에서 열어 로그인하세요"}),r.map(e=>(0,i.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"break-all rounded-lg border border-emerald-700/40 bg-emerald-950/20 px-4 py-3 text-xs font-mono text-emerald-700 transition-colors hover:border-emerald-500 hover:text-emerald-600 dark:text-emerald-300 dark:hover:text-emerald-200",children:e},e))]}),a&&(0,i.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,i.jsxs)("p",{className:"text-xs font-medium text-gray-900/35 dark:text-white/35",children:["2. 이 일회용 코드를 입력하세요 ",(0,i.jsx)("span",{className:"text-gray-900/20 dark:text-white/20",children:"(15분 내 유효)"})]}),(0,i.jsx)("div",{className:"flex items-center justify-center rounded-xl border border-gray-900/[0.10] bg-gray-900/[0.03] py-4 dark:border-white/[0.10] dark:bg-white/[0.03]",children:(0,i.jsx)("span",{className:"font-mono text-2xl font-bold tracking-widest text-gray-900/80 dark:text-white/80",children:a})})]})]}):(0,i.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-gray-900/30 dark:text-white/30",children:[(0,i.jsx)("span",{className:"h-4 w-4 animate-spin rounded-full border-2 border-gray-900/[0.08] border-t-gray-900/60 dark:border-white/[0.08] dark:border-t-white/60"}),"연결 중…"]}),t&&!r.length&&(0,i.jsx)("pre",{className:"max-h-40 overflow-y-auto rounded-lg border border-gray-900/[0.07] bg-gray-900/[0.02] px-4 py-3 font-mono text-xs leading-relaxed whitespace-pre-wrap text-gray-900/45 dark:border-white/[0.07] dark:bg-white/[0.02] dark:text-white/45",children:t}),(0,i.jsx)("button",{onClick:n,className:"text-xs text-gray-900/25 transition-colors hover:text-gray-900/50 dark:text-white/25 dark:hover:text-white/50",children:"취소"})]}):"done"===e?(0,i.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center",children:[(0,i.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-emerald-500/[0.10]",children:(0,i.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"h-6 w-6 text-emerald-500 dark:text-emerald-400",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z",clipRule:"evenodd"})})}),(0,i.jsx)("p",{className:"text-sm font-medium text-emerald-600 dark:text-emerald-400",children:"로그인 완료"}),(0,i.jsx)("p",{className:"text-xs text-gray-900/25 dark:text-white/25",children:"잠시 후 자동으로 이동합니다…"})]}):(0,i.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,i.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-red-500/[0.10]",children:(0,i.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"h-6 w-6 text-red-500 dark:text-red-400",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})})}),(0,i.jsx)("p",{className:"text-sm text-red-500 dark:text-red-400",children:"로그인 중 문제가 발생했습니다."}),t&&(0,i.jsx)("pre",{className:"max-h-32 w-full max-w-sm overflow-y-auto rounded-lg border border-gray-900/[0.07] bg-gray-900/[0.02] px-4 py-3 font-mono text-xs whitespace-pre-wrap text-gray-900/40 dark:border-white/[0.07] dark:bg-white/[0.02] dark:text-white/40",children:t}),(0,i.jsx)("button",{onClick:l,className:"rounded-xl bg-gray-900 px-6 py-3 text-sm font-semibold text-white transition-colors hover:bg-gray-800 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-100",children:"다시 시도"})]})}function x({loginState:e,configError:r,onSave:a}){let l=(0,t.useRef)(null);return"done"===e?(0,i.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center",children:[(0,i.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-emerald-500/[0.10]",children:(0,i.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"h-6 w-6 text-emerald-500 dark:text-emerald-400",children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z",clipRule:"evenodd"})})}),(0,i.jsx)("p",{className:"text-sm font-medium text-emerald-600 dark:text-emerald-400",children:"인증 완료"})]}):(0,i.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=l.current?.value.trim()??"";t&&a(t)},className:"flex w-full max-w-sm flex-col gap-4",children:[(0,i.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,i.jsx)("label",{className:"text-xs font-medium text-gray-900/50 dark:text-white/50",children:"OpenAI API 키"}),(0,i.jsx)("input",{ref:l,type:"password",placeholder:"sk-...",autoFocus:!0,required:!0,className:"rounded-lg border border-gray-900/[0.10] bg-gray-900/[0.03] px-3.5 py-2.5 font-mono text-sm text-gray-900/85 placeholder-gray-900/20 outline-none transition-colors focus:border-gray-900/30 focus:ring-2 focus:ring-gray-900/5 dark:border-white/[0.10] dark:bg-white/[0.03] dark:text-white/85 dark:placeholder-white/20 dark:focus:border-white/30 dark:focus:ring-white/5"}),(0,i.jsxs)("p",{className:"text-[11px] text-gray-900/30 dark:text-white/30",children:[(0,i.jsx)("a",{href:"https://platform.openai.com/api-keys",target:"_blank",rel:"noopener noreferrer",className:"text-gray-900/55 underline-offset-2 hover:underline dark:text-white/55",children:"OpenAI 플랫폼"}),"에서 API 키를 발급받을 수 있습니다."]}),r&&(0,i.jsx)("p",{className:"text-xs text-red-500 dark:text-red-400",children:r})]}),(0,i.jsxs)("button",{type:"submit",disabled:"pending"===e,className:"flex items-center justify-center gap-2 rounded-xl bg-gray-900 px-6 py-3 text-sm font-semibold text-white transition-colors hover:bg-gray-800 disabled:opacity-50 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-100",children:["pending"===e&&(0,i.jsx)("span",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white/30 border-t-white dark:border-gray-900/30 dark:border-t-gray-900"}),"pending"===e?"저장 중…":"저장"]})]})}e.s(["CodexLoginPanel",0,function({loginMethod:e,onMethodChange:t,loginState:r,loginOutput:a,loginUrls:l,deviceCode:n,onStartDeviceLogin:s,onCancelDeviceLogin:u,apiKeyLoginState:h,configError:g,onSaveApiKey:m}){return(0,i.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-6 px-6",children:[(0,i.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,i.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl border border-gray-900/[0.08] bg-gray-900/[0.04] dark:border-white/[0.08] dark:bg-white/[0.04]",children:o}),(0,i.jsx)("h2",{className:"text-xl font-semibold text-gray-900/90 dark:text-white/90",children:"Codex CLI 인증"}),(0,i.jsx)("p",{className:"max-w-sm text-sm text-gray-900/40 dark:text-white/40",children:"ChatGPT 계정으로 로그인하거나 API 키를 입력해 주세요."})]}),(0,i.jsxs)("div",{className:"flex w-full max-w-sm rounded-xl border border-gray-900/[0.08] p-1 dark:border-white/[0.08]",children:[(0,i.jsx)(d,{method:"device",selected:e,onSelect:t,label:"ChatGPT 로그인"}),(0,i.jsx)(d,{method:"apikey",selected:e,onSelect:t,label:"API 키"})]}),"device"===e?(0,i.jsx)(c,{loginState:r,loginOutput:a,loginUrls:l,deviceCode:n,onStart:s,onCancel:u}):(0,i.jsx)(x,{loginState:h,configError:g,onSave:m})]})}],82005)},71521,1786,e=>{"use strict";var t=e.i(71645),r=e.i(96085),a=e.i(3511),l=e.i(16936);let n=/https?:\/\/[^\s\-"<>\\^`{|}~]+/g;e.s(["useGeminiAuth",0,function(){let[e,s]=(0,t.useState)("checking"),[i,o]=(0,t.useState)("idle"),[d,c]=(0,t.useState)(""),[x,u]=(0,t.useState)([]),[h,g]=(0,t.useState)(""),m=(0,t.useRef)(null),f=(0,t.useRef)(""),p=(0,t.useRef)(!1),b=(0,t.useCallback)(async()=>{s("checking");try{let e=await (0,l.getGeminiAuthStatus)();e.installed?s(e.loggedIn?"authenticated":"unauthenticated"):s("not-installed")}catch{s("unauthenticated")}},[]);(0,t.useEffect)(()=>{b()},[b]);let y=(0,t.useCallback)(async e=>{g(""),o("pending");try{await (0,l.configureGeminiAuth)("api-key",e),o("done"),s("authenticated")}catch{g("API 키 저장에 실패했습니다. 서버 연결을 확인하세요."),o("error")}},[]),w=(0,t.useCallback)(()=>{if("pending"===i)return;f.current="",c(""),u([]),o("pending"),p.current=!0;let e=(0,r.io)(`${a.SERVER_URL}${a.GEMINI_WS_NAMESPACE}`,{transports:["websocket"]});m.current=e,e.on("connect",()=>e.emit("auth:gca:start")),e.on("auth:output",({text:e})=>{f.current+=e,c(f.current),u(Array.from(new Set(f.current.match(n)??[])))}),e.on("auth:done",({success:t})=>{p.current=!1,e.disconnect(),m.current=null,o(t?"done":"error"),t&&s("authenticated")}),e.on("disconnect",()=>{p.current&&(p.current=!1,o("error"))})},[i]);return{authState:e,loginState:i,loginOutput:d,loginUrls:x,configError:h,saveApiKey:y,startGcaLogin:w,cancelLogin:(0,t.useCallback)(()=>{p.current=!1,m.current?.emit("auth:login:cancel"),m.current?.disconnect(),m.current=null,o("idle"),c(""),u([]),f.current=""},[]),resetLogin:(0,t.useCallback)(()=>{o("idle"),c(""),u([]),g(""),f.current=""},[]),checkAuth:b}}],71521);var s=e.i(18050);let i=(0,s.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-5 w-5 shrink-0","aria-hidden":"true",children:[(0,s.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),(0,s.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),(0,s.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),(0,s.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]});function o({onSelect:e}){return(0,s.jsxs)("div",{className:"flex w-full max-w-sm flex-col gap-3",children:[(0,s.jsxs)("button",{onClick:()=>e("api-key"),className:"flex items-center gap-3 rounded-xl border border-gray-900/[0.08] bg-gray-900/[0.02] px-5 py-4 text-left transition-all hover:border-blue-500/40 hover:bg-blue-500/[0.04] dark:border-white/[0.08] dark:bg-white/[0.02] dark:hover:border-blue-400/40 dark:hover:bg-blue-400/[0.04]",children:[(0,s.jsx)("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-blue-500/[0.10]",children:(0,s.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"h-4.5 w-4.5 text-blue-500 dark:text-blue-400",children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8 7a5 5 0 113.61 4.804l-1.903 1.903A1 1 0 019 14H8v1a1 1 0 01-1 1H6v1a1 1 0 01-1 1H3a1 1 0 01-1-1v-2a1 1 0 01.293-.707L8.196 8.39A5.002 5.002 0 018 7zm5-3a.75.75 0 000 1.5A1.5 1.5 0 0114.5 7 .75.75 0 0016 7a3 3 0 00-3-3z",clipRule:"evenodd"})})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-sm font-semibold text-gray-900/85 dark:text-white/85",children:"API 키"}),(0,s.jsx)("p",{className:"text-xs text-gray-900/35 dark:text-white/35",children:"Google AI Studio에서 발급한 키 입력"})]})]}),(0,s.jsxs)("button",{onClick:()=>e("gca"),className:"flex items-center gap-3 rounded-xl border border-gray-900/[0.08] bg-gray-900/[0.02] px-5 py-4 text-left transition-all hover:border-blue-500/40 hover:bg-blue-500/[0.04] dark:border-white/[0.08] dark:bg-white/[0.02] dark:hover:border-blue-400/40 dark:hover:bg-blue-400/[0.04]",children:[(0,s.jsx)("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-blue-500/[0.10]",children:i}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-sm font-semibold text-gray-900/85 dark:text-white/85",children:"Google Cloud (GCA)"}),(0,s.jsx)("p",{className:"text-xs text-gray-900/35 dark:text-white/35",children:"gcloud CLI로 Application Default Credentials 설정"})]})]})]})}function d({loginState:e,configError:r,onSubmit:a,onBack:l}){let n=(0,t.useRef)(null);return"done"===e?(0,s.jsx)(x,{}):(0,s.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=n.current?.value.trim()??"";t&&a(t)},className:"flex w-full max-w-sm flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("label",{className:"text-xs font-medium text-gray-900/50 dark:text-white/50",children:"Gemini API 키"}),(0,s.jsx)("input",{ref:n,type:"password",placeholder:"AIza...",autoFocus:!0,required:!0,className:"rounded-lg border border-gray-900/[0.10] bg-gray-900/[0.03] px-3.5 py-2.5 font-mono text-sm text-gray-900/85 placeholder-gray-900/20 outline-none transition-colors focus:border-blue-500/50 focus:ring-2 focus:ring-blue-500/10 dark:border-white/[0.10] dark:bg-white/[0.03] dark:text-white/85 dark:placeholder-white/20 dark:focus:border-blue-400/50 dark:focus:ring-blue-400/10"}),(0,s.jsxs)("p",{className:"text-[11px] text-gray-900/30 dark:text-white/30",children:[(0,s.jsx)("a",{href:"https://aistudio.google.com/app/apikey",target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:underline dark:text-blue-400",children:"Google AI Studio"}),"에서 API 키를 발급받을 수 있습니다."]}),r&&(0,s.jsx)("p",{className:"text-xs text-red-500 dark:text-red-400",children:r})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsxs)("button",{type:"submit",disabled:"pending"===e,className:"flex items-center justify-center gap-2 rounded-xl bg-blue-600 px-6 py-3 text-sm font-semibold text-white transition-colors hover:bg-blue-500 disabled:opacity-50",children:["pending"===e&&(0,s.jsx)("span",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white/30 border-t-white"}),"pending"===e?"저장 중…":"저장"]}),(0,s.jsx)("button",{type:"button",onClick:l,className:"text-xs text-gray-900/25 transition-colors hover:text-gray-900/50 dark:text-white/25 dark:hover:text-white/50",children:"← 뒤로"})]})]})}function c({loginState:e,loginOutput:t,loginUrls:r,onStart:a,onCancel:l,onBack:n}){return"done"===e?(0,s.jsx)(x,{}):(0,s.jsxs)("div",{className:"flex w-full max-w-lg flex-col gap-4",children:["idle"===e||"error"===e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-xl border border-gray-900/[0.07] bg-gray-900/[0.025] p-4 dark:border-white/[0.07] dark:bg-white/[0.025]",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-gray-900/70 dark:text-white/70",children:"gcloud CLI가 필요합니다"}),(0,s.jsxs)("p",{className:"text-xs text-gray-900/40 dark:text-white/40",children:["먼저"," ",(0,s.jsx)("a",{href:"https://cloud.google.com/sdk/docs/install",target:"_blank",rel:"noopener noreferrer",className:"text-blue-500 hover:underline dark:text-blue-400",children:"Google Cloud SDK"}),"를 설치한 후 아래 버튼을 클릭하세요."]}),(0,s.jsx)("code",{className:"mt-1 rounded-md bg-gray-900/[0.04] px-2.5 py-1.5 font-mono text-xs text-gray-900/50 dark:bg-white/[0.04] dark:text-white/50",children:"gcloud auth application-default login"})]}),"error"===e&&t&&(0,s.jsx)("pre",{className:"max-h-32 overflow-y-auto rounded-lg border border-red-200 bg-red-50 px-4 py-3 font-mono text-xs whitespace-pre-wrap text-red-600 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-400",children:t}),(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsxs)("button",{onClick:a,className:"flex items-center justify-center gap-2 rounded-xl bg-blue-600 px-6 py-3 text-sm font-semibold text-white transition-colors hover:bg-blue-500",children:[i,"Google 계정으로 로그인"]}),(0,s.jsx)("button",{onClick:n,className:"text-xs text-gray-900/25 transition-colors hover:text-gray-900/50 dark:text-white/25 dark:hover:text-white/50",children:"← 뒤로"})]})]}):null,"pending"===e&&(0,s.jsxs)(s.Fragment,{children:[r.length>0&&(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("p",{className:"text-xs font-medium text-gray-900/35 dark:text-white/35",children:"브라우저에서 아래 링크를 열어 인증을 완료하세요:"}),r.map(e=>(0,s.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"break-all rounded-lg border border-blue-700/50 bg-blue-950/30 px-4 py-3 text-xs font-mono text-blue-700 transition-colors hover:border-blue-500 hover:text-blue-600 dark:text-blue-300 dark:hover:text-blue-200",children:e},e))]}),t&&(0,s.jsx)("pre",{className:"max-h-48 overflow-y-auto rounded-lg border border-gray-900/[0.07] bg-gray-900/[0.02] px-4 py-3 font-mono text-xs leading-relaxed whitespace-pre-wrap text-gray-900/45 dark:border-white/[0.07] dark:bg-white/[0.02] dark:text-white/45",children:t}),0===r.length&&(0,s.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-gray-900/30 dark:text-white/30",children:[(0,s.jsx)("span",{className:"h-4 w-4 animate-spin rounded-full border-2 border-gray-900/[0.08] border-t-blue-500 dark:border-white/[0.08]"}),"gcloud 인증 진행 중…"]}),(0,s.jsx)("button",{onClick:l,className:"text-xs text-gray-900/25 transition-colors hover:text-gray-900/50 dark:text-white/25 dark:hover:text-white/50",children:"취소"})]})]})}function x(){return(0,s.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center",children:[(0,s.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-emerald-500/[0.10]",children:(0,s.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"h-6 w-6 text-emerald-500 dark:text-emerald-400",children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z",clipRule:"evenodd"})})}),(0,s.jsx)("p",{className:"text-sm font-medium text-emerald-600 dark:text-emerald-400",children:"인증 완료"})]})}e.s(["GeminiLoginPanel",0,function({loginState:e,loginOutput:r,loginUrls:a,configError:l,onSaveApiKey:n,onStartGca:x,onCancel:u,onReset:h}){let[g,m]=(0,t.useState)(null),f=()=>{h(),m(null)};return(0,s.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-6 px-6",children:[(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,s.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl border border-gray-900/[0.08] bg-blue-500/[0.08] dark:border-white/[0.08]",children:i}),(0,s.jsx)("h2",{className:"text-xl font-semibold text-gray-900/90 dark:text-white/90",children:"Gemini CLI 인증"}),!g&&(0,s.jsx)("p",{className:"max-w-sm text-sm text-gray-900/40 dark:text-white/40",children:"사용할 인증 방식을 선택해 주세요."})]}),!g&&(0,s.jsx)(o,{onSelect:m}),"api-key"===g&&(0,s.jsx)(d,{loginState:e,configError:l,onSubmit:n,onBack:f}),"gca"===g&&(0,s.jsx)(c,{loginState:e,loginOutput:r,loginUrls:a,onStart:x,onCancel:u,onBack:f})]})}],1786)},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return i},formatWithValidation:function(){return d},urlObjectKeys:function(){return o}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let n=e.r(90809)._(e.r(98183)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,a=e.protocol||"",l=e.pathname||"",i=e.hash||"",o=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),o&&"object"==typeof o&&(o=String(n.urlQueryToSearchParams(o)));let c=e.search||o&&`?${o}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||s.test(a))&&!1!==d?(d="//"+(d||""),l&&"/"!==l[0]&&(l="/"+l)):d||(d=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),l=l.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${l}${c}${i}`}let o=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return i(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return l}});let a=e.r(71645);function l(e,t){let r=(0,a.useRef)(null),l=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=l.current;t&&(l.current=null,t())}else e&&(r.current=n(e,a)),t&&(l.current=n(t,a))},[e,t])}function n(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("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)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return n}});let a=e.r(18967),l=e.r(52817);function n(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,l.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return p},useLinkStatus:function(){return y}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let n=e.r(90809),s=e.r(18050),i=n._(e.r(71645)),o=e.r(95057),d=e.r(8372),c=e.r(18581),x=e.r(18967),u=e.r(5550);e.r(33525);let h=e.r(88540),g=e.r(91949),m=e.r(73668),f=e.r(9396);function p(t){var r,a;let l,n,p,[y,w]=(0,i.useOptimistic)(g.IDLE_LINK_STATUS),v=(0,i.useRef)(null),{href:j,as:k,children:N,prefetch:C=null,passHref:S,replace:A,shallow:L,scroll:_,onClick:E,onMouseEnter:R,onTouchStart:M,legacyBehavior:P=!1,onNavigate:I,transitionTypes:z,ref:T,unstable_dynamicOnHover:O,...B}=t;l=N,P&&("string"==typeof l||"number"==typeof l)&&(l=(0,s.jsx)("a",{children:l}));let U=i.default.useContext(d.AppRouterContext),$=!1!==C,G=!1!==C?null===(a=C)||"auto"===a?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,D="string"==typeof(r=k||j)?r:(0,o.formatUrl)(r);if(P){if(l?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=i.default.Children.only(l)}let H=P?n&&"object"==typeof n&&n.ref:T,K=i.default.useCallback(e=>(null!==U&&(v.current=(0,g.mountLinkInstance)(e,D,U,G,$,w)),()=>{v.current&&((0,g.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,g.unmountPrefetchableInstance)(e)}),[$,D,U,G,w]),V={ref:(0,c.useMergedRef)(K,H),onClick(t){P||"function"!=typeof E||E(t),P&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!U||t.defaultPrevented||function(t,r,a,l,n,s,o){if("u">typeof window){let d,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){l&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:x}=e.r(99781);i.default.startTransition(()=>{x(r,l?"replace":"push",!1===n?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,a.current,o)})}}(t,D,v,A,_,I,z)},onMouseEnter(e){P||"function"!=typeof R||R(e),P&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),U&&$&&(0,g.onNavigationIntent)(e.currentTarget,!0===O)},onTouchStart:function(e){P||"function"!=typeof M||M(e),P&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),U&&$&&(0,g.onNavigationIntent)(e.currentTarget,!0===O)}};return(0,x.isAbsoluteUrl)(D)?V.href=D:P&&!S&&("a"!==n.type||"href"in n.props)||(V.href=(0,u.addBasePath)(D)),p=P?i.default.cloneElement(n,V):(0,s.jsx)("a",{...B,...V,children:l}),(0,s.jsx)(b.Provider,{value:y,children:p})}e.r(84508);let b=(0,i.createContext)(g.IDLE_LINK_STATUS),y=()=>(0,i.useContext)(b);("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)},3511,16936,e=>{"use strict";let t=e.i(47167).default.env.NEXT_PUBLIC_SERVER_URL??"";async function r(){let e=await fetch(`${t}/agents/claude/auth/status`);if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}async function a(){let e=await fetch(`${t}/agents/claude/status`);if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}async function l(){let e=await fetch(`${t}/agents/gemini/auth/status`);if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}async function n(e,r){let a=await fetch(`${t}/agents/gemini/auth/configure`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({authType:e,...r?{apiKey:r}:{}})});if(!a.ok)throw Error(`HTTP ${a.status}`)}async function s(){let e=await fetch(`${t}/agents/codex/auth/status`);if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}async function i(e){let r=await fetch(`${t}/agents/codex/auth/configure`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:e})});if(!r.ok)throw Error(`HTTP ${r.status}`)}e.s(["CLAUDE_WS_NAMESPACE",0,"/agents/claude","CODEX_WS_NAMESPACE",0,"/agents/codex","GEMINI_WS_NAMESPACE",0,"/agents/gemini","SERVER_URL",0,t],3511),e.s(["configureCodexAuth",0,i,"configureGeminiAuth",0,n,"getAuthStatus",0,r,"getClaudeStatus",0,a,"getCodexAuthStatus",0,s,"getGeminiAuthStatus",0,l],16936)},70929,e=>{"use strict";var t=e.i(18050),r=e.i(71645);e.s(["Modal",0,function({open:e,onClose:a,title:l,children:n,maxWidth:s="max-w-lg",hideClose:i=!1,zIndex:o="z-50"}){let d=(0,r.useRef)(null);return((0,r.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&a()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,a]),(0,r.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),e)?(0,t.jsxs)("div",{ref:d,className:`fixed inset-0 flex items-center justify-center bg-black/50 p-4 backdrop-blur-md dark:bg-black/70 ${o}`,onMouseDown:e=>{e.target===d.current&&a()},children:[(0,t.jsxs)("div",{className:["relative flex w-full flex-col rounded-2xl border border-gray-900/[0.08] bg-white dark:border-white/[0.08] dark:bg-[#0a0c10] shadow-[0_24px_80px_rgba(0,0,0,0.15)] dark:shadow-[0_24px_80px_rgba(0,0,0,0.7)]",s].join(" "),style:{animation:"modal-in 0.18s cubic-bezier(0.16,1,0.3,1) both"},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-gray-900/[0.06] px-5 py-4 dark:border-white/[0.06]",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-gray-900/85 dark:text-white/85",children:l}),!i&&(0,t.jsx)("button",{onClick:a,className:"flex h-6 w-6 items-center justify-center rounded-md text-gray-900/25 transition-colors hover:bg-gray-900/[0.07] hover:text-gray-900/70 dark:text-white/25 dark:hover:bg-white/[0.07] dark:hover:text-white/70","aria-label":"닫기",children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"h-3.5 w-3.5",children:(0,t.jsx)("path",{d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})})})]}),(0,t.jsx)("div",{className:"overflow-y-auto px-5 py-5",style:{maxHeight:"calc(90vh - 64px)"},children:n})]}),(0,t.jsx)("style",{children:`
|
|
2
|
+
@keyframes modal-in {
|
|
3
|
+
from { opacity: 0; transform: scale(0.96) translateY(6px); }
|
|
4
|
+
to { opacity: 1; transform: scale(1) translateY(0); }
|
|
5
|
+
}
|
|
6
|
+
`})]}):null}])},62814,48591,e=>{"use strict";var t=e.i(71645),r=e.i(96085),a=e.i(3511),l=e.i(16936);let n=/https?:\/\/[^\s\-"<>\\^`{|}~]+/g;e.s(["useClaudeAuth",0,function(){let[e,s]=(0,t.useState)("checking"),[i,o]=(0,t.useState)("idle"),[d,c]=(0,t.useState)(""),[x,u]=(0,t.useState)([]),h=(0,t.useRef)(null),g=(0,t.useRef)(""),m=(0,t.useRef)(!1),f=(0,t.useCallback)(async()=>{s("checking");try{let e=await (0,l.getAuthStatus)();s(e.loggedIn?"authenticated":"unauthenticated")}catch{s("unauthenticated")}},[]);(0,t.useEffect)(()=>{f()},[f]);let p=(0,t.useCallback)(()=>{if("pending"===i)return;g.current="",c(""),u([]),o("pending"),m.current=!0;let e=(0,r.io)(`${a.SERVER_URL}${a.CLAUDE_WS_NAMESPACE}`,{transports:["websocket"]});h.current=e,e.on("connect",()=>e.emit("auth:login:start")),e.on("auth:output",({text:e})=>{g.current+=e,c(g.current),u(Array.from(new Set(g.current.match(n)??[])))}),e.on("auth:done",({success:t})=>{m.current=!1,e.disconnect(),h.current=null,o(t?"done":"error"),t&&s("authenticated")}),e.on("disconnect",()=>{m.current&&(m.current=!1,o("error"))})},[i]);return{authState:e,loginState:i,loginOutput:d,loginUrls:x,startLogin:p,cancelLogin:(0,t.useCallback)(()=>{m.current=!1,h.current?.emit("auth:login:cancel"),h.current?.disconnect(),h.current=null,o("idle"),c(""),u([]),g.current=""},[]),checkAuth:f}}],62814);var s=e.i(18050);e.s(["LoginPanel",0,function({loginState:e,loginOutput:t,loginUrls:r,onStart:a,onCancel:l}){return(0,s.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-6 px-6",children:[(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,s.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl border border-gray-900/[0.08] bg-orange-500/[0.08] dark:border-white/[0.08]",children:(0,s.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",className:"h-8 w-8 text-orange-500 dark:text-orange-400/80",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 10.5V6.75a4.5 4.5 0 10-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H6.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z"})})}),(0,s.jsx)("h2",{className:"text-xl font-semibold text-gray-900/90 dark:text-white/90",children:"Claude Code 로그인 필요"}),(0,s.jsx)("p",{className:"max-w-sm text-sm text-gray-900/40 dark:text-white/40",children:"Claude CLI를 사용하려면 Anthropic 계정으로 로그인해야 합니다."})]}),"idle"===e&&(0,s.jsx)("button",{onClick:a,className:"rounded-xl bg-orange-600 px-6 py-3 text-sm font-semibold text-white transition-colors hover:bg-orange-500",children:"Claude Code 로그인"}),"pending"===e&&(0,s.jsxs)("div",{className:"flex w-full max-w-lg flex-col gap-4",children:[r.length>0&&(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("p",{className:"text-xs font-medium text-gray-900/35 dark:text-white/35",children:"브라우저에서 아래 링크를 열어 인증을 완료하세요:"}),r.map(e=>(0,s.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"break-all rounded-lg border border-orange-700/50 bg-orange-950/30 px-4 py-3 text-xs font-mono text-orange-700 transition-colors hover:border-orange-500 hover:text-orange-600 dark:text-orange-300 dark:hover:text-orange-200",children:e},e))]}),t&&(0,s.jsx)("pre",{className:"max-h-48 overflow-y-auto rounded-lg border border-gray-900/[0.07] bg-gray-900/[0.02] px-4 py-3 font-mono text-xs leading-relaxed whitespace-pre-wrap text-gray-900/45 dark:border-white/[0.07] dark:bg-white/[0.02] dark:text-white/45",children:t}),0===r.length&&(0,s.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-gray-900/30 dark:text-white/30",children:[(0,s.jsx)("span",{className:"h-4 w-4 animate-spin rounded-full border-2 border-gray-900/[0.08] border-t-orange-500 dark:border-white/[0.08]"}),"로그인 프로세스를 시작하는 중…"]}),(0,s.jsx)("button",{onClick:l,className:"text-xs text-gray-900/25 transition-colors hover:text-gray-900/50 dark:text-white/25 dark:hover:text-white/50",children:"취소"})]}),"done"===e&&(0,s.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center",children:[(0,s.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-emerald-500/[0.10]",children:(0,s.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"h-6 w-6 text-emerald-500 dark:text-emerald-400",children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z",clipRule:"evenodd"})})}),(0,s.jsx)("p",{className:"text-sm font-medium text-emerald-600 dark:text-emerald-400",children:"로그인 완료"}),(0,s.jsx)("p",{className:"text-xs text-gray-900/25 dark:text-white/25",children:"잠시 후 자동으로 이동합니다…"})]}),"error"===e&&(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,s.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-red-500/[0.10]",children:(0,s.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",className:"h-6 w-6 text-red-500 dark:text-red-400",children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})})}),(0,s.jsx)("p",{className:"text-sm text-red-500 dark:text-red-400",children:"로그인 중 문제가 발생했습니다."}),t&&(0,s.jsx)("pre",{className:"max-h-32 w-full max-w-lg overflow-y-auto rounded-lg border border-gray-900/[0.07] bg-gray-900/[0.02] px-4 py-3 font-mono text-xs whitespace-pre-wrap text-gray-900/40 dark:border-white/[0.07] dark:bg-white/[0.02] dark:text-white/40",children:t}),(0,s.jsx)("button",{onClick:a,className:"rounded-xl bg-orange-600 px-6 py-3 text-sm font-semibold text-white transition-colors hover:bg-orange-500",children:"다시 시도"})]})]})}],48591)},39798,e=>{"use strict";var t=e.i(18050),r=e.i(22016),a=e.i(71645),l=e.i(62814),n=e.i(71521),s=e.i(74373),i=e.i(48591),o=e.i(1786),d=e.i(82005),c=e.i(70929),x=e.i(94592);function u(e){return"checking"===e?"loading":"authenticated"===e?"authenticated":"not-installed"===e?"unavailable":"unauthenticated"}let h={loading:{border:"border-gray-900/[0.07] dark:border-white/[0.07]",bg:"bg-gray-900/[0.04] dark:bg-white/[0.04]",text:"text-transparent",dot:"bg-gray-900/20 dark:bg-white/20",label:"확인 중"},authenticated:{border:"border-emerald-500/25",bg:"bg-emerald-500/[0.08]",text:"text-emerald-600 dark:text-emerald-400",dot:"bg-emerald-500 shadow-[0_0_5px_#34d399] dark:bg-emerald-400",label:"사용 가능"},unauthenticated:{border:"border-amber-500/25",bg:"bg-amber-500/[0.08]",text:"text-amber-600 dark:text-amber-400",dot:"bg-amber-500 dark:bg-amber-400",label:"로그인 필요"},unavailable:{border:"border-gray-900/[0.06] dark:border-white/[0.06]",bg:"bg-gray-900/[0.03] dark:bg-white/[0.03]",text:"text-gray-900/30 dark:text-white/30",dot:"bg-gray-900/20 dark:bg-white/20",label:"미설치"}};function g({badge:e}){let{border:r,bg:a,text:l,dot:n,label:s}=h[e];return(0,t.jsxs)("span",{className:["inline-flex min-w-[86px] shrink-0 items-center justify-center gap-1.5 rounded-full border px-3 py-[5px] text-xs font-medium transition-all duration-500",r,a,l].join(" "),children:[(0,t.jsx)("span",{className:["h-1.5 w-1.5 rounded-full",n,"loading"===e||"authenticated"===e?"animate-pulse":""].join(" ")}),s]})}let m={claude:{name:"Claude CLI",description:"Anthropic Claude Code",icon:(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"h-5 w-5 text-[#D97757]","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M13.827 3.816L20.05 20.2h-3.672l-1.234-3.365H8.856L7.622 20.2H3.95L10.173 3.816h3.654zm-1.827 4.91l-1.989 5.453h3.978l-1.989-5.453z"})}),iconBg:"bg-orange-500/[0.10]",accentFrom:"from-orange-500/[0.10]",accentVia:"via-orange-400/50"},gemini:{name:"Gemini CLI",description:"Google Gemini",icon:(0,t.jsxs)("svg",{viewBox:"0 0 24 24",className:"h-5 w-5","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),(0,t.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),(0,t.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),(0,t.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]}),iconBg:"bg-blue-500/[0.08]",accentFrom:"from-blue-500/[0.10]",accentVia:"via-blue-400/40"},codex:{name:"Codex CLI",description:"OpenAI Codex",icon:(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"h-5 w-5 text-gray-900/70 dark:text-white/70","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M22.282 9.821a5.985 5.985 0 0 0-.516-4.91 6.046 6.046 0 0 0-6.51-2.9A6.065 6.065 0 0 0 4.981 4.18a5.985 5.985 0 0 0-3.998 2.9 6.046 6.046 0 0 0 .743 7.097 5.98 5.98 0 0 0 .51 4.911 6.051 6.051 0 0 0 6.515 2.9A5.985 5.985 0 0 0 13.26 24a6.056 6.056 0 0 0 5.772-4.206 5.99 5.99 0 0 0 3.997-2.9 6.056 6.056 0 0 0-.747-7.073zM13.26 22.43a4.476 4.476 0 0 1-2.876-1.04l.141-.081 4.779-2.758a.795.795 0 0 0 .392-.681v-6.737l2.02 1.168a.071.071 0 0 1 .038.052v5.583a4.504 4.504 0 0 1-4.494 4.494zM3.6 18.304a4.47 4.47 0 0 1-.535-3.014l.142.085 4.783 2.759a.771.771 0 0 0 .78 0l5.843-3.369v2.332a.08.08 0 0 1-.033.062L9.74 19.95a4.5 4.5 0 0 1-6.14-1.646zM2.34 7.896a4.485 4.485 0 0 1 2.366-1.973V11.6a.766.766 0 0 0 .388.676l5.815 3.355-2.02 1.168a.076.076 0 0 1-.071 0l-4.83-2.786A4.504 4.504 0 0 1 2.34 7.872zm16.597 3.855l-5.833-3.387L15.119 7.2a.076.076 0 0 1 .071 0l4.83 2.791a4.494 4.494 0 0 1-.676 8.105v-5.678a.79.79 0 0 0-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776 0 0 0-.785 0L9.409 9.23V6.897a.066.066 0 0 1 .028-.061l4.83-2.787a4.5 4.5 0 0 1 6.68 4.66zm-12.64 4.135l-2.02-1.164a.08.08 0 0 1-.038-.057V6.075a4.5 4.5 0 0 1 7.375-3.453l-.142.08L8.704 5.46a.795.795 0 0 0-.393.681zm1.097-2.365l2.602-1.5 2.607 1.5v2.999l-2.597 1.5-2.607-1.5z"})}),iconBg:"bg-gray-900/[0.05] dark:bg-white/[0.05]",accentFrom:"from-gray-500/[0.07]",accentVia:"via-gray-400/25"}};function f({agentKey:e,badge:r,onAuth:a,index:l}){let n=m[e],s="unauthenticated"===r||"loading"===r,i="authenticated"===r;return(0,t.jsxs)("div",{className:"animate-fade-in-up relative overflow-hidden rounded-2xl border border-gray-900/[0.07] dark:border-white/[0.07] bg-gray-900/[0.025] dark:bg-white/[0.025] p-4 transition-all duration-300",style:{animationDelay:`${60*l}ms`},children:[(0,t.jsx)("div",{className:["absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent to-transparent",n.accentVia].join(" ")}),(0,t.jsx)("div",{className:`pointer-events-none absolute inset-x-0 top-0 h-20 bg-gradient-to-b ${n.accentFrom} to-transparent opacity-50`}),(0,t.jsxs)("div",{className:"relative flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,t.jsx)("span",{className:["flex h-9 w-9 shrink-0 items-center justify-center rounded-xl",n.iconBg].join(" "),children:n.icon}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-[14px] font-semibold text-gray-900/85 dark:text-white/85",children:n.name}),(0,t.jsx)("p",{className:"text-[12px] text-gray-900/35 dark:text-white/35",children:n.description})]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)(g,{badge:r}),!i&&"unavailable"!==r&&(0,t.jsx)("button",{onClick:a,disabled:!s,className:["rounded-lg border px-3 py-1.5 text-xs font-medium transition-all",s?"border-gray-900/[0.10] bg-gray-900/[0.04] text-gray-900/60 hover:border-gray-900/[0.18] hover:bg-gray-900/[0.08] hover:text-gray-900/90 dark:border-white/[0.10] dark:bg-white/[0.04] dark:text-white/60 dark:hover:border-white/[0.18] dark:hover:bg-white/[0.08] dark:hover:text-white/90":"cursor-not-allowed border-gray-900/[0.06] bg-gray-900/[0.02] text-gray-900/25 dark:border-white/[0.06] dark:bg-white/[0.02] dark:text-white/25"].join(" "),children:"인증하기"}),i&&(0,t.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-emerald-500/[0.10]",children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"h-3.5 w-3.5 text-emerald-500 dark:text-emerald-400",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z",clipRule:"evenodd"})})})]})]})]})}function p({canEnter:e,isLoading:a}){return a?(0,t.jsx)("div",{className:"animate-fade-in-up flex h-[60px] w-full max-w-[460px] items-center justify-center rounded-2xl border border-gray-900/[0.07] bg-gray-900/[0.025] dark:border-white/[0.07] dark:bg-white/[0.025]",children:(0,t.jsx)("span",{className:"h-4 w-4 animate-spin rounded-full border-2 border-gray-900/[0.08] border-t-orange-500 dark:border-white/[0.08]"})}):e?(0,t.jsxs)(r.default,{href:"/claude",className:"animate-fade-in-up group relative flex w-full max-w-[460px] items-center justify-between overflow-hidden rounded-2xl px-6 py-4 transition-all duration-300 bg-gradient-to-r from-orange-600 to-orange-500 shadow-[0_4px_20px_-2px_rgba(234,88,12,0.30)] hover:shadow-[0_8px_28px_-2px_rgba(234,88,12,0.40)] hover:from-orange-500 hover:to-orange-400",style:{animationDelay:"180ms"},children:[(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 bg-gradient-to-tr from-white/[0.07] to-transparent"}),(0,t.jsxs)("div",{className:"relative flex items-center gap-3",children:[(0,t.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-white/[0.18]",children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"h-4.5 w-4.5 text-white",children:(0,t.jsx)("path",{d:"M13.827 3.816L20.05 20.2h-3.672l-1.234-3.365H8.856L7.622 20.2H3.95L10.173 3.816h3.654zm-1.827 4.91l-1.989 5.453h3.978l-1.989-5.453z"})})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[15px] font-bold tracking-tight text-white",children:"JI CLI 시작하기"}),(0,t.jsx)("p",{className:"text-[11px] text-white/60",children:"멀티 에이전트 채팅 시작"})]})]}),(0,t.jsx)("div",{className:"relative flex h-7 w-7 items-center justify-center rounded-lg bg-white/[0.15] transition-transform duration-200 group-hover:translate-x-0.5",children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"h-4 w-4 text-white",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M6.22 4.22a.75.75 0 011.06 0l3.25 3.25a.75.75 0 010 1.06l-3.25 3.25a.75.75 0 01-1.06-1.06L8.94 8 6.22 5.28a.75.75 0 010-1.06z",clipRule:"evenodd"})})})]}):(0,t.jsxs)("div",{className:"animate-fade-in-up flex w-full max-w-[460px] flex-col items-center gap-2",style:{animationDelay:"180ms"},children:[(0,t.jsxs)("div",{className:"relative flex w-full items-center justify-between overflow-hidden rounded-2xl border border-gray-900/[0.07] bg-gray-900/[0.025] px-6 py-4 dark:border-white/[0.07] dark:bg-white/[0.025] opacity-40 cursor-not-allowed",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"flex h-8 w-8 items-center justify-center rounded-lg border border-gray-900/[0.08] bg-gray-900/[0.04] dark:border-white/[0.08] dark:bg-white/[0.04]",children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"h-4 w-4 text-gray-900/40 dark:text-white/40",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M8 1a3.5 3.5 0 00-3.5 3.5V7A1.5 1.5 0 003 8.5v5A1.5 1.5 0 004.5 15h7a1.5 1.5 0 001.5-1.5v-5A1.5 1.5 0 0011.5 7V4.5A3.5 3.5 0 008 1zm2 6V4.5a2 2 0 10-4 0V7h4z",clipRule:"evenodd"})})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[15px] font-bold tracking-tight text-gray-900/60 dark:text-white/60",children:"JI Claude 시작하기"}),(0,t.jsx)("p",{className:"text-[11px] text-gray-900/30 dark:text-white/30",children:"멀티 에이전트 채팅 시작"})]})]}),(0,t.jsx)("div",{className:"flex h-7 w-7 items-center justify-center rounded-lg border border-gray-900/[0.08] bg-gray-900/[0.04] dark:border-white/[0.08] dark:bg-white/[0.04]",children:(0,t.jsx)("svg",{viewBox:"0 0 16 16",fill:"currentColor",className:"h-3.5 w-3.5 text-gray-900/30 dark:text-white/30",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M6.22 4.22a.75.75 0 011.06 0l3.25 3.25a.75.75 0 010 1.06l-3.25 3.25a.75.75 0 01-1.06-1.06L8.94 8 6.22 5.28a.75.75 0 010-1.06z",clipRule:"evenodd"})})})]}),(0,t.jsx)("p",{className:"text-[12px] text-gray-900/30 dark:text-white/30",children:"에이전트를 하나 이상 인증해야 시작할 수 있습니다"})]})}e.s(["default",0,function(){let e=(0,l.useClaudeAuth)(),r=(0,n.useGeminiAuth)(),h=(0,s.useCodexAuth)(),[g,m]=(0,a.useState)(null);(0,a.useEffect)(()=>{if("claude"===g&&"done"===e.loginState){let e=setTimeout(()=>m(null),1200);return()=>clearTimeout(e)}},[e.loginState,g]),(0,a.useEffect)(()=>{if("gemini"===g&&"done"===r.loginState){let e=setTimeout(()=>m(null),1200);return()=>clearTimeout(e)}},[r.loginState,g]),(0,a.useEffect)(()=>{if("codex"===g&&("done"===h.loginState||"done"===h.apiKeyLoginState)){let e=setTimeout(()=>m(null),1200);return()=>clearTimeout(e)}},[h.loginState,h.apiKeyLoginState,g]);let b=()=>{"claude"===g&&e.cancelLogin(),"gemini"===g&&r.cancelLogin(),"codex"===g&&h.cancelDeviceLogin(),m(null)},y=u(e.authState),w=u(r.authState),v=u(h.authState);return(0,t.jsxs)("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-[#faf8f5] px-6 py-12 dark:bg-[#07090e]",children:[(0,t.jsx)("div",{className:"absolute right-4 top-4",children:(0,t.jsx)(x.ThemeToggle,{})}),(0,t.jsxs)("div",{className:"pointer-events-none absolute inset-0 overflow-hidden",children:[(0,t.jsx)("div",{className:"absolute left-1/2 top-[40%] h-[600px] w-[800px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-orange-500/[0.04] blur-[120px] dark:bg-orange-500/[0.035]"}),(0,t.jsx)("div",{className:"absolute -left-24 bottom-1/4 h-[350px] w-[450px] rounded-full bg-blue-600/[0.03] blur-[100px] dark:bg-blue-600/[0.025]"}),(0,t.jsx)("div",{className:"absolute -right-24 top-1/4 h-[300px] w-[400px] rounded-full bg-purple-600/[0.03] blur-[100px] dark:bg-purple-600/[0.025]"})]}),(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 opacity-60",style:{backgroundImage:"radial-gradient(circle, var(--dot-color) 1px, transparent 1px)",backgroundSize:"28px 28px",maskImage:"radial-gradient(ellipse 75% 65% at 50% 50%, black 30%, transparent 100%)",WebkitMaskImage:"radial-gradient(ellipse 75% 65% at 50% 50%, black 30%, transparent 100%)"}}),(0,t.jsxs)("header",{className:"animate-fade-in-up relative mb-10 flex flex-col items-center gap-5 text-center",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"flex h-12 w-80 items-center justify-center rounded-[16px] border border-gray-900/[0.10] bg-gray-900/[0.05] shadow-[inset_0_1px_0_rgba(0,0,0,0.06)] backdrop-blur-sm dark:border-white/[0.10] dark:bg-white/[0.05] dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.08)]",children:(0,t.jsx)("span",{className:"font-mono text-sm font-bold tracking-widest text-gray-900/65 dark:text-white/65",children:"INTEGRATION-CLI"})}),(0,t.jsx)("div",{className:"absolute -inset-2 rounded-[20px] bg-orange-500/10 blur-xl"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-[2.75rem] font-bold leading-none tracking-[-0.03em]",style:{background:"var(--heading-gradient)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text"},children:"JI-CLI"}),(0,t.jsx)("p",{className:"mt-2.5 text-[13px] font-medium uppercase tracking-[0.06em] text-gray-900/28 dark:text-white/28",children:"하나의 플랫폼에서 모든 AI CLI를 제어합니다"})]})]}),(0,t.jsxs)("div",{className:"relative flex w-full max-w-[460px] flex-col gap-3",children:[(0,t.jsxs)("div",{className:"animate-fade-in-up mb-1 flex items-center gap-2",style:{animationDelay:"60ms"},children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.07em] text-gray-900/35 dark:text-white/35",children:"에이전트 인증"}),(0,t.jsx)("div",{className:"h-px flex-1 bg-gray-900/[0.06] dark:bg-white/[0.06]"})]}),(0,t.jsx)(f,{agentKey:"claude",badge:y,onAuth:()=>m("claude"),index:0}),(0,t.jsx)(f,{agentKey:"gemini",badge:w,onAuth:()=>m("gemini"),index:1}),(0,t.jsx)(f,{agentKey:"codex",badge:v,onAuth:()=>m("codex"),index:2}),(0,t.jsxs)("div",{className:"animate-fade-in-up my-1 flex items-center gap-2",style:{animationDelay:"150ms"},children:[(0,t.jsx)("div",{className:"h-px flex-1 bg-gray-900/[0.06] dark:bg-white/[0.06]"}),(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.07em] text-gray-900/35 dark:text-white/35",children:"시작하기"}),(0,t.jsx)("div",{className:"h-px flex-1 bg-gray-900/[0.06] dark:bg-white/[0.06]"})]}),(0,t.jsx)(p,{canEnter:"authenticated"===y||"authenticated"===w||"authenticated"===v,isLoading:"loading"===y||"loading"===w||"loading"===v})]}),(0,t.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-gradient-to-r from-transparent via-gray-900/[0.05] to-transparent dark:via-white/[0.05]"}),(0,t.jsx)(c.Modal,{open:"claude"===g,onClose:b,title:"Claude CLI 인증",maxWidth:"max-w-lg",children:(0,t.jsx)(i.LoginPanel,{loginState:e.loginState,loginOutput:e.loginOutput,loginUrls:e.loginUrls,onStart:e.startLogin,onCancel:()=>{e.cancelLogin(),m(null)}})}),(0,t.jsx)(c.Modal,{open:"gemini"===g,onClose:b,title:"Gemini CLI 인증",maxWidth:"max-w-lg",children:(0,t.jsx)(o.GeminiLoginPanel,{loginState:r.loginState,loginOutput:r.loginOutput,loginUrls:r.loginUrls,configError:r.configError,onSaveApiKey:r.saveApiKey,onStartGca:r.startGcaLogin,onCancel:()=>{r.cancelLogin(),m(null)},onReset:r.resetLogin})}),(0,t.jsx)(c.Modal,{open:"codex"===g,onClose:b,title:"Codex CLI 인증",maxWidth:"max-w-lg",children:(0,t.jsx)(d.CodexLoginPanel,{loginMethod:h.loginMethod,onMethodChange:h.setLoginMethod,loginState:h.loginState,loginOutput:h.loginOutput,loginUrls:h.loginUrls,deviceCode:h.deviceCode,onStartDeviceLogin:h.startDeviceLogin,onCancelDeviceLogin:()=>{h.cancelDeviceLogin(),m(null)},apiKeyLoginState:h.apiKeyLoginState,configError:h.configError,onSaveApiKey:h.saveApiKey})})]})}])}]);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,32061,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return o},isBailoutToCSRError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="BAILOUT_TO_CLIENT_SIDE_RENDERING";class o extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=i}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===i}},54394,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return i},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return s},getAccessFallbackErrorTypeByStatus:function(){return l},getAccessFallbackHTTPStatus:function(){return c},isHTTPAccessFallbackError:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},o=new Set(Object.values(i)),s="NEXT_HTTP_ERROR_FALLBACK";function u(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===s&&o.has(Number(r))}function c(e){return Number(e.digest.split(";")[1])}function l(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("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)},65713,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return i}});let n=e.r(54394),a=e.r(68391);function i(e){return(0,a.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(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)},3680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return a}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class a extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("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)},61994,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return l},PathParamsContext:function(){return c},PathnameContext:function(){return u},ReadonlyURLSearchParams:function(){return o.ReadonlyURLSearchParams},SearchParamsContext:function(){return s},createDevToolsInstrumentedPromise:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(71645),o=e.r(3680),s=(0,i.createContext)(null),u=(0,i.createContext)(null),c=(0,i.createContext)(null),l=(0,i.createContext)(null);function d(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},45955,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},42852,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return u},StagedRenderingController:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let o=e.r(12718),s=e.r(39470);var u=((n={})[n.Before=1]="Before",n[n.EarlyStatic=2]="EarlyStatic",n[n.Static=3]="Static",n[n.EarlyRuntime=4]="EarlyRuntime",n[n.Runtime=5]="Runtime",n[n.Dynamic=6]="Dynamic",n[n.Abandoned=7]="Abandoned",n);class c{constructor(e,t,r){this.abortSignal=e,this.abandonController=t,this.shouldTrackSyncIO=r,this.currentStage=1,this.syncInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.staticStageListeners=[],this.earlyRuntimeStageListeners=[],this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.staticStagePromise=(0,s.createPromiseWithResolvers)(),this.earlyRuntimeStagePromise=(0,s.createPromiseWithResolvers)(),this.runtimeStagePromise=(0,s.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,s.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.staticStagePromise.promise.catch(l),this.staticStagePromise.reject(t),this.earlyRuntimeStagePromise.promise.catch(l),this.earlyRuntimeStagePromise.reject(t),this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t),this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t)},{once:!0}),t&&t.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.staticStageListeners.push(t);else if(4===e)this.earlyRuntimeStageListeners.push(t);else if(5===e)this.runtimeStageListeners.push(t);else if(6===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new o.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}shouldTrackSyncInterrupt(){if(!this.shouldTrackSyncIO)return!1;switch(this.currentStage){case 1:case 5:case 6:case 7:default:return!1;case 2:case 3:case 4:return!0}}syncInterruptCurrentStageWithReason(e){if(1!==this.currentStage&&7!==this.currentStage){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=e,this.currentStage=7;return}switch(this.currentStage){case 2:case 3:case 4:this.syncInterruptReason=e,this.advanceStage(6);return;case 5:return}}}getSyncInterruptReason(){return this.syncInterruptReason}getStaticStageEndTime(){return this.staticStageEndTime}getRuntimeStageEndTime(){return this.runtimeStageEndTime}abandonRender(){let{currentStage:e}=this;switch(e){case 2:this.resolveStaticStage();case 3:this.resolveEarlyRuntimeStage();case 4:this.resolveRuntimeStage();case 5:this.currentStage=7;return}}advanceStage(e){if(e<=this.currentStage)return;let t=this.currentStage;if(this.currentStage=e,t<3&&e>=3&&this.resolveStaticStage(),t<4&&e>=4&&this.resolveEarlyRuntimeStage(),t<5&&e>=5&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<6&&e>=6){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveStaticStage(){let e=this.staticStageListeners;for(let t=0;t<e.length;t++)e[t]();e.length=0,this.staticStagePromise.resolve()}resolveEarlyRuntimeStage(){let e=this.earlyRuntimeStageListeners;for(let t=0;t<e.length;t++)e[t]();e.length=0,this.earlyRuntimeStagePromise.resolve()}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t<e.length;t++)e[t]();e.length=0,this.runtimeStagePromise.resolve()}resolveDynamicStage(){let e=this.dynamicStageListeners;for(let t=0;t<e.length;t++)e[t]();e.length=0,this.dynamicStagePromise.resolve()}getStagePromise(e){switch(e){case 3:return this.staticStagePromise.promise;case 4:return this.earlyRuntimeStagePromise.promise;case 5:return this.runtimeStagePromise.promise;case 6:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new o.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,a,i;let o,s=(n=this.getStagePromise(e),a=t,i=r,o=new Promise((e,t)=>{n.then(e.bind(null,i),t)}),void 0!==a&&(o.displayName=a),o);return this.abortSignal&&s.catch(l),s}}function l(){}},62141,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return b},getDraftModeProviderForCacheScope:function(){return g},getHmrRefreshHash:function(){return m},getPrerenderResumeDataCache:function(){return d},getRenderResumeDataCache:function(){return f},getServerComponentsHmrCache:function(){return p},getStagedRenderingController:function(){return y},isHmrRefresh:function(){return h},isInEarlyRenderStage:function(){return u},throwForMissingRequestStore:function(){return c},throwInvariantForMissingStore:function(){return l},workUnitAsyncStorage:function(){return i.workUnitAsyncStorageInstance}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(45955);e.r(21768);let o=e.r(12718),s=e.r(42852);function u(e){let t=e.stagedRendering;return!!t&&(t.currentStage===s.RenderStage.EarlyStatic||t.currentStage===s.RenderStage.EarlyRuntime)}function c(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function l(){throw Object.defineProperty(new o.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function d(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":case"validation-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return null;default:return e}}function f(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":case"validation-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":case"generate-static-params":return null;default:return e}}function m(e){}function h(e){return!1}function p(e){}function g(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function y(e){switch(e.type){case"request":case"prerender-runtime":return e.stagedRendering??null;case"prerender":case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return null;default:return e}}function b(e){switch(e.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return null;default:return e}}},13957,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return o},useServerInsertedHTML:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(90809)._(e.r(71645)),o=i.default.createContext(null);function s(e){let t=(0,i.useContext)(o);t&&t(e)}},22783,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return i}});let n=e.r(54394),a=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function i(){let e=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw e.digest=a,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)},79854,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("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)},22683,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("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)},15507,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(32061),a=e.r(65713);("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)},63138,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={delayUntilRuntimeStage:function(){return h},getRuntimeStage:function(){return m},isHangingPromiseRejectionError:function(){return o},makeDevtoolsIOAwarePromise:function(){return f},makeHangingPromise:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(42852);function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===s}let s="HANGING_PROMISE_REJECTION";class u extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=s}}let c=new WeakMap;function l(e,t,r){if(e.aborted)return Promise.reject(new u(t,r));{let n=new Promise((n,a)=>{let i=a.bind(null,new u(t,r)),o=c.get(e);if(o)o.push(i);else{let t=[i];c.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e<t.length;e++)t[e]()},{once:!0})}});return n.catch(d),n}}function d(){}function f(e,t,r){return t.stagedRendering?t.stagedRendering.delayUntilStage(r,void 0,e):new Promise(t=>{setTimeout(()=>{t(e)},0)})}function m(e){return e.currentStage===i.RenderStage.EarlyStatic||e.currentStage===i.RenderStage.EarlyRuntime?i.RenderStage.EarlyRuntime:i.RenderStage.Runtime}function h(e,t){let{stagedRendering:r}=e;return r?r.waitForStage(m(r)).then(()=>t):t}},67287,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return a}});let n=Symbol.for("react.postpone");function a(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},76353,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return o},isDynamicServerError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="DYNAMIC_SERVER_USAGE";class o extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=i}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===i}("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)},43248,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return o},isStaticGenBailoutError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="NEXT_STATIC_GEN_BAILOUT";class o extends Error{constructor(...e){super(...e),this.code=i}}function s(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===i}("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)},54839,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return i},OUTLET_BOUNDARY_NAME:function(){return s},ROOT_LAYOUT_BOUNDARY_NAME:function(){return u},VIEWPORT_BOUNDARY_NAME:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="__next_metadata_boundary__",o="__next_viewport_boundary__",s="__next_outlet_boundary__",u="__next_root_layout_boundary__"},29419,(e,t,r)=>{"use strict";var n=e.i(47167);Object.defineProperty(r,"__esModule",{value:!0});var a={atLeastOneTask:function(){return u},scheduleImmediate:function(){return s},scheduleOnNextTick:function(){return o},waitAtLeastOneReactRenderTask:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let o=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},s=e=>{setImmediate(e)};function u(){return new Promise(e=>s(e))}function c(){return new Promise(e=>setImmediate(e))}},2897,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"INSTANT_VALIDATION_BOUNDARY_NAME",{enumerable:!0,get:function(){return n}});let n="__next_instant_validation_boundary__"},67673,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a,i,o={DynamicHoleKind:function(){return Z},Postpone:function(){return T},PreludeState:function(){return ei},abortAndThrowOnSynchronousRequestDataAccess:function(){return D},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return L},annotateDynamicAccess:function(){return H},consumeDynamicAccess:function(){return $},createDynamicTrackingState:function(){return E},createDynamicValidationState:function(){return R},createHangingInputAbortSignal:function(){return X},createInstantValidationState:function(){return Q},createRenderInBrowserAbortSignal:function(){return B},formatDynamicAPIAccesses:function(){return U},getFirstDynamicReason:function(){return v},getNavigationDisallowedDynamicReasons:function(){return ec},getStaticShellDisallowedDynamicReasons:function(){return eu},isDynamicPostpone:function(){return C},isPrerenderInterruptedError:function(){return I},logDisallowedDynamicError:function(){return eo},markCurrentScopeAsDynamic:function(){return S},postponeWithTracking:function(){return x},throwIfDisallowedDynamic:function(){return es},throwToInterruptStaticGeneration:function(){return O},trackAllowedDynamicAccess:function(){return J},trackDynamicDataInDynamicRender:function(){return w},trackDynamicHoleInNavigation:function(){return ee},trackDynamicHoleInRuntimeShell:function(){return er},trackDynamicHoleInStaticShell:function(){return en},trackThrownErrorInNavigation:function(){return et},useDynamicRouteParams:function(){return F},useDynamicSearchParams:function(){return W}};for(var s in o)Object.defineProperty(r,s,{enumerable:!0,get:o[s]});let u=(n=e.r(71645))&&n.__esModule?n:{default:n},c=e.r(76353),l=e.r(43248),d=e.r(62141),f=e.r(63599),m=e.r(63138),h=e.r(54839),p=e.r(29419),g=e.r(32061),y=e.r(12718),b=e.r(2897),_="function"==typeof u.default.unstable_postpone;function E(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function R(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function v(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function S(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new l.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return x(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new c.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function O(e,t,r){let n=Object.defineProperty(new c.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function w(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function P(e,t,r){let n=M(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let a=r.dynamicTracking;a&&a.dynamicAccesses.push({stack:a.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let a=n.dynamicTracking;P(e,t,n),a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=r)}function D(e,t,r,n){if(!1===n.controller.signal.aborted){P(e,t,n);let a=n.dynamicTracking;a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=r)}throw M(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function T({reason:e,route:t}){let r=d.workUnitAsyncStorage.getStore();x(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function x(e,t,r){(function(){if(!_)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),u.default.unstable_postpone(A(e,t))}function A(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function C(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&N(e.message)}function N(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===N(A("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let k="NEXT_PRERENDER_INTERRUPTED";function M(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=k,t}function I(e){return"object"==typeof e&&null!==e&&e.digest===k&&"name"in e&&"message"in e&&e instanceof Error}function L(e){return e.length>0}function $(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function U(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" (<anonymous>)")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}:
|
|
2
|
+
${t}`))}function B(){let e=new AbortController;return e.abort(Object.defineProperty(new g.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function X(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else if("prerender-runtime"===e.type&&e.stagedRendering){let{stagedRendering:r}=e;r.waitForStage((0,m.getRuntimeStage)(r)).then(()=>(0,p.scheduleOnNextTick)(()=>t.abort()))}else(0,p.scheduleOnNextTick)(()=>t.abort());return t.signal;case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return}}function H(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function F(e){let t=f.workAsyncStorage.getStore(),r=d.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&u.default.use((0,m.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return x(t.route,e,r.dynamicTracking);break}case"validation-client":case"prerender-legacy":case"request":case"unstable-cache":break;case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called in \`generateStaticParams\`. Next.js should be preventing ${e} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}function W(e){let t=f.workAsyncStorage.getStore(),r=d.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,d.throwForMissingRequestStore)(e),r.type){case"validation-client":case"request":return;case"prerender-client":u.default.use((0,m.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new g.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called in \`generateStaticParams\`. Next.js should be preventing ${e} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}let z=/\n\s+at Suspense \(<anonymous>\)/,V=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${h.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),q=RegExp(`\\n\\s+at ${h.METADATA_BOUNDARY_NAME}[\\n\\s]`),G=RegExp(`\\n\\s+at ${h.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${h.OUTLET_BOUNDARY_NAME}[\\n\\s]`),K=RegExp(`\\n\\s+at ${b.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`);function J(e,t,r,n){if(!Y.test(t)){if(q.test(t)){r.hasDynamicMetadata=!0;return}if(G.test(t)){r.hasDynamicViewport=!0;return}if(V.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(z.test(t)){r.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=ea(Object.defineProperty(Error(`Route "${e.route}": Uncached data was accessed outside of <Suspense>. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1079",enumerable:!1,configurable:!0}),t,null);return void r.dynamicErrors.push(a)}}}var Z=((a={})[a.Runtime=1]="Runtime",a[a.Dynamic=2]="Dynamic",a);function Q(e){return{hasDynamicMetadata:!1,hasAllowedClientDynamicAboveBoundary:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[],validationPreventingErrors:[],thrownErrorsOutsideBoundary:[],createInstantStack:e}}function ee(e,t,r,n,a,i){if(Y.test(t))return;if(q.test(t)){let n=ea(Object.defineProperty(Error(`Route "${e.route}": ${1===a?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateMetadata` or you have file-based metadata such as icons that depend on dynamic params segments.":"Uncached data or `connection()` was accessed inside `generateMetadata`."} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1076",enumerable:!1,configurable:!0}),t,r.createInstantStack);r.dynamicMetadata=n;return}if(G.test(t)){let n=ea(Object.defineProperty(Error(`Route "${e.route}": ${1===a?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateViewport`.":"Uncached data or `connection()` was accessed inside `generateViewport`."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1086",enumerable:!1,configurable:!0}),t,r.createInstantStack);r.dynamicErrors.push(n);return}let o=K.exec(t);if(o){let e=z.exec(t);if(e&&e.index<o.index){r.hasAllowedDynamic=!0;return}}else if(i.expectedIds.size===i.renderedIds.size){r.hasAllowedClientDynamicAboveBoundary=!0,r.hasAllowedDynamic=!0;return}else{let n=ea(Object.defineProperty(Error(`Route "${e.route}": Could not validate \`unstable_instant\` because a Client Component in a parent segment prevented the page from rendering.`),"__NEXT_ERROR_CODE",{value:"E1082",enumerable:!1,configurable:!0}),t,r.createInstantStack);r.validationPreventingErrors.push(n);return}if(n.syncDynamicErrorWithStack){let e=n.syncDynamicErrorWithStack;null!==r.createInstantStack&&void 0===e.cause&&(e.cause=r.createInstantStack()),r.dynamicErrors.push(e);return}let s=ea(Object.defineProperty(Error(`Route "${e.route}": ${1===a?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed outside of `<Suspense>`.":"Uncached data or `connection()` was accessed outside of `<Suspense>`."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1078",enumerable:!1,configurable:!0}),t,r.createInstantStack);r.dynamicErrors.push(s)}function et(e,t,r,n){let a=K.exec(n);if(a){let i=z.exec(n);if(i&&i.index<a.index)return;let o=ea(Object.defineProperty(Error(`Route "${e.route}": Could not validate \`unstable_instant\` because an error prevented the target segment from rendering.`,{cause:r}),"__NEXT_ERROR_CODE",{value:"E1112",enumerable:!1,configurable:!0}),n,null);t.validationPreventingErrors.push(o)}else{let e=ea(Object.defineProperty(Error("An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.",{cause:r}),"__NEXT_ERROR_CODE",{value:"E1118",enumerable:!1,configurable:!0}),n,null);t.thrownErrorsOutsideBoundary.push(e)}}function er(e,t,r,n){if(Y.test(t))return;if(q.test(t)){r.dynamicMetadata=ea(Object.defineProperty(Error(`Route "${e.route}": Uncached data or \`connection()\` was accessed inside \`generateMetadata\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1080",enumerable:!1,configurable:!0}),t,null);return}if(G.test(t)){let n=ea(Object.defineProperty(Error(`Route "${e.route}": Uncached data or \`connection()\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1077",enumerable:!1,configurable:!0}),t,null);r.dynamicErrors.push(n);return}if(V.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}if(z.test(t)){r.hasAllowedDynamic=!0;return}else if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=ea(Object.defineProperty(Error(`Route "${e.route}": Uncached data or \`connection()\` was accessed outside of \`<Suspense>\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1084",enumerable:!1,configurable:!0}),t,null);r.dynamicErrors.push(a)}function en(e,t,r,n){if(!Y.test(t)){if(q.test(t)){r.dynamicMetadata=ea(Object.defineProperty(Error(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1085",enumerable:!1,configurable:!0}),t,null);return}if(G.test(t)){let n=ea(Object.defineProperty(Error(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1081",enumerable:!1,configurable:!0}),t,null);r.dynamicErrors.push(n);return}if(V.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(z.test(t)){r.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=ea(Object.defineProperty(Error(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`<Suspense>\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1083",enumerable:!1,configurable:!0}),t,null);return void r.dynamicErrors.push(a)}}}function ea(e,t,r){return null!==r&&(e.cause=r()),e.stack=e.name+": "+e.message+t,e}var ei=((i={})[i.Full=0]="Full",i[i.Empty=1]="Empty",i[i.Errored=2]="Errored",i);function eo(e,t){console.error(t),console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
|
|
3
|
+
- Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.
|
|
4
|
+
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}function es(e,t,r,n){if(n.syncDynamicErrorWithStack)throw eo(e,n.syncDynamicErrorWithStack),new l.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;t<n.length;t++)eo(e,n[t]);throw new l.StaticGenBailoutError}if(r.hasDynamicViewport)throw console.error(`Route "${e.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new l.StaticGenBailoutError;if(1===t)throw console.error(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new l.StaticGenBailoutError}else if(!1===r.hasAllowedDynamic&&r.hasDynamicMetadata)throw console.error(`Route "${e.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new l.StaticGenBailoutError}function eu(e,t,r,n){if(n||r.hasSuspenseAboveBody)return[];if(0!==t){let n=r.dynamicErrors;if(n.length>0)return n;if(1===t)return[Object.defineProperty(new y.InvariantError(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===r.hasAllowedDynamic&&0===r.dynamicErrors.length&&r.dynamicMetadata)return[r.dynamicMetadata];return[]}function ec(e,t,r,n,a){if(n){let{missingSampleErrors:e}=n;if(e.length>0)return e}let{validationPreventingErrors:i}=r;if(i.length>0)return i;if(a.renderedIds.size<a.expectedIds.size){let{thrownErrorsOutsideBoundary:t,createInstantStack:n}=r;if(0===t.length){let t=`Route "${e.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering for an unknown reason.`,r=null!==n?n():Error();return r.name="Error",r.message=t,[r]}if(1===t.length){let r=`Route "${e.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to the following error.`,a=null!==n?n():Error();return a.name="Error",a.message=r,[a,t[0]]}{let r=`Route "${e.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to one of the following errors.`,a=null!==n?n():Error();return a.name="Error",a.message=r,[a,...t]}}if(0!==t){let n=r.dynamicErrors;if(n.length>0)return n;if(1===t)return r.hasAllowedClientDynamicAboveBoundary?[]:[Object.defineProperty(new y.InvariantError(`Route "${e.route}" failed to render during instant validation and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E1055",enumerable:!1,configurable:!0})]}else{let e=r.dynamicErrors;if(e.length>0)return e;if(!1===r.hasAllowedDynamic&&r.dynamicMetadata)return[r.dynamicMetadata]}return[]}},91414,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,i.isBailoutToCSRError)(t)||(0,u.isDynamicServerError)(t)||(0,s.isDynamicPostpone)(t)||(0,a.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,s.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(63138),a=e.r(67287),i=e.r(32061),o=e.r(65713),s=e.r(67673),u=e.r(76353);("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)},90508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="u"<typeof window?e.r(91414).unstable_rethrow:e.r(15507).unstable_rethrow;("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)},92805,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},RedirectType:function(){return f},forbidden:function(){return u.forbidden},notFound:function(){return s.notFound},permanentRedirect:function(){return o.permanentRedirect},redirect:function(){return o.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return l.unstable_rethrow}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(3680),o=e.r(24063),s=e.r(22783),u=e.r(79854),c=e.r(22683),l=e.r(90508);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let f={push:"push",replace:"replace"};("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)},76562,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return s.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return l.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return E},usePathname:function(){return b},useRouter:function(){return _},useSearchParams:function(){return y},useSelectedLayoutSegment:function(){return v},useSelectedLayoutSegments:function(){return R},useServerInsertedHTML:function(){return c.useServerInsertedHTML}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(90809)._(e.r(71645)),o=e.r(8372),s=e.r(61994),u=e.r(13258),c=e.r(13957),l=e.r(92838),d=e.r(92805),f="u"<typeof window?e.r(67673).useDynamicRouteParams:void 0,m="u"<typeof window?e.r(67673).useDynamicSearchParams:void 0,{instrumentParamsForClientValidation:h,instrumentSearchParamsForClientValidation:p,expectCompleteParamsInClientValidation:g}={};function y(){m?.("useSearchParams()");let e=(0,i.useContext)(s.SearchParamsContext);return(0,i.useMemo)(()=>e?new s.ReadonlyURLSearchParams(e):null,[e])}function b(){return f?.("usePathname()"),(0,i.useContext)(s.PathnameContext)}function _(){let e=(0,i.useContext)(o.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function E(){return f?.("useParams()"),(0,i.useContext)(s.PathParamsContext)}function R(e="children"){f?.("useSelectedLayoutSegments()");let t=(0,i.useContext)(o.LayoutRouterContext);return t?(0,u.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function v(e="children"){f?.("useSelectedLayoutSegment()"),(0,i.useContext)(s.NavigationPromisesContext);let t=R(e);return(0,u.computeSelectedLayoutSegment)(t,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)}]);
|