tower-studio 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/tower/.claude/rules/process-lifecycle.md +31 -0
- package/.next/standalone/tower/.claude/rules/security.md +29 -0
- package/.next/standalone/tower/.claude/rules/ui.md +105 -0
- package/.next/standalone/tower/AGENTS.md +325 -0
- package/.next/standalone/tower/CHANGELOG.md +63 -0
- package/.next/standalone/tower/CLAUDE.md +33 -0
- package/.next/standalone/tower/LICENSE +21 -0
- package/.next/standalone/tower/README.md +214 -0
- package/.next/standalone/tower/README.zh.md +212 -0
- package/.next/standalone/tower/bin/tower.mjs +180 -0
- package/.next/standalone/tower/components.json +25 -0
- package/.next/standalone/tower/docs/README.md +51 -0
- package/.next/standalone/tower/docs/ai/README.md +91 -0
- package/.next/standalone/tower/docs/ai/cli-abstraction-design.md +398 -0
- package/.next/standalone/tower/docs/ai/cli-abstraction-plan.md +1345 -0
- package/.next/standalone/tower/docs/assets-notes/README.md +41 -0
- package/.next/standalone/tower/docs/assistant/README.md +48 -0
- package/.next/standalone/tower/docs/board/README.md +36 -0
- package/.next/standalone/tower/docs/diagrams/tower-ai-architecture-en.html +259 -0
- package/.next/standalone/tower/docs/diagrams/tower-ai-architecture.html +259 -0
- package/.next/standalone/tower/docs/diagrams/tower-data-model-en.html +344 -0
- package/.next/standalone/tower/docs/diagrams/tower-data-model.html +344 -0
- package/.next/standalone/tower/docs/diagrams/tower-module-map-en.html +176 -0
- package/.next/standalone/tower/docs/diagrams/tower-module-map.html +176 -0
- package/.next/standalone/tower/docs/diagrams/tower-system-architecture-en.html +336 -0
- package/.next/standalone/tower/docs/diagrams/tower-system-architecture.html +336 -0
- package/.next/standalone/tower/docs/diagrams/tower-task-lifecycle-en.html +251 -0
- package/.next/standalone/tower/docs/diagrams/tower-task-lifecycle.html +251 -0
- package/.next/standalone/tower/docs/en/guide/architecture.md +79 -0
- package/.next/standalone/tower/docs/en/guide/diagrams.md +24 -0
- package/.next/standalone/tower/docs/en/guide/getting-started.md +80 -0
- package/.next/standalone/tower/docs/en/guide/introduction.md +84 -0
- package/.next/standalone/tower/docs/en/index.md +36 -0
- package/.next/standalone/tower/docs/en/modules/ai.md +110 -0
- package/.next/standalone/tower/docs/en/modules/assets-notes.md +56 -0
- package/.next/standalone/tower/docs/en/modules/assistant.md +63 -0
- package/.next/standalone/tower/docs/en/modules/board.md +44 -0
- package/.next/standalone/tower/docs/en/modules/git.md +55 -0
- package/.next/standalone/tower/docs/en/modules/i18n.md +35 -0
- package/.next/standalone/tower/docs/en/modules/mcp.md +62 -0
- package/.next/standalone/tower/docs/en/modules/missions.md +47 -0
- package/.next/standalone/tower/docs/en/modules/project.md +57 -0
- package/.next/standalone/tower/docs/en/modules/search.md +49 -0
- package/.next/standalone/tower/docs/en/modules/settings.md +63 -0
- package/.next/standalone/tower/docs/en/modules/task.md +82 -0
- package/.next/standalone/tower/docs/en/modules/terminal.md +73 -0
- package/.next/standalone/tower/docs/en/modules/workspace.md +61 -0
- package/.next/standalone/tower/docs/git/README.md +42 -0
- package/.next/standalone/tower/docs/guide/architecture.md +29 -0
- package/.next/standalone/tower/docs/guide/diagrams.md +24 -0
- package/.next/standalone/tower/docs/guide/getting-started.md +80 -0
- package/.next/standalone/tower/docs/guide/introduction.md +84 -0
- package/.next/standalone/tower/docs/i18n/README.md +23 -0
- package/.next/standalone/tower/docs/index.md +36 -0
- package/.next/standalone/tower/docs/mcp/README.md +50 -0
- package/.next/standalone/tower/docs/missions/README.md +40 -0
- package/.next/standalone/tower/docs/modules/ai.md +104 -0
- package/.next/standalone/tower/docs/modules/assets-notes.md +68 -0
- package/.next/standalone/tower/docs/modules/assistant.md +74 -0
- package/.next/standalone/tower/docs/modules/board.md +56 -0
- package/.next/standalone/tower/docs/modules/git.md +61 -0
- package/.next/standalone/tower/docs/modules/i18n.md +38 -0
- package/.next/standalone/tower/docs/modules/mcp.md +68 -0
- package/.next/standalone/tower/docs/modules/missions.md +54 -0
- package/.next/standalone/tower/docs/modules/project.md +65 -0
- package/.next/standalone/tower/docs/modules/search.md +57 -0
- package/.next/standalone/tower/docs/modules/settings.md +72 -0
- package/.next/standalone/tower/docs/modules/task.md +82 -0
- package/.next/standalone/tower/docs/modules/terminal.md +70 -0
- package/.next/standalone/tower/docs/modules/workspace.md +68 -0
- package/.next/standalone/tower/docs/package.json +11 -0
- package/.next/standalone/tower/docs/pnpm-lock.yaml +1620 -0
- package/.next/standalone/tower/docs/postcss.config.mjs +2 -0
- package/.next/standalone/tower/docs/project/README.md +45 -0
- package/.next/standalone/tower/docs/public/banner.png +0 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-ai-architecture-en.html +259 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-ai-architecture.html +259 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-data-model-en.html +344 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-data-model.html +344 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-module-map-en.html +176 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-module-map.html +176 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-system-architecture-en.html +336 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-system-architecture.html +336 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-task-lifecycle-en.html +251 -0
- package/.next/standalone/tower/docs/public/diagrams/tower-task-lifecycle.html +251 -0
- package/.next/standalone/tower/docs/search/README.md +37 -0
- package/.next/standalone/tower/docs/settings/README.md +43 -0
- package/.next/standalone/tower/docs/task/README.md +67 -0
- package/.next/standalone/tower/docs/terminal/README.md +58 -0
- package/.next/standalone/tower/docs/workspace/README.md +50 -0
- package/.next/standalone/tower/docs/zh/guide/architecture.md +29 -0
- package/.next/standalone/tower/docs/zh/guide/diagrams.md +24 -0
- package/.next/standalone/tower/docs/zh/guide/getting-started.md +80 -0
- package/.next/standalone/tower/docs/zh/guide/introduction.md +66 -0
- package/.next/standalone/tower/docs/zh/index.md +23 -0
- package/.next/standalone/tower/docs/zh/modules/ai.md +104 -0
- package/.next/standalone/tower/docs/zh/modules/assets-notes.md +68 -0
- package/.next/standalone/tower/docs/zh/modules/assistant.md +74 -0
- package/.next/standalone/tower/docs/zh/modules/board.md +56 -0
- package/.next/standalone/tower/docs/zh/modules/git.md +61 -0
- package/.next/standalone/tower/docs/zh/modules/i18n.md +38 -0
- package/.next/standalone/tower/docs/zh/modules/mcp.md +68 -0
- package/.next/standalone/tower/docs/zh/modules/missions.md +54 -0
- package/.next/standalone/tower/docs/zh/modules/project.md +65 -0
- package/.next/standalone/tower/docs/zh/modules/search.md +57 -0
- package/.next/standalone/tower/docs/zh/modules/settings.md +72 -0
- package/.next/standalone/tower/docs/zh/modules/task.md +82 -0
- package/.next/standalone/tower/docs/zh/modules/terminal.md +70 -0
- package/.next/standalone/tower/docs/zh/modules/workspace.md +68 -0
- package/.next/standalone/tower/eslint.config.mjs +18 -0
- package/.next/standalone/tower/next.config.ts +15 -0
- package/.next/standalone/tower/package.json +117 -0
- package/.next/standalone/tower/playwright.config.ts +28 -0
- package/.next/standalone/tower/pnpm-lock.yaml +10524 -0
- package/.next/standalone/tower/pnpm-workspace.yaml +6 -0
- package/.next/standalone/tower/postcss.config.mjs +7 -0
- package/.next/standalone/tower/prisma/init-fts.ts +23 -0
- package/.next/standalone/tower/prisma/prisma/dev.db +0 -0
- package/.next/standalone/tower/prisma/schema.prisma +290 -0
- package/.next/standalone/tower/prisma/seed.ts +50 -0
- package/.next/standalone/tower/prompts/backend-developer.md +20 -0
- package/.next/standalone/tower/prompts/code-reviewer.md +19 -0
- package/.next/standalone/tower/prompts/frontend-developer.md +20 -0
- package/.next/standalone/tower/prompts/product-manager.md +16 -0
- package/.next/standalone/tower/public/banner.jpg +0 -0
- package/.next/standalone/tower/public/logo.png +0 -0
- package/.next/standalone/tower/scripts/copy-monaco.js +27 -0
- package/.next/standalone/tower/scripts/init-db.ts +74 -0
- package/.next/standalone/tower/scripts/init-tower.ts +10 -0
- package/.next/standalone/tower/scripts/migrate-data.ts +102 -0
- package/.next/standalone/tower/scripts/post-tool-hook.js +188 -0
- package/.next/standalone/tower/scripts/session-start-hook.js +79 -0
- package/.next/standalone/tower/scripts/stop-hook.js +78 -0
- package/.next/standalone/tower/server.js +38 -0
- package/.next/standalone/tower/skills/tower/SKILL.md +375 -0
- package/.next/standalone/tower/src/actions/agent-actions.ts +741 -0
- package/.next/standalone/tower/src/actions/agent-config-actions.ts +44 -0
- package/.next/standalone/tower/src/actions/ai-config-actions.ts +51 -0
- package/.next/standalone/tower/src/actions/asset-actions.ts +131 -0
- package/.next/standalone/tower/src/actions/assistant-actions.ts +107 -0
- package/.next/standalone/tower/src/actions/cli-profile-actions.ts +98 -0
- package/.next/standalone/tower/src/actions/config-actions.ts +84 -0
- package/.next/standalone/tower/src/actions/file-actions.ts +262 -0
- package/.next/standalone/tower/src/actions/git-actions.ts +90 -0
- package/.next/standalone/tower/src/actions/label-actions.ts +67 -0
- package/.next/standalone/tower/src/actions/note-actions.ts +87 -0
- package/.next/standalone/tower/src/actions/onboarding-actions.ts +103 -0
- package/.next/standalone/tower/src/actions/preview-actions.ts +76 -0
- package/.next/standalone/tower/src/actions/project-actions.ts +222 -0
- package/.next/standalone/tower/src/actions/prompt-actions.ts +73 -0
- package/.next/standalone/tower/src/actions/report-actions.ts +141 -0
- package/.next/standalone/tower/src/actions/search-actions.ts +21 -0
- package/.next/standalone/tower/src/actions/search-code-actions.ts +185 -0
- package/.next/standalone/tower/src/actions/task-actions.ts +350 -0
- package/.next/standalone/tower/src/actions/workspace-actions.ts +224 -0
- package/.next/standalone/tower/src/app/api/adapters/test/route.ts +52 -0
- package/.next/standalone/tower/src/app/api/browse-fs/route.ts +90 -0
- package/.next/standalone/tower/src/app/api/files/assets/[projectId]/[filename]/route.ts +38 -0
- package/.next/standalone/tower/src/app/api/git/route.ts +367 -0
- package/.next/standalone/tower/src/app/api/internal/assets/[projectId]/[filename]/route.ts +51 -0
- package/.next/standalone/tower/src/app/api/internal/assets/reveal/route.ts +71 -0
- package/.next/standalone/tower/src/app/api/internal/assistant/chat/route.ts +217 -0
- package/.next/standalone/tower/src/app/api/internal/assistant/images/route.ts +51 -0
- package/.next/standalone/tower/src/app/api/internal/assistant/route.ts +50 -0
- package/.next/standalone/tower/src/app/api/internal/assistant/sessions/route.ts +44 -0
- package/.next/standalone/tower/src/app/api/internal/cache/[...segments]/route.ts +59 -0
- package/.next/standalone/tower/src/app/api/internal/hooks/install/route.ts +41 -0
- package/.next/standalone/tower/src/app/api/internal/hooks/session/route.ts +60 -0
- package/.next/standalone/tower/src/app/api/internal/hooks/stop/route.ts +61 -0
- package/.next/standalone/tower/src/app/api/internal/hooks/upload/route.ts +173 -0
- package/.next/standalone/tower/src/app/api/internal/notifications/pending/route.ts +20 -0
- package/.next/standalone/tower/src/app/api/internal/terminal/[taskId]/buffer/route.ts +48 -0
- package/.next/standalone/tower/src/app/api/internal/terminal/[taskId]/input/route.ts +64 -0
- package/.next/standalone/tower/src/app/api/internal/terminal/[taskId]/start/route.ts +37 -0
- package/.next/standalone/tower/src/app/api/tasks/[taskId]/diff/route.ts +224 -0
- package/.next/standalone/tower/src/app/api/tasks/[taskId]/merge/route.ts +159 -0
- package/.next/standalone/tower/src/app/favicon.ico +0 -0
- package/.next/standalone/tower/src/app/globals.css +247 -0
- package/.next/standalone/tower/src/app/layout.tsx +63 -0
- package/.next/standalone/tower/src/app/missions/missions-client.tsx +338 -0
- package/.next/standalone/tower/src/app/missions/page.tsx +10 -0
- package/.next/standalone/tower/src/app/onboarding/page.tsx +619 -0
- package/.next/standalone/tower/src/app/page.tsx +5 -0
- package/.next/standalone/tower/src/app/settings/page.tsx +7 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/archive/archive-page-client.tsx +258 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/archive/page.tsx +36 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/assets/assets-page-client.tsx +232 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/assets/page.tsx +36 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/board-page-client.tsx +257 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/notes/notes-page-client.tsx +337 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/notes/page.tsx +39 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/page.tsx +81 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/projects/[projectId]/page.tsx +30 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/tasks/[taskId]/page.tsx +97 -0
- package/.next/standalone/tower/src/app/workspaces/[workspaceId]/tasks/[taskId]/task-page-client.tsx +601 -0
- package/.next/standalone/tower/src/app/workspaces/page.tsx +13 -0
- package/.next/standalone/tower/src/components/assets/asset-item.tsx +128 -0
- package/.next/standalone/tower/src/components/assets/asset-list.tsx +31 -0
- package/.next/standalone/tower/src/components/assets/asset-upload.tsx +216 -0
- package/.next/standalone/tower/src/components/assets/image-lightbox.tsx +72 -0
- package/.next/standalone/tower/src/components/assets/text-preview-dialog.tsx +135 -0
- package/.next/standalone/tower/src/components/assistant/assistant-chat-bubble.tsx +308 -0
- package/.next/standalone/tower/src/components/assistant/assistant-chat.tsx +215 -0
- package/.next/standalone/tower/src/components/assistant/assistant-panel.tsx +149 -0
- package/.next/standalone/tower/src/components/assistant/assistant-provider.tsx +512 -0
- package/.next/standalone/tower/src/components/assistant/image-preview-modal.tsx +60 -0
- package/.next/standalone/tower/src/components/assistant/image-thumbnail-strip.tsx +94 -0
- package/.next/standalone/tower/src/components/board/board-column.tsx +115 -0
- package/.next/standalone/tower/src/components/board/board-filters.tsx +42 -0
- package/.next/standalone/tower/src/components/board/board-stats.tsx +52 -0
- package/.next/standalone/tower/src/components/board/column-tasks-dialog.tsx +100 -0
- package/.next/standalone/tower/src/components/board/create-task-dialog.tsx +362 -0
- package/.next/standalone/tower/src/components/board/kanban-board.tsx +169 -0
- package/.next/standalone/tower/src/components/board/project-tabs.tsx +93 -0
- package/.next/standalone/tower/src/components/board/task-card-context-menu.tsx +121 -0
- package/.next/standalone/tower/src/components/board/task-card.tsx +135 -0
- package/.next/standalone/tower/src/components/layout/app-sidebar.tsx +662 -0
- package/.next/standalone/tower/src/components/layout/folder-browser-dialog.tsx +273 -0
- package/.next/standalone/tower/src/components/layout/layout-client.tsx +198 -0
- package/.next/standalone/tower/src/components/layout/search-dialog.tsx +196 -0
- package/.next/standalone/tower/src/components/layout/sub-page-nav.tsx +54 -0
- package/.next/standalone/tower/src/components/layout/top-bar.tsx +265 -0
- package/.next/standalone/tower/src/components/missions/grid-layout-presets.ts +19 -0
- package/.next/standalone/tower/src/components/missions/grid-preset-picker.tsx +209 -0
- package/.next/standalone/tower/src/components/missions/merge-missions.ts +30 -0
- package/.next/standalone/tower/src/components/missions/mission-card.tsx +203 -0
- package/.next/standalone/tower/src/components/missions/task-picker-dialog.tsx +415 -0
- package/.next/standalone/tower/src/components/notes/category-filter.tsx +44 -0
- package/.next/standalone/tower/src/components/notes/note-card.tsx +67 -0
- package/.next/standalone/tower/src/components/notes/note-editor.tsx +28 -0
- package/.next/standalone/tower/src/components/notes/note-list.tsx +30 -0
- package/.next/standalone/tower/src/components/notifications/notification-permission-banner.tsx +49 -0
- package/.next/standalone/tower/src/components/notifications/use-notification-listener.ts +114 -0
- package/.next/standalone/tower/src/components/onboarding/guided-tour.tsx +255 -0
- package/.next/standalone/tower/src/components/onboarding/onboarding-wizard.tsx +84 -0
- package/.next/standalone/tower/src/components/onboarding/wizard-step-cli.tsx +53 -0
- package/.next/standalone/tower/src/components/onboarding/wizard-step-username.tsx +59 -0
- package/.next/standalone/tower/src/components/project/create-project-dialog.tsx +310 -0
- package/.next/standalone/tower/src/components/project/import-project-dialog.tsx +414 -0
- package/.next/standalone/tower/src/components/providers/theme-provider.tsx +8 -0
- package/.next/standalone/tower/src/components/repository/create-branch-dialog.tsx +165 -0
- package/.next/standalone/tower/src/components/repository/git-changes-panel.tsx +294 -0
- package/.next/standalone/tower/src/components/repository/git-log-panel.tsx +83 -0
- package/.next/standalone/tower/src/components/repository/git-stash-panel.tsx +158 -0
- package/.next/standalone/tower/src/components/repository/repo-sidebar.tsx +855 -0
- package/.next/standalone/tower/src/components/settings/cli-adapter-tester.tsx +144 -0
- package/.next/standalone/tower/src/components/settings/settings-page.tsx +2111 -0
- package/.next/standalone/tower/src/components/task/code-editor.tsx +376 -0
- package/.next/standalone/tower/src/components/task/code-search.tsx +219 -0
- package/.next/standalone/tower/src/components/task/diff-editor.tsx +97 -0
- package/.next/standalone/tower/src/components/task/editor-git-panel.tsx +792 -0
- package/.next/standalone/tower/src/components/task/editor-tabs.tsx +68 -0
- package/.next/standalone/tower/src/components/task/execution-timeline.tsx +258 -0
- package/.next/standalone/tower/src/components/task/file-tree-context-menu.tsx +113 -0
- package/.next/standalone/tower/src/components/task/file-tree-node.tsx +269 -0
- package/.next/standalone/tower/src/components/task/file-tree.tsx +575 -0
- package/.next/standalone/tower/src/components/task/preview-panel.tsx +281 -0
- package/.next/standalone/tower/src/components/task/task-detail-panel.tsx +455 -0
- package/.next/standalone/tower/src/components/task/task-diff-view.tsx +207 -0
- package/.next/standalone/tower/src/components/task/task-file-changes.tsx +19 -0
- package/.next/standalone/tower/src/components/task/task-merge-confirm-dialog.tsx +152 -0
- package/.next/standalone/tower/src/components/task/task-metadata.tsx +74 -0
- package/.next/standalone/tower/src/components/task/task-notes-panel.tsx +219 -0
- package/.next/standalone/tower/src/components/task/task-overview-drawer.tsx +172 -0
- package/.next/standalone/tower/src/components/task/task-terminal.tsx +294 -0
- package/.next/standalone/tower/src/components/task/terminal-portal.tsx +156 -0
- package/.next/standalone/tower/src/components/task/types.ts +6 -0
- package/.next/standalone/tower/src/components/ui/avatar.tsx +109 -0
- package/.next/standalone/tower/src/components/ui/badge.tsx +52 -0
- package/.next/standalone/tower/src/components/ui/button.tsx +58 -0
- package/.next/standalone/tower/src/components/ui/card.tsx +103 -0
- package/.next/standalone/tower/src/components/ui/command.tsx +196 -0
- package/.next/standalone/tower/src/components/ui/dialog.tsx +160 -0
- package/.next/standalone/tower/src/components/ui/dropdown-menu.tsx +268 -0
- package/.next/standalone/tower/src/components/ui/empty-state.tsx +26 -0
- package/.next/standalone/tower/src/components/ui/error-boundary.tsx +58 -0
- package/.next/standalone/tower/src/components/ui/input-group.tsx +158 -0
- package/.next/standalone/tower/src/components/ui/input.tsx +20 -0
- package/.next/standalone/tower/src/components/ui/label.tsx +20 -0
- package/.next/standalone/tower/src/components/ui/popover.tsx +90 -0
- package/.next/standalone/tower/src/components/ui/scroll-area.tsx +55 -0
- package/.next/standalone/tower/src/components/ui/segmented-control.tsx +42 -0
- package/.next/standalone/tower/src/components/ui/select.tsx +207 -0
- package/.next/standalone/tower/src/components/ui/separator.tsx +25 -0
- package/.next/standalone/tower/src/components/ui/sheet.tsx +138 -0
- package/.next/standalone/tower/src/components/ui/sonner.tsx +49 -0
- package/.next/standalone/tower/src/components/ui/switch.tsx +32 -0
- package/.next/standalone/tower/src/components/ui/tabs.tsx +82 -0
- package/.next/standalone/tower/src/components/ui/textarea.tsx +18 -0
- package/.next/standalone/tower/src/components/ui/toast.tsx +86 -0
- package/.next/standalone/tower/src/components/ui/tooltip.tsx +66 -0
- package/.next/standalone/tower/src/hooks/sse-event-reducer.ts +144 -0
- package/.next/standalone/tower/src/hooks/use-assistant-chat.ts +190 -0
- package/.next/standalone/tower/src/hooks/use-image-upload.ts +140 -0
- package/.next/standalone/tower/src/instrumentation.ts +18 -0
- package/.next/standalone/tower/src/lib/ai/adapters/cli/claude-cli-adapter.ts +166 -0
- package/.next/standalone/tower/src/lib/ai/capability-resolver.ts +81 -0
- package/.next/standalone/tower/src/lib/ai/provider-registry.ts +54 -0
- package/.next/standalone/tower/src/lib/ai/providers/claude.ts +19 -0
- package/.next/standalone/tower/src/lib/ai/providers/index.ts +12 -0
- package/.next/standalone/tower/src/lib/ai/types.ts +151 -0
- package/.next/standalone/tower/src/lib/assistant-constants.ts +2 -0
- package/.next/standalone/tower/src/lib/assistant-message-converter.ts +131 -0
- package/.next/standalone/tower/src/lib/assistant-sessions.ts +75 -0
- package/.next/standalone/tower/src/lib/build-multimodal-prompt.ts +53 -0
- package/.next/standalone/tower/src/lib/claude-session.ts +156 -0
- package/.next/standalone/tower/src/lib/cli-test.ts +476 -0
- package/.next/standalone/tower/src/lib/config-defaults.ts +121 -0
- package/.next/standalone/tower/src/lib/config-reader.ts +16 -0
- package/.next/standalone/tower/src/lib/constants.ts +26 -0
- package/.next/standalone/tower/src/lib/db.ts +28 -0
- package/.next/standalone/tower/src/lib/diff-parser.ts +132 -0
- package/.next/standalone/tower/src/lib/execution-summary.ts +287 -0
- package/.next/standalone/tower/src/lib/file-serve-client.ts +13 -0
- package/.next/standalone/tower/src/lib/file-serve.ts +32 -0
- package/.next/standalone/tower/src/lib/file-utils.ts +108 -0
- package/.next/standalone/tower/src/lib/fs-security.ts +22 -0
- package/.next/standalone/tower/src/lib/fts.ts +83 -0
- package/.next/standalone/tower/src/lib/git-api.ts +19 -0
- package/.next/standalone/tower/src/lib/git-url.ts +244 -0
- package/.next/standalone/tower/src/lib/i18n/en.ts +754 -0
- package/.next/standalone/tower/src/lib/i18n/types.ts +4 -0
- package/.next/standalone/tower/src/lib/i18n/zh.ts +769 -0
- package/.next/standalone/tower/src/lib/i18n.tsx +64 -0
- package/.next/standalone/tower/src/lib/init-tower.ts +129 -0
- package/.next/standalone/tower/src/lib/instrumentation-tasks.ts +116 -0
- package/.next/standalone/tower/src/lib/internal-api-guard.ts +63 -0
- package/.next/standalone/tower/src/lib/logger.ts +46 -0
- package/.next/standalone/tower/src/lib/mime-magic.ts +67 -0
- package/.next/standalone/tower/src/lib/platform.ts +518 -0
- package/.next/standalone/tower/src/lib/preview-process.ts +40 -0
- package/.next/standalone/tower/src/lib/pty/pty-session.ts +157 -0
- package/.next/standalone/tower/src/lib/pty/session-store.ts +67 -0
- package/.next/standalone/tower/src/lib/pty/ws-server.ts +335 -0
- package/.next/standalone/tower/src/lib/schemas.ts +67 -0
- package/.next/standalone/tower/src/lib/search.ts +225 -0
- package/.next/standalone/tower/src/lib/terminal-link-provider.ts +90 -0
- package/.next/standalone/tower/src/lib/tower-dir.ts +69 -0
- package/.next/standalone/tower/src/lib/utils.ts +20 -0
- package/.next/standalone/tower/src/lib/worktree.ts +184 -0
- package/.next/standalone/tower/src/mcp/db.ts +11 -0
- package/.next/standalone/tower/src/mcp/index.ts +15 -0
- package/.next/standalone/tower/src/mcp/server.ts +52 -0
- package/.next/standalone/tower/src/mcp/tools/knowledge-tools.ts +100 -0
- package/.next/standalone/tower/src/mcp/tools/label-tools.ts +70 -0
- package/.next/standalone/tower/src/mcp/tools/note-asset-tools.ts +271 -0
- package/.next/standalone/tower/src/mcp/tools/project-tools.ts +79 -0
- package/.next/standalone/tower/src/mcp/tools/report-tools.ts +214 -0
- package/.next/standalone/tower/src/mcp/tools/search-tools.ts +32 -0
- package/.next/standalone/tower/src/mcp/tools/task-tools.ts +250 -0
- package/.next/standalone/tower/src/mcp/tools/terminal-tools.ts +154 -0
- package/.next/standalone/tower/src/mcp/tools/workspace-tools.ts +73 -0
- package/.next/standalone/tower/src/stores/board-store.ts +46 -0
- package/.next/standalone/tower/src/stores/task-execution-store.ts +41 -0
- package/.next/standalone/tower/src/types/index.ts +36 -0
- package/.next/standalone/tower/tests/e2e/chat-flow.spec.ts +249 -0
- package/.next/standalone/tower/tests/e2e/notes-assets.spec.ts +287 -0
- package/.next/standalone/tower/tests/e2e/search.spec.ts +186 -0
- package/.next/standalone/tower/tests/e2e/settings-flow.spec.ts +250 -0
- package/.next/standalone/tower/tests/e2e/settings.spec.ts +261 -0
- package/.next/standalone/tower/tests/e2e/smoke.spec.ts +317 -0
- package/.next/standalone/tower/tests/e2e/task-flow.spec.ts +287 -0
- package/.next/standalone/tower/tests/e2e/workbench.spec.ts +307 -0
- package/.next/standalone/tower/tests/setup.ts +15 -0
- package/.next/standalone/tower/tests/unit/actions/agent-actions.test.ts +157 -0
- package/.next/standalone/tower/tests/unit/actions/config-actions.test.ts +170 -0
- package/.next/standalone/tower/tests/unit/actions/file-actions.test.ts +283 -0
- package/.next/standalone/tower/tests/unit/actions/git-actions.test.ts +34 -0
- package/.next/standalone/tower/tests/unit/actions/preview-actions.test.ts +177 -0
- package/.next/standalone/tower/tests/unit/actions/search-actions.test.ts +358 -0
- package/.next/standalone/tower/tests/unit/actions/task-actions.test.ts +173 -0
- package/.next/standalone/tower/tests/unit/api/diff-route.test.ts +9 -0
- package/.next/standalone/tower/tests/unit/api/file-serving.test.ts +88 -0
- package/.next/standalone/tower/tests/unit/api/merge-route.test.ts +9 -0
- package/.next/standalone/tower/tests/unit/api/stream-persist-result.test.ts +7 -0
- package/.next/standalone/tower/tests/unit/api/stream-send-back.test.ts +7 -0
- package/.next/standalone/tower/tests/unit/components/asset-item.test.tsx +105 -0
- package/.next/standalone/tower/tests/unit/components/asset-list.test.tsx +51 -0
- package/.next/standalone/tower/tests/unit/components/assets/asset-upload.test.tsx +70 -0
- package/.next/standalone/tower/tests/unit/components/board-stats.test.tsx +32 -0
- package/.next/standalone/tower/tests/unit/components/category-filter.test.tsx +58 -0
- package/.next/standalone/tower/tests/unit/components/cli-adapter-tester.test.tsx +160 -0
- package/.next/standalone/tower/tests/unit/components/create-task-dialog.test.tsx +162 -0
- package/.next/standalone/tower/tests/unit/components/file-tree.test.tsx +172 -0
- package/.next/standalone/tower/tests/unit/components/note-card.test.tsx +71 -0
- package/.next/standalone/tower/tests/unit/components/note-editor.test.tsx +39 -0
- package/.next/standalone/tower/tests/unit/components/prompts-config.test.tsx +200 -0
- package/.next/standalone/tower/tests/unit/components/search-dialog.test.tsx +223 -0
- package/.next/standalone/tower/tests/unit/components/system-config.test.tsx +32 -0
- package/.next/standalone/tower/tests/unit/hooks/hook-registration.test.ts +89 -0
- package/.next/standalone/tower/tests/unit/hooks/stop-hook.test.ts +108 -0
- package/.next/standalone/tower/tests/unit/lib/asset-actions.test.ts +257 -0
- package/.next/standalone/tower/tests/unit/lib/file-utils.test.ts +102 -0
- package/.next/standalone/tower/tests/unit/lib/fs-security.test.ts +34 -0
- package/.next/standalone/tower/tests/unit/lib/fts.test.ts +214 -0
- package/.next/standalone/tower/tests/unit/lib/git-url.test.ts +258 -0
- package/.next/standalone/tower/tests/unit/lib/instrumentation.test.ts +86 -0
- package/.next/standalone/tower/tests/unit/lib/local-path-to-api-url.test.ts +40 -0
- package/.next/standalone/tower/tests/unit/lib/mime-magic.test.ts +95 -0
- package/.next/standalone/tower/tests/unit/lib/note-actions.test.ts +296 -0
- package/.next/standalone/tower/tests/unit/lib/preview-process-manager.test.ts +107 -0
- package/.next/standalone/tower/tests/unit/lib/process-manager.test.ts +10 -0
- package/.next/standalone/tower/tests/unit/lib/pty-session.test.ts +171 -0
- package/.next/standalone/tower/tests/unit/lib/search.test.ts +289 -0
- package/.next/standalone/tower/tests/unit/lib/session-store.test.ts +111 -0
- package/.next/standalone/tower/tests/unit/lib/utils.test.ts +33 -0
- package/.next/standalone/tower/tests/unit/lib/worktree.test.ts +190 -0
- package/.next/standalone/tower/tests/unit/mcp/identify-project.test.ts +217 -0
- package/.next/standalone/tower/tests/unit/mcp/manage-assets.test.ts +199 -0
- package/.next/standalone/tower/tests/unit/mcp/manage-notes.test.ts +304 -0
- package/.next/standalone/tower/tests/unit/mcp/search-tools.test.ts +186 -0
- package/.next/standalone/tower/tests/unit/missions-merge.test.ts +43 -0
- package/.next/standalone/tower/tower-studio-0.1.1.tgz +0 -0
- package/.next/standalone/tower/tsconfig.json +34 -0
- package/.next/standalone/tower/vitest.config.ts +17 -0
- package/.next/static/chunks/024pdsc27tjdd.js +5 -0
- package/.next/static/chunks/02dd83gbiv778.js +1 -0
- package/.next/static/chunks/0b6us7uq72u-d.js +1 -0
- package/.next/static/chunks/0drgc-oztq6o-.css +1 -0
- package/.next/static/chunks/0gb82g.6g90mn.js +1 -0
- package/.next/static/chunks/0gnm22yv~f54b.js +1 -0
- package/.next/static/chunks/0lnhjf2a~jaco.js +83 -0
- package/.next/static/chunks/0t16ai99uv4j3.js +1 -0
- package/.next/static/chunks/0xzdu87n_for1.js +5 -0
- package/.next/static/chunks/0y0tdl.rl6v1u.js +1 -0
- package/.next/static/chunks/0z4y0x1ifgy.e.js +1 -0
- package/.next/static/chunks/102ijqpvi0z-d.js +1 -0
- package/.next/static/chunks/11_e3-j5gzbj4.js +1 -0
- package/.next/static/chunks/14.ims4y7osot.js +1 -0
- package/.next/static/chunks/169po6_~f3-d5.js +1 -0
- package/.next/static/chunks/176n7f13ve~a9.js +1 -0
- package/bin/tower.mjs +15 -5
- package/next.config.ts +8 -1
- package/package.json +4 -4
- package/.next/BUILD_ID +0 -1
- package/.next/app-path-routes-manifest.json +0 -41
- package/.next/build/chunks/0kjx__pnpm_05m.mc_._.js +0 -6681
- package/.next/build/chunks/[root-of-the-server]__0a5dngl._.js +0 -206
- package/.next/build/chunks/[root-of-the-server]__13e2v6w._.js +0 -500
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0y_r.ay._.js +0 -13
- package/.next/build/chunks/[turbopack]_runtime.js +0 -890
- package/.next/build/package.json +0 -1
- package/.next/build/postcss.js +0 -6
- package/.next/build-manifest.json +0 -22
- package/.next/cache/.previewinfo +0 -1
- package/.next/cache/.rscinfo +0 -1
- package/.next/cache/.tsbuildinfo +0 -1
- package/.next/diagnostics/build-diagnostics.json +0 -6
- package/.next/diagnostics/framework.json +0 -1
- package/.next/diagnostics/route-bundle-stats.json +0 -299
- package/.next/export-marker.json +0 -6
- package/.next/fallback-build-manifest.json +0 -13
- package/.next/images-manifest.json +0 -68
- package/.next/next-minimal-server.js.nft.json +0 -1
- package/.next/next-server.js.nft.json +0 -1
- package/.next/package.json +0 -1
- package/.next/prerender-manifest.json +0 -278
- package/.next/required-server-files.js +0 -339
- package/.next/required-server-files.json +0 -339
- package/.next/routes-manifest.json +0 -312
- package/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
- package/.next/server/app/_global-error/page/build-manifest.json +0 -18
- package/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
- package/.next/server/app/_global-error/page.js +0 -12
- package/.next/server/app/_global-error/page.js.nft.json +0 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +0 -3
- package/.next/server/app/_global-error.html +0 -1
- package/.next/server/app/_global-error.meta +0 -15
- package/.next/server/app/_global-error.rsc +0 -15
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +0 -5
- package/.next/server/app/_global-error.segments/_full.segment.rsc +0 -15
- package/.next/server/app/_global-error.segments/_head.segment.rsc +0 -6
- package/.next/server/app/_global-error.segments/_index.segment.rsc +0 -5
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +0 -1
- package/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
- package/.next/server/app/_not-found/page/build-manifest.json +0 -18
- package/.next/server/app/_not-found/page/next-font-manifest.json +0 -11
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/_not-found/page/server-reference-manifest.json +0 -233
- package/.next/server/app/_not-found/page.js +0 -20
- package/.next/server/app/_not-found/page.js.nft.json +0 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +0 -3
- package/.next/server/app/_not-found.html +0 -1
- package/.next/server/app/_not-found.meta +0 -16
- package/.next/server/app/_not-found.rsc +0 -24
- package/.next/server/app/_not-found.segments/_full.segment.rsc +0 -24
- package/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
- package/.next/server/app/_not-found.segments/_index.segment.rsc +0 -12
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -5
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -5
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -4
- package/.next/server/app/api/adapters/test/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/adapters/test/route/build-manifest.json +0 -9
- package/.next/server/app/api/adapters/test/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/adapters/test/route.js +0 -9
- package/.next/server/app/api/adapters/test/route.js.nft.json +0 -1
- package/.next/server/app/api/adapters/test/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/browse-fs/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/browse-fs/route/build-manifest.json +0 -9
- package/.next/server/app/api/browse-fs/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/browse-fs/route.js +0 -7
- package/.next/server/app/api/browse-fs/route.js.nft.json +0 -1
- package/.next/server/app/api/browse-fs/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/files/assets/[projectId]/[filename]/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/files/assets/[projectId]/[filename]/route/build-manifest.json +0 -9
- package/.next/server/app/api/files/assets/[projectId]/[filename]/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/files/assets/[projectId]/[filename]/route.js +0 -7
- package/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +0 -1
- package/.next/server/app/api/files/assets/[projectId]/[filename]/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/git/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/git/route/build-manifest.json +0 -9
- package/.next/server/app/api/git/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/git/route.js +0 -8
- package/.next/server/app/api/git/route.js.nft.json +0 -1
- package/.next/server/app/api/git/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/assets/[projectId]/[filename]/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/assets/[projectId]/[filename]/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/assets/[projectId]/[filename]/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js +0 -7
- package/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/assets/[projectId]/[filename]/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/assets/reveal/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/assets/reveal/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/assets/reveal/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/assets/reveal/route.js +0 -7
- package/.next/server/app/api/internal/assets/reveal/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/assets/reveal/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/assistant/chat/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/assistant/chat/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/assistant/chat/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/assistant/chat/route.js +0 -7
- package/.next/server/app/api/internal/assistant/chat/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/assistant/chat/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/assistant/images/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/assistant/images/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/assistant/images/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/assistant/images/route.js +0 -9
- package/.next/server/app/api/internal/assistant/images/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/assistant/images/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/assistant/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/assistant/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/assistant/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/assistant/route.js +0 -7
- package/.next/server/app/api/internal/assistant/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/assistant/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/assistant/sessions/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/assistant/sessions/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/assistant/sessions/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/assistant/sessions/route.js +0 -7
- package/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/assistant/sessions/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/cache/[...segments]/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/cache/[...segments]/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/cache/[...segments]/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/cache/[...segments]/route.js +0 -7
- package/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/cache/[...segments]/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/hooks/install/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/hooks/install/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/hooks/install/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/hooks/install/route.js +0 -7
- package/.next/server/app/api/internal/hooks/install/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/hooks/install/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/hooks/session/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/hooks/session/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/hooks/session/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/hooks/session/route.js +0 -7
- package/.next/server/app/api/internal/hooks/session/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/hooks/session/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/hooks/stop/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/hooks/stop/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/hooks/stop/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/hooks/stop/route.js +0 -8
- package/.next/server/app/api/internal/hooks/stop/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/hooks/stop/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/hooks/upload/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/hooks/upload/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/hooks/upload/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/hooks/upload/route.js +0 -7
- package/.next/server/app/api/internal/hooks/upload/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/hooks/upload/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/notifications/pending/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/notifications/pending/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/notifications/pending/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/notifications/pending/route.js +0 -7
- package/.next/server/app/api/internal/notifications/pending/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/notifications/pending/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/terminal/[taskId]/buffer/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/terminal/[taskId]/buffer/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/terminal/[taskId]/buffer/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js +0 -8
- package/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/terminal/[taskId]/buffer/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/terminal/[taskId]/input/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/terminal/[taskId]/input/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/terminal/[taskId]/input/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/terminal/[taskId]/input/route.js +0 -8
- package/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/terminal/[taskId]/input/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/internal/terminal/[taskId]/start/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/internal/terminal/[taskId]/start/route/build-manifest.json +0 -9
- package/.next/server/app/api/internal/terminal/[taskId]/start/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/internal/terminal/[taskId]/start/route.js +0 -10
- package/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +0 -1
- package/.next/server/app/api/internal/terminal/[taskId]/start/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/tasks/[taskId]/diff/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/tasks/[taskId]/diff/route/build-manifest.json +0 -9
- package/.next/server/app/api/tasks/[taskId]/diff/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/tasks/[taskId]/diff/route.js +0 -8
- package/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +0 -1
- package/.next/server/app/api/tasks/[taskId]/diff/route_client-reference-manifest.js +0 -3
- package/.next/server/app/api/tasks/[taskId]/merge/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/tasks/[taskId]/merge/route/build-manifest.json +0 -9
- package/.next/server/app/api/tasks/[taskId]/merge/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/tasks/[taskId]/merge/route.js +0 -9
- package/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +0 -1
- package/.next/server/app/api/tasks/[taskId]/merge/route_client-reference-manifest.js +0 -3
- package/.next/server/app/apple-icon.png/route/app-paths-manifest.json +0 -3
- package/.next/server/app/apple-icon.png/route/build-manifest.json +0 -9
- package/.next/server/app/apple-icon.png/route.js +0 -8
- package/.next/server/app/apple-icon.png/route.js.nft.json +0 -1
- package/.next/server/app/apple-icon.png.meta +0 -1
- package/.next/server/app/favicon.ico/route/app-paths-manifest.json +0 -3
- package/.next/server/app/favicon.ico/route/build-manifest.json +0 -9
- package/.next/server/app/favicon.ico/route.js +0 -8
- package/.next/server/app/favicon.ico/route.js.nft.json +0 -1
- package/.next/server/app/favicon.ico.meta +0 -1
- package/.next/server/app/icon0.svg/route/app-paths-manifest.json +0 -3
- package/.next/server/app/icon0.svg/route/build-manifest.json +0 -9
- package/.next/server/app/icon0.svg/route.js +0 -8
- package/.next/server/app/icon0.svg/route.js.nft.json +0 -1
- package/.next/server/app/icon0.svg.meta +0 -1
- package/.next/server/app/icon1.png/route/app-paths-manifest.json +0 -3
- package/.next/server/app/icon1.png/route/build-manifest.json +0 -9
- package/.next/server/app/icon1.png/route.js +0 -8
- package/.next/server/app/icon1.png/route.js.nft.json +0 -1
- package/.next/server/app/icon1.png.meta +0 -1
- package/.next/server/app/index.html +0 -1
- package/.next/server/app/index.meta +0 -16
- package/.next/server/app/index.rsc +0 -25
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -6
- package/.next/server/app/index.segments/_full.segment.rsc +0 -25
- package/.next/server/app/index.segments/_head.segment.rsc +0 -6
- package/.next/server/app/index.segments/_index.segment.rsc +0 -12
- package/.next/server/app/index.segments/_tree.segment.rsc +0 -6
- package/.next/server/app/manifest.json/route/app-paths-manifest.json +0 -3
- package/.next/server/app/manifest.json/route/build-manifest.json +0 -9
- package/.next/server/app/manifest.json/route.js +0 -7
- package/.next/server/app/manifest.json/route.js.nft.json +0 -1
- package/.next/server/app/manifest.json.meta +0 -1
- package/.next/server/app/missions/page/app-paths-manifest.json +0 -3
- package/.next/server/app/missions/page/build-manifest.json +0 -18
- package/.next/server/app/missions/page/next-font-manifest.json +0 -11
- package/.next/server/app/missions/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/missions/page/server-reference-manifest.json +0 -401
- package/.next/server/app/missions/page.js +0 -22
- package/.next/server/app/missions/page.js.nft.json +0 -1
- package/.next/server/app/missions/page_client-reference-manifest.js +0 -3
- package/.next/server/app/onboarding/page/app-paths-manifest.json +0 -3
- package/.next/server/app/onboarding/page/build-manifest.json +0 -18
- package/.next/server/app/onboarding/page/next-font-manifest.json +0 -11
- package/.next/server/app/onboarding/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/onboarding/page/server-reference-manifest.json +0 -233
- package/.next/server/app/onboarding/page.js +0 -21
- package/.next/server/app/onboarding/page.js.nft.json +0 -1
- package/.next/server/app/onboarding/page_client-reference-manifest.js +0 -3
- package/.next/server/app/onboarding.html +0 -1
- package/.next/server/app/onboarding.meta +0 -15
- package/.next/server/app/onboarding.rsc +0 -30
- package/.next/server/app/onboarding.segments/_full.segment.rsc +0 -30
- package/.next/server/app/onboarding.segments/_head.segment.rsc +0 -6
- package/.next/server/app/onboarding.segments/_index.segment.rsc +0 -12
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +0 -6
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +0 -5
- package/.next/server/app/page/app-paths-manifest.json +0 -3
- package/.next/server/app/page/build-manifest.json +0 -18
- package/.next/server/app/page/next-font-manifest.json +0 -11
- package/.next/server/app/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/page/server-reference-manifest.json +0 -233
- package/.next/server/app/page.js +0 -21
- package/.next/server/app/page.js.nft.json +0 -1
- package/.next/server/app/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings/page/app-paths-manifest.json +0 -3
- package/.next/server/app/settings/page/build-manifest.json +0 -18
- package/.next/server/app/settings/page/next-font-manifest.json +0 -11
- package/.next/server/app/settings/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/settings/page/server-reference-manifest.json +0 -341
- package/.next/server/app/settings/page.js +0 -21
- package/.next/server/app/settings/page.js.nft.json +0 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +0 -3
- package/.next/server/app/settings.html +0 -1
- package/.next/server/app/settings.meta +0 -15
- package/.next/server/app/settings.rsc +0 -30
- package/.next/server/app/settings.segments/_full.segment.rsc +0 -30
- package/.next/server/app/settings.segments/_head.segment.rsc +0 -6
- package/.next/server/app/settings.segments/_index.segment.rsc +0 -12
- package/.next/server/app/settings.segments/_tree.segment.rsc +0 -6
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +0 -9
- package/.next/server/app/settings.segments/settings.segment.rsc +0 -5
- package/.next/server/app/workspaces/[workspaceId]/archive/page/app-paths-manifest.json +0 -3
- package/.next/server/app/workspaces/[workspaceId]/archive/page/build-manifest.json +0 -18
- package/.next/server/app/workspaces/[workspaceId]/archive/page/next-font-manifest.json +0 -11
- package/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +0 -497
- package/.next/server/app/workspaces/[workspaceId]/archive/page.js +0 -21
- package/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +0 -1
- package/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +0 -3
- package/.next/server/app/workspaces/[workspaceId]/assets/page/app-paths-manifest.json +0 -3
- package/.next/server/app/workspaces/[workspaceId]/assets/page/build-manifest.json +0 -18
- package/.next/server/app/workspaces/[workspaceId]/assets/page/next-font-manifest.json +0 -11
- package/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +0 -461
- package/.next/server/app/workspaces/[workspaceId]/assets/page.js +0 -21
- package/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +0 -1
- package/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +0 -3
- package/.next/server/app/workspaces/[workspaceId]/notes/page/app-paths-manifest.json +0 -3
- package/.next/server/app/workspaces/[workspaceId]/notes/page/build-manifest.json +0 -18
- package/.next/server/app/workspaces/[workspaceId]/notes/page/next-font-manifest.json +0 -11
- package/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +0 -401
- package/.next/server/app/workspaces/[workspaceId]/notes/page.js +0 -21
- package/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +0 -1
- package/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +0 -3
- package/.next/server/app/workspaces/[workspaceId]/page/app-paths-manifest.json +0 -3
- package/.next/server/app/workspaces/[workspaceId]/page/build-manifest.json +0 -18
- package/.next/server/app/workspaces/[workspaceId]/page/next-font-manifest.json +0 -11
- package/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +0 -569
- package/.next/server/app/workspaces/[workspaceId]/page.js +0 -22
- package/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +0 -1
- package/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +0 -3
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/app-paths-manifest.json +0 -3
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/build-manifest.json +0 -18
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/next-font-manifest.json +0 -11
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +0 -233
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +0 -21
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +0 -1
- package/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +0 -3
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/app-paths-manifest.json +0 -3
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/build-manifest.json +0 -18
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/next-font-manifest.json +0 -11
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +0 -22
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +0 -581
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +0 -23
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +0 -1
- package/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +0 -3
- package/.next/server/app/workspaces/page/app-paths-manifest.json +0 -3
- package/.next/server/app/workspaces/page/build-manifest.json +0 -18
- package/.next/server/app/workspaces/page/next-font-manifest.json +0 -11
- package/.next/server/app/workspaces/page/react-loadable-manifest.json +0 -16
- package/.next/server/app/workspaces/page/server-reference-manifest.json +0 -329
- package/.next/server/app/workspaces/page.js +0 -21
- package/.next/server/app/workspaces/page.js.nft.json +0 -1
- package/.next/server/app/workspaces/page_client-reference-manifest.js +0 -3
- package/.next/server/app-paths-manifest.json +0 -41
- package/.next/server/chunks/03j-_@anthropic-ai_claude-agent-sdk_sdk_mjs_04597t~._.js +0 -85
- package/.next/server/chunks/0cve_next-internal_server_app_api_internal_cache_[___segments]_route_actions_09n1sa3.js +0 -3
- package/.next/server/chunks/0tp-_server_app_api_files_assets_[projectId]_[filename]_route_actions_02i2urs.js +0 -3
- package/.next/server/chunks/0tp-_server_app_api_internal_assets_[projectId]_[filename]_route_actions_0kjz576.js +0 -3
- package/.next/server/chunks/0tp-_server_app_api_internal_notifications_pending_route_actions_08bx38r.js +0 -3
- package/.next/server/chunks/0tp-_server_app_api_internal_terminal_[taskId]_buffer_route_actions_0bpyf5x.js +0 -3
- package/.next/server/chunks/0tp-_server_app_api_internal_terminal_[taskId]_input_route_actions_0alu32r.js +0 -3
- package/.next/server/chunks/0tp-_server_app_api_internal_terminal_[taskId]_start_route_actions_0swqog2.js +0 -3
- package/.next/server/chunks/0w1v_zod_v4_classic_external_0m-7hz_.js +0 -39
- package/.next/server/chunks/0~.g__next-internal_server_app_api_internal_assistant_chat_route_actions_0x-qbrh.js +0 -3
- package/.next/server/chunks/0~.g__next-internal_server_app_api_internal_assistant_images_route_actions_0vws40t.js +0 -3
- package/.next/server/chunks/0~.g__next-internal_server_app_api_internal_assistant_sessions_route_actions_0p09rcp.js +0 -3
- package/.next/server/chunks/10ge_next_dist_08.3req._.js +0 -13
- package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_00gmiw_.js +0 -3
- package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_0jwpolf.js +0 -3
- package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_0liabcf.js +0 -3
- package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_0z9_0_i.js +0 -3
- package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_13w3ubu.js +0 -3
- package/.next/server/chunks/10ge_next_dist_esm_build_templates_app-route_13~vb_i.js +0 -4
- package/.next/server/chunks/[externals]__02xkqim._.js +0 -3
- package/.next/server/chunks/[externals]__09oeovy._.js +0 -3
- package/.next/server/chunks/[externals]__0~rg.xo._.js +0 -3
- package/.next/server/chunks/[externals]__11rejr-._.js +0 -3
- package/.next/server/chunks/[externals]_child_process_0pwkpv9._.js +0 -3
- package/.next/server/chunks/[externals]_next_dist_0g2nsos._.js +0 -3
- package/.next/server/chunks/[externals]_util_0wtvqkc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__02p-gd5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0319djr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__043lk8~._.js +0 -4
- package/.next/server/chunks/[root-of-the-server]__053y9tf._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__05pxb~w._.js +0 -20
- package/.next/server/chunks/[root-of-the-server]__07-am_7._.js +0 -20
- package/.next/server/chunks/[root-of-the-server]__09gjz6h._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0_irb2s._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0c4edwt._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0c7y1r0._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0dj34zn._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0dqta7g._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0j3gbp7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ko_rm_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0miy2g.._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0mt-eeb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0n-6-hc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0nur_ir._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0pz60q-._.js +0 -20
- package/.next/server/chunks/[root-of-the-server]__0q~5ya5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0rpqx55._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0sjsc63._.js +0 -4
- package/.next/server/chunks/[root-of-the-server]__0th.w7w._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0u..agy._.js +0 -11
- package/.next/server/chunks/[root-of-the-server]__0umzekq._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wu61w.._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11v.yk_._.js +0 -4
- package/.next/server/chunks/[root-of-the-server]__12._zd-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__130shf~._.js +0 -3
- package/.next/server/chunks/[turbopack]_runtime.js +0 -903
- package/.next/server/chunks/ssr/03j-_@anthropic-ai_claude-agent-sdk_sdk_mjs_0kr2_y.._.js +0 -84
- package/.next/server/chunks/ssr/040e_@monaco-editor_react_dist_index_mjs_0t4i-ho._.js +0 -3
- package/.next/server/chunks/ssr/040e_@monaco-editor_react_dist_index_mjs_0z6t1fr._.js +0 -3
- package/.next/server/chunks/ssr/0kjx__pnpm_0g9g8h6._.js +0 -3
- package/.next/server/chunks/ssr/0kjx__pnpm_0l.5ii.._.js +0 -3
- package/.next/server/chunks/ssr/0kjx__pnpm_0wrn.h9._.js +0 -14
- package/.next/server/chunks/ssr/0rik_@dnd-kit_core_dist_core_esm_11giptg.js +0 -3
- package/.next/server/chunks/ssr/0~.g_src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_0bbseig._.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_00.-vj.._.js +0 -18
- package/.next/server/chunks/ssr/10ge_next_dist_01n~t8z._.js +0 -6
- package/.next/server/chunks/ssr/10ge_next_dist_06_-w96._.js +0 -19
- package/.next/server/chunks/ssr/10ge_next_dist_0pw4my6._.js +0 -6
- package/.next/server/chunks/ssr/10ge_next_dist_0wjbiu9._.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_dist_0~ti7jc._.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_dist_10.ihny._.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_dist_client_components_0--gzcy._.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_dist_client_components_0eil7-a._.js +0 -33
- package/.next/server/chunks/ssr/10ge_next_dist_client_components_builtin_forbidden_0nzsnb2.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_dist_client_components_builtin_global-error_125sopd.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_dist_client_components_builtin_unauthorized_0z93cpe.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_dist_compiled_0g45ze2._.js +0 -3
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_080g02v.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_08khzah.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_09~o5q0.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0_rj_f4.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0c-wmj1.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0fjd2ua.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0hpuyf0.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0knnyic.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0oi86k6.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0rmwdra.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_0zgisbd.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_11pz1fw.js +0 -4
- package/.next/server/chunks/ssr/10ge_next_dist_esm_build_templates_app-page_12reczc.js +0 -4
- package/.next/server/chunks/ssr/119e_lucide-react_dist_esm_icons_0636jyq._.js +0 -3
- package/.next/server/chunks/ssr/[externals]__0of4r_r._.js +0 -3
- package/.next/server/chunks/ssr/[externals]__0z1ffhu._.js +0 -3
- package/.next/server/chunks/ssr/[externals]_child_process_0pwkpv9._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0-0j_z3._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0.8y0n9._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0.uoh7q._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__01ws4-7._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__024-5kd._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__02ipahf._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__03.14vw._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__04xn50b._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__05452ke._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__06o5v8i._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__06sm5cw._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__09m32ch._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0_0kxz4._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0adx8p4._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__0bk3s4l._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0d5p5d.._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__0d7u1lw._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0deh_.r._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0fg8.hp._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0gsj3~.._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__0h44~z8._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0i6glcp._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__0ibsor_._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0iluaa1._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0j5~a_o._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0jgbj6l._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0jux8~h._.js +0 -33
- package/.next/server/chunks/ssr/[root-of-the-server]__0l~dc3x._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0n32nv5._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__0n8qufu._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ndt9h3._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0p~u4y6._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0q.du4s._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0rs7pkn._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0sysz2q._.js +0 -47
- package/.next/server/chunks/ssr/[root-of-the-server]__0t25~v8._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ti70do._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0uevudp._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__0wwqzmm._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0xt3-qb._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0y-lkvf._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0zvf.ro._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__11m7m-q._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1223b0_._.js +0 -30
- package/.next/server/chunks/ssr/[root-of-the-server]__12f810l._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__13-by9r._.js +0 -33
- package/.next/server/chunks/ssr/[root-of-the-server]__13-egel._.js +0 -3
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -903
- package/.next/server/chunks/ssr/tower_0-nwtka._.js +0 -3
- package/.next/server/chunks/ssr/tower_0-omr_b._.js +0 -30
- package/.next/server/chunks/ssr/tower_01szasw._.js +0 -3
- package/.next/server/chunks/ssr/tower_035l~qv._.js +0 -3
- package/.next/server/chunks/ssr/tower_03jazku._.js +0 -3
- package/.next/server/chunks/ssr/tower_0d.car1._.js +0 -30
- package/.next/server/chunks/ssr/tower_0egtw-7._.js +0 -30
- package/.next/server/chunks/ssr/tower_0h2g2_e._.js +0 -3
- package/.next/server/chunks/ssr/tower_0h3r32m._.js +0 -30
- package/.next/server/chunks/ssr/tower_0j.-goc._.js +0 -3
- package/.next/server/chunks/ssr/tower_0kl_bfy._.js +0 -7
- package/.next/server/chunks/ssr/tower_0mocaf7._.js +0 -3
- package/.next/server/chunks/ssr/tower_0mz4ut.._.js +0 -3
- package/.next/server/chunks/ssr/tower_0nuj.0p._.js +0 -39
- package/.next/server/chunks/ssr/tower_0pcqezm._.js +0 -3
- package/.next/server/chunks/ssr/tower_0r7uuim._.js +0 -30
- package/.next/server/chunks/ssr/tower_0sojjnu._.js +0 -3
- package/.next/server/chunks/ssr/tower_0tc~.xl._.js +0 -30
- package/.next/server/chunks/ssr/tower_0tuq2iz._.js +0 -30
- package/.next/server/chunks/ssr/tower_0txw7ny._.js +0 -3
- package/.next/server/chunks/ssr/tower_0wvk~r.._.js +0 -3
- package/.next/server/chunks/ssr/tower_0x1wfcs._.js +0 -3
- package/.next/server/chunks/ssr/tower_10p15te._.js +0 -3
- package/.next/server/chunks/ssr/tower_10t13p4._.js +0 -6
- package/.next/server/chunks/ssr/tower_117pzh8._.js +0 -3
- package/.next/server/chunks/ssr/tower_11f_poc._.js +0 -3
- package/.next/server/chunks/ssr/tower_11q5_.m._.js +0 -3
- package/.next/server/chunks/ssr/tower_138qlx5._.js +0 -3
- package/.next/server/chunks/ssr/tower__next-internal_server_app__global-error_page_actions_13t5~qk.js +0 -3
- package/.next/server/chunks/ssr/tower_src_0u.-h7b._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_actions_agent-actions_ts_0j.e1tn._.js +0 -4
- package/.next/server/chunks/ssr/tower_src_actions_file-actions_ts_0424lna._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_app_missions_missions-client_tsx_0a9vjyr._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_app_onboarding_page_tsx_0_3krz1._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_app_settings_page_tsx_0vo5e-o._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0zfgzhi._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_app_workspaces_[workspaceId]_board-page-client_tsx_0kjp1u0._.js +0 -7
- package/.next/server/chunks/ssr/tower_src_components_ui_select_tsx_10ajx~2._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_lib_01420_4._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_lib_0i-zjpa._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_lib_0ja~kdb._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_lib_0obw2r8._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_lib_0rgfsuf._.js +0 -3
- package/.next/server/chunks/ssr/tower_src_lib_constants_ts_0o218_c._.js +0 -3
- package/.next/server/chunks/tower_03g~ktv._.js +0 -7
- package/.next/server/chunks/tower_05du07.._.js +0 -10
- package/.next/server/chunks/tower_0a-x6m.._.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_adapters_test_route_actions_13jw~9b.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_browse-fs_route_actions_0k5p2xy.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_git_route_actions_0rvpodb.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_internal_assets_reveal_route_actions_0idwm6j.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_internal_assistant_route_actions_0rdz1d..js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_internal_hooks_install_route_actions_06dxleu.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_internal_hooks_session_route_actions_0wlv4lf.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_internal_hooks_stop_route_actions_101_oub.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_internal_hooks_upload_route_actions_0439qz_.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_tasks_[taskId]_diff_route_actions_0nthc84.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_api_tasks_[taskId]_merge_route_actions_0g.x0nb.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_apple-icon_png_route_actions_0bni-sb.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_favicon_ico_route_actions_0kw~xj2.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_icon0_svg_route_actions_0nww9-e.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_icon1_png_route_actions_09h.ywu.js +0 -3
- package/.next/server/chunks/tower__next-internal_server_app_manifest_json_route_actions_080ob~r.js +0 -3
- package/.next/server/chunks/tower_src_0..vg-t._.js +0 -3
- package/.next/server/chunks/tower_src_05rqj.1._.js +0 -3
- package/.next/server/chunks/tower_src_lib_0uok6j3._.js +0 -3
- package/.next/server/chunks/tower_src_lib_0w8qt4s._.js +0 -3
- package/.next/server/chunks/tower_src_lib_constants_ts_0cxd4.p._.js +0 -3
- package/.next/server/edge/chunks/0y9m_next_dist_esm_build_templates_edge-wrapper_0cx_eo..js +0 -3
- package/.next/server/edge/chunks/tower_0wvfs38._.js +0 -3
- package/.next/server/functions-config-manifest.json +0 -22
- package/.next/server/instrumentation/middleware-manifest.json +0 -12
- package/.next/server/instrumentation.js +0 -4
- package/.next/server/instrumentation.js.nft.json +0 -1
- package/.next/server/interception-route-rewrite-manifest.js +0 -1
- package/.next/server/middleware-build-manifest.js +0 -22
- package/.next/server/middleware-manifest.json +0 -6
- package/.next/server/next-font-manifest.js +0 -1
- package/.next/server/next-font-manifest.json +0 -55
- package/.next/server/pages/404.html +0 -1
- package/.next/server/pages/500.html +0 -1
- package/.next/server/pages-manifest.json +0 -4
- package/.next/server/prefetch-hints.json +0 -1
- package/.next/server/server-reference-manifest.js +0 -1
- package/.next/server/server-reference-manifest.json +0 -2778
- package/.next/static/chunks/023~s6crmvsm8.js +0 -1
- package/.next/static/chunks/051mi_101oh.a.js +0 -1
- package/.next/static/chunks/08g2tlzp2n4gz.js +0 -1
- package/.next/static/chunks/0_guif4s2s3q..css +0 -1
- package/.next/static/chunks/0c.0-8lt3bz.1.js +0 -1
- package/.next/static/chunks/0gt7r3-vbdfj9.js +0 -5
- package/.next/static/chunks/0o.ks3~iuzx4r.js +0 -1
- package/.next/static/chunks/0q5~5fua-vef8.js +0 -1
- package/.next/static/chunks/0qagt5x67~~sx.js +0 -1
- package/.next/static/chunks/0r1oyqeuqr030.js +0 -83
- package/.next/static/chunks/0v1_be48b8jhu.js +0 -1
- package/.next/static/chunks/0vg49pdw~qd37.js +0 -1
- package/.next/static/chunks/0ziax8rwv_767.js +0 -5
- package/.next/static/chunks/11_3ea_a8knah.js +0 -1
- package/.next/static/chunks/179_l7917u3p2.js +0 -1
- package/.next/static/chunks/18augppu.eqk1.js +0 -1
- package/.next/trace +0 -2
- package/.next/trace-build +0 -1
- package/.next/turbopack +0 -0
- package/.next/types/routes.d.ts +0 -103
- package/.next/types/validator.ts +0 -349
- package/public/vs/_commonjsHelpers-CT9FvmAN.js +0 -1
- package/public/vs/abap-D-t0cyap.js +0 -1
- package/public/vs/apex-CcIm7xu6.js +0 -1
- package/public/vs/assets/css.worker-HnVq6Ewq.js +0 -93
- package/public/vs/assets/editor.worker-Be8ye1pW.js +0 -26
- package/public/vs/assets/html.worker-B51mlPHg.js +0 -470
- package/public/vs/assets/json.worker-DKiEKt88.js +0 -58
- package/public/vs/assets/ts.worker-CMbG-7ft.js +0 -67731
- package/public/vs/azcli-BA0tQDCg.js +0 -1
- package/public/vs/basic-languages/monaco.contribution.js +0 -1
- package/public/vs/bat-C397hTD6.js +0 -1
- package/public/vs/bicep-DF5aW17k.js +0 -2
- package/public/vs/cameligo-plsz8qhj.js +0 -1
- package/public/vs/clojure-Y2auQMzK.js +0 -1
- package/public/vs/coffee-Bu45yuWE.js +0 -1
- package/public/vs/cpp-CkKPQIni.js +0 -1
- package/public/vs/csharp-CX28MZyh.js +0 -1
- package/public/vs/csp-D8uWnyxW.js +0 -1
- package/public/vs/css-CaeNmE3S.js +0 -3
- package/public/vs/cssMode-CjiAH6dQ.js +0 -1
- package/public/vs/cypher-DVThT8BS.js +0 -1
- package/public/vs/dart-CmGfCvrO.js +0 -1
- package/public/vs/dockerfile-CZqqYdch.js +0 -1
- package/public/vs/ecl-30fUercY.js +0 -1
- package/public/vs/editor/editor.main.css +0 -1
- package/public/vs/editor/editor.main.js +0 -5
- package/public/vs/editor.api-CalNCsUg.js +0 -903
- package/public/vs/elixir-xjPaIfzF.js +0 -1
- package/public/vs/flow9-DqtmStfK.js +0 -1
- package/public/vs/freemarker2-Cz_sV6Md.js +0 -3
- package/public/vs/fsharp-BOMdg4U1.js +0 -1
- package/public/vs/go-D_hbi-Jt.js +0 -1
- package/public/vs/graphql-CKUU4kLG.js +0 -1
- package/public/vs/handlebars-OwglfO-1.js +0 -1
- package/public/vs/hcl-DTaboeZW.js +0 -1
- package/public/vs/html-Pa1xEWsY.js +0 -1
- package/public/vs/htmlMode-Bz67EXwp.js +0 -1
- package/public/vs/ini-CsNwO04R.js +0 -1
- package/public/vs/java-CI4ZMsH9.js +0 -1
- package/public/vs/javascript-PczUCGdz.js +0 -1
- package/public/vs/jsonMode-DULH5oaX.js +0 -7
- package/public/vs/julia-BwzEvaQw.js +0 -1
- package/public/vs/kotlin-IUYPiTV8.js +0 -1
- package/public/vs/language/css/monaco.contribution.js +0 -1
- package/public/vs/language/html/monaco.contribution.js +0 -1
- package/public/vs/language/json/monaco.contribution.js +0 -1
- package/public/vs/language/typescript/monaco.contribution.js +0 -1
- package/public/vs/less-C0eDYdqa.js +0 -2
- package/public/vs/lexon-iON-Kj97.js +0 -1
- package/public/vs/liquid-DqKjdPGy.js +0 -1
- package/public/vs/loader.js +0 -1368
- package/public/vs/lspLanguageFeatures-kM9O9rjY.js +0 -4
- package/public/vs/lua-DtygF91M.js +0 -1
- package/public/vs/m3-CsR4AuFi.js +0 -1
- package/public/vs/markdown-C_rD0bIw.js +0 -1
- package/public/vs/mdx-DEWtB1K5.js +0 -1
- package/public/vs/mips-CiYP61RB.js +0 -1
- package/public/vs/monaco.contribution-D2OdxNBt.js +0 -1
- package/public/vs/monaco.contribution-DO3azKX8.js +0 -1
- package/public/vs/monaco.contribution-EcChJV6a.js +0 -1
- package/public/vs/monaco.contribution-qLAYrEOP.js +0 -1
- package/public/vs/msdax-C38-sJlp.js +0 -1
- package/public/vs/mysql-CdtbpvbG.js +0 -1
- package/public/vs/nls.messages-loader.js +0 -1
- package/public/vs/nls.messages.cs.js.js +0 -17
- package/public/vs/nls.messages.de.js.js +0 -17
- package/public/vs/nls.messages.es.js.js +0 -17
- package/public/vs/nls.messages.fr.js.js +0 -15
- package/public/vs/nls.messages.it.js.js +0 -15
- package/public/vs/nls.messages.ja.js.js +0 -17
- package/public/vs/nls.messages.js.js +0 -10
- package/public/vs/nls.messages.ko.js.js +0 -25
- package/public/vs/nls.messages.pl.js.js +0 -17
- package/public/vs/nls.messages.pt-br.js.js +0 -6
- package/public/vs/nls.messages.ru.js.js +0 -17
- package/public/vs/nls.messages.tr.js.js +0 -15
- package/public/vs/nls.messages.zh-cn.js.js +0 -17
- package/public/vs/nls.messages.zh-tw.js.js +0 -15
- package/public/vs/objective-c-CntZFaHX.js +0 -1
- package/public/vs/pascal-r6kuqfl_.js +0 -1
- package/public/vs/pascaligo-BiXoTmXh.js +0 -1
- package/public/vs/perl-DABw_TcH.js +0 -1
- package/public/vs/pgsql-me_jFXeX.js +0 -1
- package/public/vs/php-D_kh-9LK.js +0 -1
- package/public/vs/pla-VfZjczW0.js +0 -1
- package/public/vs/postiats-BBSzz8Pk.js +0 -1
- package/public/vs/powerquery-Dt-g_2cc.js +0 -1
- package/public/vs/powershell-B-7ap1zc.js +0 -1
- package/public/vs/protobuf-BmtuEB1A.js +0 -2
- package/public/vs/pug-BRpRNeEb.js +0 -1
- package/public/vs/python-Cr0UkIbn.js +0 -1
- package/public/vs/qsharp-BzsFaUU9.js +0 -1
- package/public/vs/r-f8dDdrp4.js +0 -1
- package/public/vs/razor-BYAHOTkz.js +0 -1
- package/public/vs/redis-fvZQY4PI.js +0 -1
- package/public/vs/redshift-45Et0LQi.js +0 -1
- package/public/vs/restructuredtext-C7UUFKFD.js +0 -1
- package/public/vs/ruby-CZO8zYTz.js +0 -1
- package/public/vs/rust-Bfetafyc.js +0 -1
- package/public/vs/sb-3GYllVck.js +0 -1
- package/public/vs/scala-foMgrKo1.js +0 -1
- package/public/vs/scheme-CHdMtr7p.js +0 -1
- package/public/vs/scss-C1cmLt9V.js +0 -3
- package/public/vs/shell-ClXCKCEW.js +0 -1
- package/public/vs/solidity-MZ6ExpPy.js +0 -1
- package/public/vs/sophia-DWkuSsPQ.js +0 -1
- package/public/vs/sparql-AUGFYSyk.js +0 -1
- package/public/vs/sql-32GpJSV2.js +0 -1
- package/public/vs/st-CuDFIVZ_.js +0 -1
- package/public/vs/swift-n-2HociN.js +0 -3
- package/public/vs/systemverilog-Ch4vA8Yt.js +0 -1
- package/public/vs/tcl-D74tq1nH.js +0 -1
- package/public/vs/tsMode-CZz1Umrk.js +0 -11
- package/public/vs/twig-C6taOxMV.js +0 -1
- package/public/vs/typescript-DfOrAzoV.js +0 -1
- package/public/vs/typespec-D-PIh9Xw.js +0 -1
- package/public/vs/vb-Dyb2648j.js +0 -1
- package/public/vs/wgsl-BhLXMOR0.js +0 -298
- package/public/vs/workers-DcJshg-q.js +0 -1
- package/public/vs/xml-CdsdnY8S.js +0 -1
- package/public/vs/yaml-DYGvmE88.js +0 -1
- /package/{public → .next/standalone/tower/docs/public}/banner.jpg +0 -0
- /package/.next/{server/app/favicon.ico.body → standalone/tower/docs/public/favicon.ico} +0 -0
- /package/{public → .next/standalone/tower/docs/public}/logo.png +0 -0
- /package/{public → .next/standalone/tower/public}/web-app-manifest-192x192.png +0 -0
- /package/{public → .next/standalone/tower/public}/web-app-manifest-512x512.png +0 -0
- /package/.next/{server/app/apple-icon.png.body → standalone/tower/src/app/apple-icon.png} +0 -0
- /package/.next/{server/app/icon0.svg.body → standalone/tower/src/app/icon0.svg} +0 -0
- /package/.next/{server/app/icon1.png.body → standalone/tower/src/app/icon1.png} +0 -0
- /package/.next/{server/app/manifest.json.body → standalone/tower/src/app/manifest.json} +0 -0
- /package/.next/static/{BIQ1l5etqo7aJnbnv-Bqt → a6HR9cTK7s4aKfE5dWzjz}/_buildManifest.js +0 -0
- /package/.next/static/{BIQ1l5etqo7aJnbnv-Bqt → a6HR9cTK7s4aKfE5dWzjz}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{BIQ1l5etqo7aJnbnv-Bqt → a6HR9cTK7s4aKfE5dWzjz}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,197429,e=>{"use strict";var r=e.i(755683);let t=(0,r.createServerReference)("4031ca137fd6cb39067ceac1dad94334a8fc2dfc3a",r.callServer,void 0,r.findSourceMapURL,"getConfigValues");e.s(["getConfigValues",0,t])},174145,e=>{"use strict";var r=e.i(228202),t=e.i(703995),a=e.i(555138),i=e.i(47816);let d=(0,a.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a="default",render:n,...s}){var o;return o={defaultTagName:"span",props:(0,r.mergeProps)({className:(0,i.cn)(d({variant:a}),e)},s),render:n,state:{slot:"badge",variant:a}},(0,t.useRenderElement)(o.defaultTagName??"div",o,o)}],174145)},170528,581511,e=>{"use strict";var r=e.i(93850);e.s(["CheckCircle2",()=>r.default],170528);let t=(0,e.i(258114).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],581511)},678978,e=>{"use strict";let r=(0,e.i(258114).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",0,r],678978)},950084,e=>{"use strict";var r=e.i(755683);let t=(0,r.createServerReference)("4047321a7abdfaaf09ebfaccc7c6f5575ea987fa11",r.callServer,void 0,r.findSourceMapURL,"getPrompts");e.s(["getPrompts",0,t])},993623,e=>{"use strict";var r=e.i(430989),t=e.i(47816);e.s(["Label",0,function({className:e,...a}){return(0,r.jsx)("label",{"data-slot":"label",className:(0,t.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...a})}])}]);
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,499356,(e,t,r)=>{var s;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/tower/node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/os-browserify/"),(s={}).endianness=function(){return"LE"},s.hostname=function(){return"u">typeof location?location.hostname:""},s.loadavg=function(){return[]},s.uptime=function(){return 0},s.freemem=function(){return Number.MAX_VALUE},s.totalmem=function(){return Number.MAX_VALUE},s.cpus=function(){return[]},s.type=function(){return"Browser"},s.release=function(){return"u">typeof navigator?navigator.appVersion:""},s.networkInterfaces=s.getNetworkInterfaces=function(){return{}},s.arch=function(){return"javascript"},s.platform=function(){return"browser"},s.tmpdir=s.tmpDir=function(){return"/tmp"},s.EOL="\n",s.homedir=function(){return"/"},t.exports=s},325200,(e,t,r)=>{!function(){"use strict";var e={114:function(e){function t(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function r(e,t){for(var r,s="",a=0,n=-1,o=0,i=0;i<=e.length;++i){if(i<e.length)r=e.charCodeAt(i);else if(47===r)break;else r=47;if(47===r){if(n===i-1||1===o);else if(n!==i-1&&2===o){if(s.length<2||2!==a||46!==s.charCodeAt(s.length-1)||46!==s.charCodeAt(s.length-2)){if(s.length>2){var l=s.lastIndexOf("/");if(l!==s.length-1){-1===l?(s="",a=0):a=(s=s.slice(0,l)).length-1-s.lastIndexOf("/"),n=i,o=0;continue}}else if(2===s.length||1===s.length){s="",a=0,n=i,o=0;continue}}t&&(s.length>0?s+="/..":s="..",a=2)}else s.length>0?s+="/"+e.slice(n+1,i):s=e.slice(n+1,i),a=i-n-1;n=i,o=0}else 46===r&&-1!==o?++o:o=-1}return s}var s={resolve:function(){for(var e,s,a="",n=!1,o=arguments.length-1;o>=-1&&!n;o--)o>=0?s=arguments[o]:(void 0===e&&(e=""),s=e),t(s),0!==s.length&&(a=s+"/"+a,n=47===s.charCodeAt(0));if(a=r(a,!n),n)if(a.length>0)return"/"+a;else return"/";return a.length>0?a:"."},normalize:function(e){if(t(e),0===e.length)return".";var s=47===e.charCodeAt(0),a=47===e.charCodeAt(e.length-1);return(0!==(e=r(e,!s)).length||s||(e="."),e.length>0&&a&&(e+="/"),s)?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0==arguments.length)return".";for(var e,r=0;r<arguments.length;++r){var a=arguments[r];t(a),a.length>0&&(void 0===e?e=a:e+="/"+a)}return void 0===e?".":s.normalize(e)},relative:function(e,r){if(t(e),t(r),e===r||(e=s.resolve(e))===(r=s.resolve(r)))return"";for(var a=1;a<e.length&&47===e.charCodeAt(a);++a);for(var n=e.length,o=n-a,i=1;i<r.length&&47===r.charCodeAt(i);++i);for(var l=r.length-i,c=o<l?o:l,d=-1,u=0;u<=c;++u){if(u===c){if(l>c){if(47===r.charCodeAt(i+u))return r.slice(i+u+1);else if(0===u)return r.slice(i+u)}else o>c&&(47===e.charCodeAt(a+u)?d=u:0===u&&(d=0));break}var m=e.charCodeAt(a+u);if(m!==r.charCodeAt(i+u))break;47===m&&(d=u)}var x="";for(u=a+d+1;u<=n;++u)(u===n||47===e.charCodeAt(u))&&(0===x.length?x+="..":x+="/..");return x.length>0?x+r.slice(i+d):(i+=d,47===r.charCodeAt(i)&&++i,r.slice(i))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var r=e.charCodeAt(0),s=47===r,a=-1,n=!0,o=e.length-1;o>=1;--o)if(47===(r=e.charCodeAt(o))){if(!n){a=o;break}}else n=!1;return -1===a?s?"/":".":s&&1===a?"//":e.slice(0,a)},basename:function(e,r){if(void 0!==r&&"string"!=typeof r)throw TypeError('"ext" argument must be a string');t(e);var s,a=0,n=-1,o=!0;if(void 0!==r&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var i=r.length-1,l=-1;for(s=e.length-1;s>=0;--s){var c=e.charCodeAt(s);if(47===c){if(!o){a=s+1;break}}else -1===l&&(o=!1,l=s+1),i>=0&&(c===r.charCodeAt(i)?-1==--i&&(n=s):(i=-1,n=l))}return a===n?n=l:-1===n&&(n=e.length),e.slice(a,n)}for(s=e.length-1;s>=0;--s)if(47===e.charCodeAt(s)){if(!o){a=s+1;break}}else -1===n&&(o=!1,n=s+1);return -1===n?"":e.slice(a,n)},extname:function(e){t(e);for(var r=-1,s=0,a=-1,n=!0,o=0,i=e.length-1;i>=0;--i){var l=e.charCodeAt(i);if(47===l){if(!n){s=i+1;break}continue}-1===a&&(n=!1,a=i+1),46===l?-1===r?r=i:1!==o&&(o=1):-1!==r&&(o=-1)}return -1===r||-1===a||0===o||1===o&&r===a-1&&r===s+1?"":e.slice(r,a)},format:function(e){var t,r;if(null===e||"object"!=typeof e)throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return t=e.dir||e.root,r=e.base||(e.name||"")+(e.ext||""),t?t===e.root?t+r:t+"/"+r:r},parse:function(e){t(e);var r,s={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return s;var a=e.charCodeAt(0),n=47===a;n?(s.root="/",r=1):r=0;for(var o=-1,i=0,l=-1,c=!0,d=e.length-1,u=0;d>=r;--d){if(47===(a=e.charCodeAt(d))){if(!c){i=d+1;break}continue}-1===l&&(c=!1,l=d+1),46===a?-1===o?o=d:1!==u&&(u=1):-1!==o&&(u=-1)}return -1===o||-1===l||0===u||1===u&&o===l-1&&o===i+1?-1!==l&&(0===i&&n?s.base=s.name=e.slice(1,l):s.base=s.name=e.slice(i,l)):(0===i&&n?(s.name=e.slice(1,o),s.base=e.slice(1,l)):(s.name=e.slice(i,o),s.base=e.slice(i,l)),s.ext=e.slice(o,l)),i>0?s.dir=e.slice(0,i-1):n&&(s.dir="/"),s},sep:"/",delimiter:":",win32:null,posix:null};s.posix=s,e.exports=s}},r={};function s(t){var a=r[t];if(void 0!==a)return a.exports;var n=r[t]={exports:{}},o=!0;try{e[t](n,n.exports,s),o=!1}finally{o&&delete r[t]}return n.exports}s.ab="/ROOT/tower/node_modules/.pnpm/next@16.2.1_@babel+core@7.29.0_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/path-browserify/",t.exports=s(114)}()},627580,e=>{"use strict";let t=(0,e.i(258114).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["default",0,t])},632612,e=>{"use strict";var t=e.i(430989),r=e.i(641338),s=e.i(347880),a=e.i(226549),n=e.i(306308),o=e.i(304275),i=e.i(894362),l=e.i(584451),c=e.i(935792),d=e.i(258114);let u=(0,d.default)("chevrons-left",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]),m=(0,d.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var x=e.i(652459),h=e.i(819614);let p=(0,d.default)("gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);var f=e.i(690287),g=e.i(24887),j=e.i(331548),b=e.i(814329),v=e.i(744838),w=e.i(745943),N=e.i(755683);let y=(0,N.createServerReference)("40fdaf8a2061f48b7c6c3bf53809ebc17208e3ff34",N.callServer,void 0,N.findSourceMapURL,"createWorkspace"),k=(0,N.createServerReference)("60fcf2f0b66e68c74b986ae9b194d8700d18b70e7c",N.callServer,void 0,N.findSourceMapURL,"updateWorkspace"),C=(0,N.createServerReference)("40e284d0affbfc5dab1ab6118453cdb85386729ec4",N.callServer,void 0,N.findSourceMapURL,"deleteWorkspace"),S=(0,N.createServerReference)("402f0ff6d94ed4ac587b83a00f736fafc08c87926e",N.callServer,void 0,N.findSourceMapURL,"getLabelsForWorkspace"),T=(0,N.createServerReference)("401ffb7a2c372d300b324d6236162f37868e4cedcf",N.callServer,void 0,N.findSourceMapURL,"createLabel"),D=(0,N.createServerReference)("40b0ecb3b3d2c63c9a40f31db86242d963dc63465e",N.callServer,void 0,N.findSourceMapURL,"deleteLabel");var P=e.i(349369),R=e.i(151201);let M=["📋","🚀","🎯","💡","🔧","📦","🎨","📊","🔬","🌟","📝","🏗️"];function A({workspaces:e}){let d,j=(0,s.useRouter)(),w=(0,s.usePathname)(),{t:N}=(0,P.useI18n)(),[S,T]=(0,r.useState)(!1);(0,r.useEffect)(()=>{"true"===localStorage.getItem("sidebar-collapsed")&&T(!0)},[]);let[D,z]=(0,r.useState)(!1),[L,O]=(0,r.useState)(!1),[I,B]=(0,r.useState)(!1),[F,_]=(0,r.useState)(null),[U,W]=(0,r.useState)(""),[H,K]=(0,r.useState)(M[0]),[V,q]=(0,r.useState)(null),X=w.split("/workspaces/")[1]?.split("/")[0],G=(0,r.useCallback)(()=>{T(e=>{let t=!e;return localStorage.setItem("sidebar-collapsed",String(t)),t})},[]),J=(0,r.useCallback)(async()=>{if(!U.trim())return;let e=await y({name:U.trim(),description:H});W(""),K(M[0]),z(!1),j.refresh(),j.push(`/workspaces/${e.id}`)},[U,H,j]),Y=(0,r.useCallback)(async()=>{U.trim()&&V&&(await k(V,{name:U.trim(),description:H}),W(""),O(!1),q(null),j.refresh())},[U,H,V,j]),Z=(0,r.useCallback)(e=>{q(e.id),W(e.name),K(e.description&&M.includes(e.description)?e.description:M[0]),O(!0)},[]),Q=(0,r.useCallback)(async(t,r)=>{if(e.length<=1)return void R.toast.error(N("sidebar.lastWorkspaceError"));if(confirm(N("sidebar.deleteConfirm",{name:r})))try{await C(t),j.refresh(),X===t&&j.push("/workspaces")}catch{R.toast.error(N("sidebar.lastWorkspaceError"))}},[X,j,N,e.length]),ee=(0,r.useCallback)(e=>{_(e),B(!0)},[]),et=e=>e.description&&M.includes(e.description)?e.description:e.name.charAt(0).toUpperCase();if(S){let r;return(0,t.jsxs)("aside",{className:"flex h-screen w-14 flex-col items-center border-r border-border bg-sidebar py-3",children:[(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{render:(0,t.jsx)("button",{onClick:G,className:"mb-4 flex h-9 w-9 items-center justify-center rounded-lg bg-primary/10 ring-1 ring-primary/20 transition-transform hover:scale-105"}),children:(0,t.jsx)("img",{src:"/logo.png",alt:"Tower",className:"h-6 w-6 rounded"})}),(0,t.jsx)(b.TooltipContent,{side:"right",sideOffset:8,children:N("sidebar.expand")})]}),(0,t.jsx)(g.ScrollArea,{className:"flex-1 min-h-0",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-1 px-0.5 pt-1",children:[e.map(e=>{let r=X===e.id,s=et(e);return(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{render:(0,t.jsx)("button",{onClick:()=>{r||j.push(`/workspaces/${e.id}`)},className:`flex h-9 w-9 items-center justify-center rounded-lg transition-all ${r?"ring-1 ring-primary/20 text-foreground cursor-default":"text-muted-foreground hover:text-foreground cursor-pointer"}`}),children:(0,t.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-md bg-muted text-sm",children:M.includes(s)?s:(0,t.jsx)("span",{className:"text-xs font-semibold",children:s})})}),(0,t.jsx)(b.TooltipContent,{side:"right",sideOffset:8,children:e.name})]},e.id)}),(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{render:(0,t.jsx)("button",{"data-tour":"create-workspace",onClick:()=>z(!0),className:"flex h-9 w-9 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"}),children:(0,t.jsx)(o.Plus,{className:"h-4 w-4"})}),(0,t.jsx)(b.TooltipContent,{side:"right",sideOffset:8,children:N("sidebar.newWorkspace")})]})]})}),(0,t.jsxs)("div",{className:"mt-2 flex flex-col items-center gap-1",children:[(r=X||e[0]?.id)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{render:(0,t.jsx)("button",{onClick:()=>j.push(`/workspaces/${r}/notes`),className:`rounded-lg p-2 transition-colors ${w.includes("/notes")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,t.jsx)(x.FileText,{className:"h-4 w-4"})}),(0,t.jsx)(b.TooltipContent,{side:"right",sideOffset:8,children:N("sidebar.notes")})]}),(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{render:(0,t.jsx)("button",{onClick:()=>j.push(`/workspaces/${r}/assets`),className:`rounded-lg p-2 transition-colors ${w.includes("/assets")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,t.jsx)(h.FolderOpen,{className:"h-4 w-4"})}),(0,t.jsx)(b.TooltipContent,{side:"right",sideOffset:8,children:N("sidebar.assets")})]}),(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{render:(0,t.jsx)("button",{onClick:()=>j.push(`/workspaces/${r}/archive`),className:`rounded-lg p-2 transition-colors ${w.includes("/archive")?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,t.jsx)(n.Archive,{className:"h-4 w-4"})}),(0,t.jsx)(b.TooltipContent,{side:"right",sideOffset:8,children:N("sidebar.archive")})]})]}):null,(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{render:(0,t.jsx)("button",{onClick:()=>j.push("/missions"),className:`rounded-lg p-2 transition-colors ${"/missions"===w?"text-foreground bg-accent":"text-muted-foreground hover:bg-accent hover:text-foreground"}`}),children:(0,t.jsx)(p,{className:"h-4 w-4"})}),(0,t.jsx)(b.TooltipContent,{side:"right",sideOffset:8,children:N("missions.navLabel")})]})]}),(0,t.jsx)($,{open:D,onOpenChange:z,title:N("workspace.create"),name:U,onNameChange:W,icon:H,onIconChange:K,onSubmit:J,submitLabel:N("common.create"),nameLabel:N("workspace.name"),iconLabel:N("workspace.icon"),namePlaceholder:N("workspace.namePlaceholder"),cancelLabel:N("common.cancel")})]})}return(0,t.jsxs)("aside",{className:"noise relative flex h-screen w-56 flex-col border-r border-border bg-sidebar",children:[(0,t.jsxs)("div",{className:"relative z-10 flex items-center gap-3 px-4 py-4",children:[(0,t.jsx)("img",{src:"/logo.png",alt:"Tower",className:"h-9 w-9 rounded-lg"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("div",{className:"text-sm font-semibold tracking-tight text-foreground",children:"Tower"}),(0,t.jsx)("div",{className:"text-[10px] font-medium uppercase tracking-widest text-muted-foreground",children:"Studio"})]}),(0,t.jsx)(v.Button,{variant:"ghost",size:"icon-xs",onClick:G,className:"text-muted-foreground",title:N("sidebar.collapse"),children:(0,t.jsx)(u,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"relative z-10 flex items-center justify-between px-4 py-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:N("sidebar.workspace")}),(0,t.jsx)(v.Button,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground","data-tour":"create-workspace",onClick:()=>{W(""),K(M[0]),z(!0)},title:N("sidebar.newWorkspace"),children:(0,t.jsx)(o.Plus,{className:"h-3.5 w-3.5"})})]}),(0,t.jsx)(g.ScrollArea,{className:"relative z-10 mt-2 flex-1 min-h-0",children:(0,t.jsx)("div",{className:"px-2 py-1",children:e.map(r=>{var s;let a,n,o,d=X===r.id,u=et(r);return(0,t.jsxs)("div",{className:`group relative flex items-center rounded-lg transition-all ${d?"bg-accent ring-1 ring-primary/15":"hover:bg-accent/60"}`,children:[(0,t.jsxs)("button",{onClick:()=>{d||j.push(`/workspaces/${r.id}`)},className:`flex flex-1 items-center gap-2.5 px-3 py-2.5 text-left ${d?"cursor-default":"cursor-pointer"}`,children:[(0,t.jsx)("span",{className:"flex h-7 w-7 items-center justify-center rounded-md bg-muted text-sm",children:M.includes(u)?u:(0,t.jsx)("span",{className:"text-xs font-semibold text-muted-foreground",children:u})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:`truncate text-sm font-medium ${d?"text-foreground":"text-secondary-foreground"}`,children:r.name}),(0,t.jsx)("div",{className:"text-[11px] text-muted-foreground",children:(s=r.updatedAt,n=Math.floor((a=Date.now()-new Date(s).getTime())/6e4),o=Math.floor(a/36e5),n<60?`${n}m ago`:o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`)})]})]}),(0,t.jsxs)(f.DropdownMenu,{children:[(0,t.jsx)(f.DropdownMenuTrigger,{render:(0,t.jsx)("button",{className:"mr-2 rounded-md p-1 text-muted-foreground opacity-0 transition-all hover:bg-background hover:text-foreground group-hover:opacity-100",onClick:e=>e.stopPropagation()}),children:(0,t.jsx)(c.MoreHorizontal,{className:"h-3.5 w-3.5"})}),(0,t.jsxs)(f.DropdownMenuContent,{align:"start",side:"right",children:[(0,t.jsxs)(f.DropdownMenuItem,{onClick:()=>Z(r),children:[(0,t.jsx)(i.Pencil,{className:"mr-2 h-3.5 w-3.5"}),N("sidebar.rename")]}),(0,t.jsxs)(f.DropdownMenuItem,{onClick:()=>ee(r.id),children:[(0,t.jsx)(m,{className:"mr-2 h-3.5 w-3.5"}),N("sidebar.manageLabels")]}),(0,t.jsxs)(f.DropdownMenuItem,{className:e.length<=1?"text-muted-foreground opacity-50":"text-rose-400",disabled:e.length<=1,onClick:()=>Q(r.id,r.name),children:[(0,t.jsx)(l.Trash2,{className:"mr-2 h-3.5 w-3.5"}),N("sidebar.delete")]})]})]})]},r.id)})})}),(0,t.jsxs)(a.default,{href:"/missions",className:`relative z-10 flex items-center gap-2 border-t border-border px-4 py-3 text-[11px] cursor-pointer transition-colors ${"/missions"===w?"text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,t.jsx)(p,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:N("missions.navLabel")})]}),(d=X||e[0]?.id)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(a.default,{href:`/workspaces/${d}/notes`,className:"relative z-10 flex items-center gap-2 border-t border-border px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,t.jsx)(x.FileText,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:N("sidebar.notes")})]}),(0,t.jsxs)(a.default,{href:`/workspaces/${d}/assets`,className:"relative z-10 flex items-center gap-2 px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,t.jsx)(h.FolderOpen,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:N("sidebar.assets")})]}),(0,t.jsxs)(a.default,{href:`/workspaces/${d}/archive`,className:"relative z-10 flex items-center gap-2 px-4 py-3 text-[11px] text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:[(0,t.jsx)(n.Archive,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:N("sidebar.archive")})]})]}):null,(0,t.jsx)($,{open:D,onOpenChange:z,title:N("workspace.create"),name:U,onNameChange:W,icon:H,onIconChange:K,onSubmit:J,submitLabel:N("common.create"),nameLabel:N("workspace.name"),iconLabel:N("workspace.icon"),namePlaceholder:N("workspace.namePlaceholder"),cancelLabel:N("common.cancel")}),(0,t.jsx)($,{open:L,onOpenChange:e=>{O(e),e||q(null)},title:N("workspace.edit"),name:U,onNameChange:W,icon:H,onIconChange:K,onSubmit:Y,submitLabel:N("common.save"),nameLabel:N("workspace.name"),iconLabel:N("workspace.icon"),namePlaceholder:N("workspace.namePlaceholder"),cancelLabel:N("common.cancel")}),F&&(0,t.jsx)(E,{open:I,onOpenChange:e=>{B(e),e||_(null)},workspaceId:F})]})}function $({open:e,onOpenChange:r,title:s,name:a,onNameChange:n,icon:o,onIconChange:i,onSubmit:l,submitLabel:c,nameLabel:d,iconLabel:u,namePlaceholder:m,cancelLabel:x}){return(0,t.jsx)(j.Dialog,{open:e,onOpenChange:r,disablePointerDismissal:!0,children:(0,t.jsxs)(j.DialogContent,{className:"sm:max-w-sm",children:[(0,t.jsx)(j.DialogHeader,{children:(0,t.jsx)(j.DialogTitle,{children:s})}),(0,t.jsxs)("div",{className:"space-y-4 py-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:d}),(0,t.jsx)(w.Input,{placeholder:m,value:a,onChange:e=>n(e.target.value),onKeyDown:e=>"Enter"===e.key&&e.preventDefault(),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:u}),(0,t.jsx)("div",{className:"mt-1.5 grid grid-cols-6 gap-1.5",children:M.map(e=>(0,t.jsx)("button",{onClick:()=>i(e),className:`flex h-10 w-10 items-center justify-center rounded-lg text-lg transition-all ${o===e?"bg-primary/15 ring-2 ring-primary/30 scale-110":"bg-muted hover:bg-accent"}`,children:e},e))})]})]}),(0,t.jsxs)(j.DialogFooter,{children:[(0,t.jsx)(v.Button,{variant:"outline",onClick:()=>r(!1),children:x}),(0,t.jsx)(v.Button,{onClick:l,disabled:!a.trim(),className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:c})]})]})})}let z=["#3b82f6","#ef4444","#f59e0b","#10b981","#8b5cf6","#ec4899","#06b6d4","#f97316"];function E({open:e,onOpenChange:s,workspaceId:a}){let{t:n}=(0,P.useI18n)(),[o,i]=(0,r.useState)([]),[l,c]=(0,r.useState)(""),[d,u]=(0,r.useState)(z[0]);(0,r.useEffect)(()=>{e&&S(a).then(i)},[e,a]);let m=async()=>{l.trim()&&(await T({name:l.trim(),color:d,workspaceId:a}),i(await S(a)),c(""))},x=async e=>{await D(e),i(t=>t.filter(t=>t.id!==e))};return(0,t.jsx)(j.Dialog,{open:e,onOpenChange:s,disablePointerDismissal:!0,children:(0,t.jsxs)(j.DialogContent,{className:"sm:max-w-sm",children:[(0,t.jsx)(j.DialogHeader,{children:(0,t.jsx)(j.DialogTitle,{children:n("label.manage")})}),(0,t.jsxs)("div",{className:"space-y-3 py-2",children:[o.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"h-3 w-3 rounded-full",style:{backgroundColor:e.color}}),(0,t.jsx)("span",{className:"flex-1 text-sm text-foreground",children:e.name}),e.isBuiltin?(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:n("label.builtin")}):(0,t.jsx)("button",{onClick:()=>x(e.id),className:"text-xs text-rose-400 hover:text-rose-300",children:n("common.delete")})]},e.id)),(0,t.jsxs)("div",{className:"border-t border-border pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(w.Input,{placeholder:n("label.name"),value:l,onChange:e=>c(e.target.value),onKeyDown:e=>"Enter"===e.key&&e.preventDefault(),className:"flex-1 h-8"}),(0,t.jsx)(v.Button,{size:"sm",onClick:m,disabled:!l.trim(),className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:n("label.add")})]}),(0,t.jsx)("div",{className:"mt-2 flex gap-1.5",children:z.map(e=>(0,t.jsx)("button",{onClick:()=>u(e),className:`h-5 w-5 rounded-full transition-all ${d===e?"ring-2 ring-offset-2 ring-offset-background ring-foreground/30 scale-110":""}`,style:{backgroundColor:e}},e))})]})]})]})})}var L=e.i(387104),O=e.i(811163),I=e.i(277547);let B=(0,d.default)("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);var F=e.i(514183),_=e.i(38431),U=e.i(924171),W=e.i(114954);e.s([],384466),e.i(384466),e.i(905022);var H=e.i(703995),K=e.i(855604);let V=r.createContext(void 0);function q(){let e=r.useContext(V);if(void 0===e)throw Error((0,K.default)(13));return e}let X={imageLoadingStatus:()=>null},G=r.forwardRef(function(e,s){let{className:a,render:n,...o}=e,[i,l]=r.useState("idle"),c=r.useMemo(()=>({imageLoadingStatus:i,setImageLoadingStatus:l}),[i,l]),d=(0,H.useRenderElement)("span",e,{state:{imageLoadingStatus:i},ref:s,props:o,stateAttributesMapping:X});return(0,t.jsx)(V.Provider,{value:c,children:d})});var J=e.i(288782),Y=e.i(239917),Z=e.i(762879),Q=e.i(963195),ee=e.i(680765),et=e.i(534262);let er={...X,...Q.transitionStatusMapping},es=r.forwardRef(function(e,t){let{className:s,render:a,onLoadingStatusChange:n,referrerPolicy:o,crossOrigin:i,...l}=e,c=q(),d=function(e,{referrerPolicy:t,crossOrigin:s}){let[a,n]=r.useState("idle");return(0,Y.useIsoLayoutEffect)(()=>{if(!e)return n("error"),et.NOOP;let r=!0,a=new window.Image,o=e=>()=>{r&&n(e)};return n("loading"),a.onload=o("loaded"),a.onerror=o("error"),t&&(a.referrerPolicy=t),a.crossOrigin=s??null,a.src=e,()=>{r=!1}},[e,s,t]),a}(e.src,{referrerPolicy:o,crossOrigin:i}),u="loaded"===d,{mounted:m,transitionStatus:x,setMounted:h}=(0,ee.useTransitionStatus)(u),p=r.useRef(null),f=(0,J.useStableCallback)(e=>{n?.(e),c.setImageLoadingStatus(e)});(0,Y.useIsoLayoutEffect)(()=>{"idle"!==d&&f(d)},[d,f]),(0,Z.useOpenChangeComplete)({open:u,ref:p,onComplete(){u||h(!1)}});let g=(0,H.useRenderElement)("img",e,{state:{imageLoadingStatus:d,transitionStatus:x},ref:[t,p],props:l,stateAttributesMapping:er,enabled:m});return m?g:null});var ea=e.i(109792);let en=r.forwardRef(function(e,t){let{className:s,render:a,delay:n,...o}=e,{imageLoadingStatus:i}=q(),[l,c]=r.useState(void 0===n),d=(0,ea.useTimeout)();return r.useEffect(()=>(void 0!==n&&d.start(n,()=>c(!0)),d.clear),[d,n]),(0,H.useRenderElement)("span",e,{state:{imageLoadingStatus:i},ref:t,props:o,stateAttributesMapping:X,enabled:"loaded"!==i&&l})});e.s(["Fallback",0,en,"Image",0,es,"Root",0,G],612115);var eo=e.i(612115),eo=eo,ei=e.i(47816);function el({className:e,size:r="default",...s}){return(0,t.jsx)(eo.Root,{"data-slot":"avatar","data-size":r,className:(0,ei.cn)("group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten",e),...s})}function ec({className:e,...r}){return(0,t.jsx)(eo.Fallback,{"data-slot":"avatar-fallback",className:(0,ei.cn)("flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",e),...r})}let ed=(0,d.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);var eu=e.i(259104);let em=(0,d.default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]),ex=(0,d.default)("package-2",[["path",{d:"M12 3v6",key:"1holv5"}],["path",{d:"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",key:"187q7i"}],["path",{d:"M3.054 9.013h17.893",key:"grwhos"}]]);var eh=e.i(621994);let ep=(0,N.createServerReference)("604c021029ee9851cf8ba37f532fca192421425539",N.callServer,void 0,N.findSourceMapURL,"globalSearch");var ef=e.i(664104);let eg=[{id:"all",key:"search.all",icon:O.Search},{id:"task",key:"search.task",icon:x.FileText},{id:"project",key:"search.project",icon:ed},{id:"repository",key:"search.repository",icon:eu.GitBranch},{id:"note",key:"search.note",icon:em},{id:"asset",key:"search.asset",icon:ex}],ej=["task","project","repository","note","asset"],eb={task:"search.task",project:"search.project",repository:"search.repository",note:"search.note",asset:"search.asset"};function ev({result:e,onSelect:r}){let s=eg.find(t=>t.id===e.type)?.icon??x.FileText;return(0,t.jsxs)("button",{onClick:()=>r(e),className:"flex w-full items-center gap-3 border-b border-border/30 px-4 py-3 text-left transition-colors hover:bg-accent last:border-b-0",children:[(0,t.jsx)("div",{className:"rounded-md bg-muted p-1.5",children:(0,t.jsx)(s,{className:"h-3.5 w-3.5 text-muted-foreground"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:e.title}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:e.subtitle}),e.snippet&&(0,t.jsx)("div",{className:"text-xs text-muted-foreground/70 truncate mt-0.5",children:e.snippet})]})]})}function ew({open:e,onOpenChange:a}){let n,{t:o}=(0,P.useI18n)(),i=(0,s.useRouter)(),[l,c]=(0,r.useState)(""),[d,u]=(0,r.useState)("all"),[m,x]=(0,r.useState)([]),[h,p]=(0,r.useState)(!1),[f,b]=(0,r.useState)(250),w=(0,r.useRef)(null),N=(0,r.useRef)(null);(0,r.useEffect)(()=>{e&&((0,ef.getConfigValue)("search.debounceMs",250).then(b),setTimeout(()=>w.current?.focus(),100),c(""),x([]))},[e]),(0,r.useEffect)(()=>{if(N.current&&clearTimeout(N.current),!l.trim()){x([]),p(!1);return}p(!0);let e=!1;return N.current=setTimeout(async()=>{let t=await ep(l,d);e||(x(t),p(!1))},f),()=>{N.current&&clearTimeout(N.current),e=!0}},[l,d,f]);let y=(0,r.useCallback)(e=>{i.push(e.navigateTo),a(!1)},[i,a]);return(0,t.jsx)(j.Dialog,{open:e,onOpenChange:a,children:(0,t.jsxs)(j.DialogContent,{className:"sm:max-w-lg p-0 gap-0 overflow-hidden !top-[10vh] !-translate-y-0",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-center border-b border-border px-4",children:[(0,t.jsx)(O.Search,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("input",{ref:w,value:l,onChange:e=>c(e.target.value),placeholder:o("search.placeholder"),className:"flex-1 bg-transparent px-3 py-3.5 text-sm text-foreground placeholder-muted-foreground outline-none"}),l&&(0,t.jsx)(v.Button,{variant:"ghost",size:"icon",onClick:()=>{c(""),x([])},className:"text-muted-foreground",children:(0,t.jsx)(eh.X,{className:"h-3.5 w-3.5"})})]}),(0,t.jsx)("div",{className:"flex items-center gap-1 border-b border-border px-4 py-2",children:eg.map(e=>{let r=e.icon;return(0,t.jsxs)("button",{onClick:()=>u(e.id),className:`flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-all ${d===e.id?"bg-primary/10 text-primary ring-1 ring-primary/20":"text-muted-foreground hover:bg-accent hover:text-foreground"}`,children:[(0,t.jsx)(r,{className:"h-3 w-3"}),o(e.key)]},e.id)})}),(0,t.jsxs)(g.ScrollArea,{className:"max-h-80",children:[!l.trim()&&(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:o("search.typeToSearch")}),l.trim()&&0===m.length&&!h&&(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:o("search.noResults")}),"all"===d&&m.length>0&&(n=m.reduce((e,t)=>((e[t.type]??=[]).push(t),e),{}),ej.filter(e=>n[e]?.length).map(e=>(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"px-4 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground bg-muted/50",children:o(eb[e])}),n[e].map(e=>(0,t.jsx)(ev,{result:e,onSelect:y},`${e.type}-${e.id}`))]},e))),"all"!==d&&m.map(e=>(0,t.jsx)(ev,{result:e,onSelect:y},`${e.type}-${e.id}`))]})]})})}var eN=e.i(599104),ey=e.i(924609),ek=e.i(698300),eC=e.i(993453),eS=e.i(510291),eT=e.i(696668),eD=e.i(779574);function eP(e){return e.replace(/\.git\/?$/,"")}e.i(499356),e.i(325200);let eR=(0,N.createServerReference)("4027617f852a0470bfa1ef8389ba6fc84b5ce227d0",N.callServer,void 0,N.findSourceMapURL,"resolveGitLocalPath");var eM=e.i(522010);function eA({open:e,onOpenChange:s,onCreateProject:a}){let{t:n,locale:o}=(0,P.useI18n)(),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(""),[u,m]=(0,r.useState)(""),[x,h]=(0,r.useState)(""),[p,f]=(0,r.useState)(""),[g,N]=(0,r.useState)(!1),[y,k]=(0,r.useState)("FRONTEND"),[C,S]=(0,r.useState)("idle"),[T,D]=(0,r.useState)(""),[M,A]=(0,r.useState)(!1),$=()=>{l(""),d(""),m(""),h(""),f(""),N(!1),k("FRONTEND"),S("idle"),D(""),A(!1)},z=async()=>{if(p.trim()&&!M&&"success"===C){A(!0);try{let e=await (0,eM.analyzeProjectDirectory)(p.trim(),o);m(e)}catch{R.toast.error(n("project.analyzeError"))}finally{A(!1)}}},E=async e=>{h(e),S("idle"),D("");let t=function(e){let t,r=e.match(/^git@([^:]+):(.+)$/);if(r)return{host:r[1],pathSegments:eP(r[2]).split("/").filter(Boolean)};try{t=new URL(e)}catch{return null}return{host:t.hostname,pathSegments:eP(decodeURIComponent(t.pathname)).split("/").filter(Boolean)}}(e);t&&t.pathSegments.length>0&&l(t.pathSegments[t.pathSegments.length-1]),g||f(await eR(e))},L=async()=>{if(x.trim()&&p.trim()){S("cloning"),D("");try{let e=function(e){let t=e.trim();if(!t)return"";if(t.startsWith("git@")||t.startsWith("ssh://")||t.endsWith(".git"))return t;try{let e=new URL(t),r=e.hostname,s=decodeURIComponent(e.pathname).split("/").filter(Boolean);if("code.iflytek.com"===r){let e=[...s];"osc"===e[0]&&"_source"===e[1]&&(e=e.slice(2));let a=e.indexOf("-");if(a>0&&(e=e.slice(0,a)),0===e.length)return t;return`https://${r}/${e.join("/")}.git`}return`${e.origin}${e.pathname.replace(/\/$/,"")}.git`}catch{return t}}(x.trim()),t=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clone",url:e,path:p.trim()})}),r=await t.json();if(!t.ok){S("error"),D(r.error||"Clone failed");return}S("success")}catch{S("error"),D("Network error")}}},O=async()=>{i.trim()&&(await a?.({name:i.trim(),alias:c.trim()||void 0,description:u.trim()||void 0,gitUrl:x.trim()||void 0,localPath:p.trim()||void 0,projectType:y}),$(),s(!1))};return(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(j.Dialog,{open:e,onOpenChange:e=>{s(e),e||$()},disablePointerDismissal:!0,children:(0,t.jsxs)(j.DialogContent,{style:{maxWidth:"32rem"},children:[(0,t.jsx)(j.DialogHeader,{children:(0,t.jsx)(j.DialogTitle,{children:n("topbar.newProject")})}),(0,t.jsxs)("div",{className:"space-y-4 py-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.gitUrl")}),(0,t.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:n("project.gitUrlHint")}),(0,t.jsx)(w.Input,{placeholder:n("project.gitPlaceholder"),value:x,onChange:e=>E(e.target.value),className:"mt-1.5 font-mono text-xs"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.localPath")}),(0,t.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:n("project.localPathHint")}),(0,t.jsx)(w.Input,{placeholder:n("project.localPathPlaceholder"),value:p,onChange:e=>{f(e.target.value),N(!0)},className:"mt-1.5 font-mono text-xs w-full"}),p.trim().startsWith("~")&&(0,t.jsxs)("p",{className:"mt-1 flex items-center gap-1 text-[11px] text-amber-400",children:[(0,t.jsx)(eC.AlertCircle,{className:"h-3 w-3"}),n("project.tildeWarning")]}),x.trim()&&p.trim()&&(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,t.jsxs)(v.Button,{type:"button",disabled:"cloning"===C||"success"===C,onClick:L,className:"gap-1.5 text-xs bg-emerald-500/15 text-emerald-300 ring-1 ring-emerald-500/25 hover:bg-emerald-500/25 disabled:opacity-50",children:["cloning"===C?(0,t.jsx)(ey.Loader2,{className:"h-3 w-3 animate-spin"}):"success"===C?(0,t.jsx)(ek.Check,{className:"h-3 w-3"}):(0,t.jsx)(eu.GitBranch,{className:"h-3 w-3"}),"cloning"===C?n("git.cloning"):"success"===C?n("git.cloned"):n("git.clone")]}),"error"===C&&(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-rose-400",children:[(0,t.jsx)(eC.AlertCircle,{className:"h-3 w-3"}),T]}),"success"===C&&(0,t.jsx)("span",{className:"text-[11px] text-emerald-400",children:n("git.cloneSuccess")})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.name")}),(0,t.jsx)(w.Input,{placeholder:n("project.namePlaceholder"),value:i,onChange:e=>l(e.target.value),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.type.label")}),(0,t.jsx)("div",{className:"mt-1.5",children:(0,t.jsx)(eT.SegmentedControl,{options:[{value:"FRONTEND",label:n("project.type.frontend")},{value:"BACKEND",label:n("project.type.backend")}],value:y,onChange:k})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.alias")}),(0,t.jsx)(w.Input,{placeholder:n("project.aliasPlaceholder"),value:c,onChange:e=>d(e.target.value),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mt-0.5",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.description")}),(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsxs)(b.TooltipTrigger,{render:(0,t.jsx)(v.Button,{type:"button",variant:"ghost",onClick:z,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!p.trim()||M?"opacity-50":""}`}),children:[M?(0,t.jsx)(ey.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(eS.Sparkles,{className:"h-3 w-3"}),M?n("project.analyzing"):n("project.genDesc")]}),(0,t.jsx)(b.TooltipContent,{children:p.trim()?"success"!==C?n("project.genDescNotCloned"):n("project.genDescReady"):n("project.genDescNoPath")})]})]}),(0,t.jsx)(eD.Textarea,{placeholder:n("project.descPlaceholder"),value:u,onChange:e=>m(e.target.value),rows:3,className:"mt-1.5 w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none max-h-[200px] overflow-y-auto"})]})]}),(0,t.jsxs)(j.DialogFooter,{children:[(0,t.jsx)(v.Button,{variant:"outline",onClick:()=>{s(!1),$()},children:n("common.cancel")}),(0,t.jsx)(v.Button,{onClick:O,disabled:!i.trim()||M,className:"bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",children:n("common.create")})]})]})})})}var e$=e.i(627580),e$=e$,ez=e.i(378399),eE=e.i(108523);let eL=(0,N.createServerReference)("600207e0744dfe37495c218be782a0bfb30701e916",N.callServer,void 0,N.findSourceMapURL,"migrateProjectPath"),eO=(0,N.createServerReference)("40367069c92f4799ae44be7005a5311da959341d39",N.callServer,void 0,N.findSourceMapURL,"checkMigrationSafety");function eI({open:e,onOpenChange:s,onCreateProject:a}){let{t:n,locale:o}=(0,P.useI18n)(),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(""),[u,m]=(0,r.useState)(""),[x,p]=(0,r.useState)(""),[f,g]=(0,r.useState)(""),[N,y]=(0,r.useState)(!1),[k,C]=(0,r.useState)("FRONTEND"),[S,T]=(0,r.useState)(!1),[D,M]=(0,r.useState)(!1),[A,$]=(0,r.useState)(""),[z,E]=(0,r.useState)(!1),[L,O]=(0,r.useState)(""),[I,B]=(0,r.useState)(""),[F,_]=(0,r.useState)(!1),[U,W]=(0,r.useState)(!1),H=()=>{l(""),d(""),m(""),p(""),g(""),C("FRONTEND"),T(!1),M(!1),$(""),E(!1),O(""),B(""),_(!1),W(!1)},K=async e=>{g(e),T(!1),M(!1),$(""),O(""),B(""),_(!1),l(e.split("/").filter(Boolean).pop()??"");try{let t=await fetch(`/api/git?path=${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();if(e.isGit&&e.remoteUrl){p(e.remoteUrl),T(!0);let t=e.remoteUrl.match(/\/([^/]+?)(?:\.git)?$/);t&&l(t[1])}}}catch{}},V=(0,r.useCallback)(async e=>{if(M(e),O(""),B(""),_(!1),!e)return void $("");if(x)try{let e=await eR(x);e&&($(e),e===f&&_(!0))}catch{}if(f)try{let e=await fetch(`/api/git?path=${encodeURIComponent(f)}&checkWorktrees=true`);e.ok&&(await e.json()).hasWorktrees&&B(n("project.worktreeWarning"))}catch{}},[x,f]),q=async()=>{if(f&&!U){W(!0);try{let e=await (0,eM.analyzeProjectDirectory)(f.trim(),o);m(e)}catch{R.toast.error(n("project.analyzeError"))}finally{W(!1)}}},X=async()=>{if(!i.trim())return;let e={name:i.trim(),alias:c.trim()||void 0,description:u.trim()||void 0,gitUrl:x.trim()||void 0,localPath:f.trim()||void 0,projectType:k},t=await a?.(e);if(D&&A&&A!==f&&t&&"id"in t){E(!0),O("");let e=await eO(t.id);if(!e.safe){O(e.reason),E(!1);return}let r=await eL(t.id,A);if(E(!1),!r.success)return void O(r.error??n("project.migrateError"));R.toast.success(n("project.migrateSuccess"))}H(),s(!1)},G=!i.trim()||!f.trim()||z||U||D&&!!I;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.Dialog,{open:e,onOpenChange:e=>{s(e),e||H()},disablePointerDismissal:!0,children:(0,t.jsxs)(j.DialogContent,{style:{maxWidth:"32rem"},children:[(0,t.jsx)(j.DialogHeader,{children:(0,t.jsx)(j.DialogTitle,{children:n("topbar.importProject")})}),(0,t.jsxs)("div",{className:"space-y-4 py-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.localPath")}),(0,t.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:n("project.importHint")}),(0,t.jsxs)("div",{className:"mt-1.5 flex gap-2",children:[(0,t.jsx)(w.Input,{value:f,readOnly:!0,placeholder:n("project.localPathPlaceholder"),className:"flex-1 font-mono text-xs bg-muted/30"}),(0,t.jsxs)(v.Button,{type:"button",variant:"outline",onClick:()=>y(!0),className:"shrink-0 gap-1.5",children:[(0,t.jsx)(h.FolderOpen,{className:"h-3.5 w-3.5"}),n("folder.browse")]})]}),S&&(0,t.jsx)("p",{className:"mt-1.5 text-[11px] text-emerald-400",children:n("project.autoDetected")})]}),x&&(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.gitUrl")}),(0,t.jsx)(w.Input,{value:x,onChange:e=>p(e.target.value),className:"mt-1.5 font-mono text-xs"})]}),S&&f&&(0,t.jsxs)("div",{className:"rounded-md border border-border p-3 space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:n("project.migrate")}),(0,t.jsx)("p",{className:"text-[10px] text-muted-foreground mt-0.5",children:n("project.migrateHint")})]}),(0,t.jsx)(eE.Switch,{checked:D,onCheckedChange:e=>V(e)})]}),D&&(0,t.jsxs)("div",{className:"space-y-2 pt-1",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-[10px] font-medium text-muted-foreground",children:n("project.targetPath")}),(0,t.jsx)(w.Input,{value:A,onChange:e=>{$(e.target.value),_(e.target.value===f)},placeholder:"/path/to/canonical/location",className:"mt-1 font-mono text-xs"})]}),F&&(0,t.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-sky-400",children:[(0,t.jsx)(e$.default,{className:"h-3 w-3"}),n("project.samePathInfo")]}),I&&(0,t.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-amber-400",children:[(0,t.jsx)(eC.AlertCircle,{className:"h-3 w-3"}),I]}),L&&(0,t.jsxs)("p",{className:"flex items-center gap-1 text-[11px] text-rose-400",children:[(0,t.jsx)(eC.AlertCircle,{className:"h-3 w-3"}),L]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.name")}),(0,t.jsx)(w.Input,{placeholder:n("project.namePlaceholder"),value:i,onChange:e=>l(e.target.value),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.type.label")}),(0,t.jsx)("div",{className:"mt-1.5",children:(0,t.jsx)(eT.SegmentedControl,{options:[{value:"FRONTEND",label:n("project.type.frontend")},{value:"BACKEND",label:n("project.type.backend")}],value:k,onChange:C})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.alias")}),(0,t.jsx)(w.Input,{placeholder:n("project.aliasPlaceholder"),value:c,onChange:e=>d(e.target.value),className:"mt-1.5"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mt-0.5",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground",children:n("project.description")}),(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsxs)(b.TooltipTrigger,{render:(0,t.jsx)(v.Button,{type:"button",variant:"ghost",onClick:q,className:`h-6 gap-1 px-2 text-[11px] text-muted-foreground hover:text-foreground ${!f||U?"opacity-50":""}`}),children:[U?(0,t.jsx)(ey.Loader2,{className:"h-3 w-3 animate-spin"}):(0,t.jsx)(eS.Sparkles,{className:"h-3 w-3"}),U?n("project.analyzing"):n("project.genDesc")]}),(0,t.jsx)(b.TooltipContent,{children:f?n("project.genDescReady"):n("project.genDescNoPath")})]})]}),(0,t.jsx)(eD.Textarea,{placeholder:n("project.descPlaceholder"),value:u,onChange:e=>m(e.target.value),rows:3,className:"mt-1.5 w-full rounded-md border border-border bg-background px-3 py-2 text-sm text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none max-h-[200px] overflow-y-auto"})]})]}),(0,t.jsxs)(j.DialogFooter,{children:[(0,t.jsx)(v.Button,{variant:"outline",onClick:()=>{s(!1),H()},children:n("common.cancel")}),(0,t.jsx)(v.Button,{onClick:X,disabled:G,className:"bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",children:z?n("project.migrating"):n("common.create")})]})]})}),(0,t.jsx)(ez.FolderBrowserDialog,{open:N,onOpenChange:y,onSelect:e=>K(e)})]})}function eB({onCreateProject:e,username:a}){let{t:n,locale:i,setLocale:l}=(0,P.useI18n)(),{isOpen:c,toggleAssistant:d}=(0,eN.useAssistant)(),{resolvedTheme:u,toggleTheme:m,triggerRef:x}=function(){let{resolvedTheme:e,setTheme:t}=(0,L.useTheme)(),s=(0,r.useRef)(null),a=(0,r.useCallback)(r=>{let s="dark"===e?"light":"dark";if("u">typeof document&&"startViewTransition"in document&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches){let e=r?.clientX??window.innerWidth/2,a=r?.clientY??0,n=Math.hypot(Math.max(e,window.innerWidth-e),Math.max(a,window.innerHeight-a));document.startViewTransition(()=>{t(s)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${e}px ${a}px)`,`circle(${n}px at ${e}px ${a}px)`]},{duration:400,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})}else t(s)},[e,t]);return{resolvedTheme:e,toggleTheme:a,triggerRef:s}}(),p=(0,s.useRouter)(),[g,j]=(0,r.useState)(!1),[w,N]=(0,r.useState)(!1),[y,k]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key&&(e.preventDefault(),j(!0))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("header",{className:"flex h-12 items-center justify-between border-b border-border bg-background/80 px-5 backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"w-40"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)(v.Button,{variant:"outline",onClick:()=>j(!0),className:"h-8 w-[400px] justify-start gap-2 bg-muted/50 text-muted-foreground hover:bg-muted",children:[(0,t.jsx)(O.Search,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"flex-1 text-left",suppressHydrationWarning:!0,children:n("topbar.searchPlaceholder")}),(0,t.jsxs)("kbd",{className:"mr-1 flex items-center gap-0.5 rounded border border-border bg-background px-1.5 py-0.5 text-[10px] font-mono",children:[(0,t.jsx)(B,{className:"h-2.5 w-2.5"}),"K"]})]}),(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{delay:500,render:(0,t.jsx)("button",{"data-tour":"open-assistant",onClick:d,"aria-label":n("assistant.iconLabel"),className:["cursor-pointer rounded-lg p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",c?"bg-accent text-foreground":""].join(" ")}),children:(0,t.jsx)(_.Bot,{className:"h-4 w-4"})}),(0,t.jsx)(b.TooltipContent,{children:n("assistant.iconLabel")})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsxs)(b.TooltipTrigger,{render:(0,t.jsx)(v.Button,{variant:"ghost",onClick:()=>l("zh"===i?"en":"zh"),className:"text-muted-foreground"}),children:[(0,t.jsx)(F.Globe,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"text-[11px] font-semibold",children:"zh"===i?"EN":"中"})]}),(0,t.jsx)(b.TooltipContent,{children:n("settings.language")})]}),(0,t.jsxs)(b.Tooltip,{children:[(0,t.jsx)(b.TooltipTrigger,{render:(0,t.jsx)(v.Button,{ref:x,variant:"ghost",size:"icon",onClick:m,className:"text-muted-foreground"}),children:"dark"===u?(0,t.jsx)(U.Sun,{className:"h-4 w-4"}):(0,t.jsx)(W.Moon,{className:"h-4 w-4"})}),(0,t.jsx)(b.TooltipContent,{children:n("settings.theme")})]}),(0,t.jsx)("div",{className:"h-4 w-px bg-border"}),(0,t.jsxs)(v.Button,{variant:"outline",className:"gap-1.5 ring-1 ring-border hover:bg-accent",onClick:()=>k(!0),children:[(0,t.jsx)(h.FolderOpen,{className:"h-3.5 w-3.5"}),n("topbar.importProject")]}),(0,t.jsxs)(v.Button,{"data-tour":"create-project",className:"gap-1.5 bg-primary/10 text-primary ring-1 ring-primary/25 hover:bg-primary/20",onClick:()=>N(!0),children:[(0,t.jsx)(o.Plus,{className:"h-3.5 w-3.5"}),n("topbar.newProject")]}),(0,t.jsxs)(f.DropdownMenu,{children:[(0,t.jsx)(f.DropdownMenuTrigger,{render:(0,t.jsxs)("button",{className:"ml-0.5 flex cursor-pointer items-center gap-1.5 rounded-lg px-2.5 py-1 transition-colors hover:bg-accent",children:[a&&(0,t.jsx)("span",{className:"max-w-[80px] truncate text-xs text-muted-foreground",children:a}),(0,t.jsx)(el,{className:"h-7 w-7 ring-1 ring-border",children:(0,t.jsx)(ec,{className:"bg-emerald-500/20 text-emerald-400 text-[10px] font-semibold",children:a?a.trim().split(/\s+/).filter(e=>e.length>0).slice(0,2).map(e=>e[0].toUpperCase()).join(""):"U"})})]})}),(0,t.jsx)(f.DropdownMenuContent,{align:"end",sideOffset:8,className:"w-40",children:(0,t.jsxs)(f.DropdownMenuItem,{onClick:()=>p.push("/settings"),children:[(0,t.jsx)(I.Settings,{className:"mr-2 h-3.5 w-3.5"}),n("settings.title")]})})]})]})]}),(0,t.jsx)(ew,{open:g,onOpenChange:j}),(0,t.jsx)(eA,{open:w,onOpenChange:N,onCreateProject:e}),(0,t.jsx)(eI,{open:y,onOpenChange:k,onCreateProject:e})]})}var eF=e.i(709545),e_=r,eU=e.i(232478);class eW extends e_.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("[ErrorBoundary]",e,t)}render(){return this.state.hasError?this.props.fallback?this.props.fallback:(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[(0,t.jsx)(eC.AlertCircle,{className:"h-8 w-8 text-destructive"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Something went wrong"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:this.state.error?.message??"An unexpected error occurred"})]}),(0,t.jsxs)(v.Button,{variant:"outline",onClick:()=>this.setState({hasError:!1,error:null}),children:[(0,t.jsx)(eU.RefreshCw,{className:"mr-2 h-3.5 w-3.5"}),"Retry"]})]}):this.props.children}}var eH=e.i(153674),eK=e.i(673898),eV=e.i(260949);let eq=(0,eK.default)(()=>e.A(402824).then(e=>({default:e.AssistantChat})),{loadableGenerated:{modules:[143824]},ssr:!1});function eX({mode:e}){let{isOpen:r,closeAssistant:s,sessions:a,activeSessionId:n,createNewSession:i,switchSession:c,removeSession:d}=(0,eN.useAssistant)(),{t:u}=(0,P.useI18n)(),m=a.find(e=>e.id===n),x=m?.title??u("assistant.newSession");return(0,t.jsxs)("div",{className:"sidebar"===e?"min-w-[320px] max-w-[480px] w-[30vw] shrink-0 border-r border-border flex flex-col bg-sidebar overflow-hidden":"flex flex-col h-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"header-sm flex items-center px-4 gap-2 bg-sidebar",children:[(0,t.jsx)(_.Bot,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-semibold text-foreground shrink-0",children:u("assistant.title")}),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsxs)(f.DropdownMenu,{children:[(0,t.jsxs)(f.DropdownMenuTrigger,{className:"flex items-center gap-1 h-8 px-2 rounded-md text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground max-w-[120px] truncate","aria-label":u("assistant.sessionList"),children:[(0,t.jsx)("span",{className:"truncate",children:x}),(0,t.jsx)(eV.ChevronDown,{className:"h-3 w-3 shrink-0"})]}),(0,t.jsxs)(f.DropdownMenuContent,{side:"bottom",align:"end",sideOffset:4,children:[0===a.length?(0,t.jsx)("div",{className:"px-2 py-4 text-xs text-muted-foreground text-center",children:u("assistant.noSessions")}):a.map(e=>(0,t.jsxs)(f.DropdownMenuItem,{className:"flex items-center justify-between gap-2 pr-1",onClick:()=>c(e.id),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-0.5 min-w-0",children:[(0,t.jsx)("span",{className:"text-xs truncate max-w-[140px]",children:e.title}),(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return`${t}s ago`;let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let s=Math.floor(r/60);if(s<24)return`${s}h ago`;let a=Math.floor(s/24);return`${a}d ago`}(e.updatedAt)})]}),(0,t.jsx)(v.Button,{variant:"ghost",className:"h-6 w-6 p-0 shrink-0 opacity-50 hover:opacity-100 hover:text-destructive",onClick:t=>{t.stopPropagation(),d(e.id)},"aria-label":u("assistant.deleteSession"),children:(0,t.jsx)(l.Trash2,{className:"h-3 w-3"})})]},e.id)),a.length>0&&(0,t.jsx)(f.DropdownMenuSeparator,{}),(0,t.jsxs)(f.DropdownMenuItem,{onClick:i,children:[(0,t.jsx)(o.Plus,{className:"h-3 w-3 mr-1"}),(0,t.jsx)("span",{className:"text-xs",children:u("assistant.newSession")})]})]})]}),(0,t.jsx)(v.Button,{variant:"ghost",size:"icon",className:"text-muted-foreground",onClick:i,"aria-label":u("assistant.newSession"),children:(0,t.jsx)(o.Plus,{className:"h-4 w-4"})})]}),(0,t.jsx)(v.Button,{variant:"ghost",size:"icon",className:"text-muted-foreground",onClick:s,"aria-label":u("assistant.closeLabel"),children:(0,t.jsx)(eh.X,{className:"h-4 w-4"})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:r?(0,t.jsx)(eq,{}):null})]})}var eG=e.i(315883);function eJ({onDismiss:e}){let{t:s}=(0,P.useI18n)(),[a,n]=(0,r.useState)(!1);(0,r.useEffect)(()=>{"Notification"in window&&"default"===window.Notification.permission&&n(!0)},[]);let o=async()=>{"default"!==await window.Notification.requestPermission()&&(n(!1),e?.())};return a?(0,t.jsxs)("div",{className:"fixed top-3 left-1/2 -translate-x-1/2 z-[9999] w-auto max-w-lg bg-card border rounded-lg shadow-lg px-4 py-2.5 flex items-center gap-3 animate-in fade-in slide-in-from-top-4 duration-500",children:[(0,t.jsx)(eG.Bell,{className:"h-4 w-4 shrink-0 text-primary"}),(0,t.jsx)("span",{className:"flex-1 text-sm",children:s("notification.permissionPrompt")}),(0,t.jsx)(v.Button,{size:"default",onClick:o,children:s("notification.allow")}),(0,t.jsx)(v.Button,{variant:"ghost",size:"default",onClick:()=>{n(!1),e?.()},children:s("notification.dismiss")})]}):null}var eY=e.i(461048),eZ=e.i(808963);let eQ=[{target:"create-workspace",titleKey:"tour.step1.title",descKey:"tour.step1.desc",placement:"right"},{target:"create-project",titleKey:"tour.step2.title",descKey:"tour.step2.desc",placement:"bottom",waitForTarget:!0},{target:"open-assistant",titleKey:"tour.step3.title",descKey:"tour.step3.desc",placement:"bottom"}];function e0({onComplete:e}){let{t:s}=(0,P.useI18n)(),[a,n]=(0,r.useState)(0),[o,i]=(0,r.useState)(null),[l,c]=(0,r.useState)(!1),d=(0,r.useRef)(null),u=eQ[a],m=(0,r.useCallback)(async()=>{await (0,eZ.setConfigValue)("onboarding.tourCompleted",!0),e()},[e]),x=(0,r.useCallback)(()=>u?document.querySelector(`[data-tour="${u.target}"]`):null,[u]),h=(0,r.useCallback)(()=>{let e=x();e?(i(e.getBoundingClientRect()),c(!0)):c(!1)},[x]);(0,r.useEffect)(()=>{h();let e=null;!l&&u?.waitForTarget&&(d.current=new MutationObserver(()=>{let t=x();t&&(i(t.getBoundingClientRect()),c(!0),d.current?.disconnect(),e&&clearTimeout(e))}),d.current.observe(document.body,{childList:!0,subtree:!0}),e=setTimeout(()=>{!x()&&(n(e=>{let t=e+1;return t<eQ.length?t:e}),a>=eQ.length-1&&m())},5e3));let t=()=>h();return window.addEventListener("resize",t),window.addEventListener("scroll",t,!0),()=>{d.current?.disconnect(),e&&clearTimeout(e),window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0)}},[a,u,x,h,l,m]),(0,r.useEffect)(()=>{let e=setInterval(h,1e3);return()=>clearInterval(e)},[h]);let p=(0,r.useCallback)(()=>{a<eQ.length-1?(n(e=>e+1),c(!1)):m()},[a]);return u?(0,t.jsx)(t.Fragment,{children:l&&o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-[10000]",style:{background:`radial-gradient(
|
|
2
|
-
ellipse at ${o.left+o.width/2}px ${o.top+o.height/2}px,
|
|
3
|
-
transparent ${Math.max(o.width,o.height)}px,
|
|
4
|
-
rgba(0,0,0,0.6) ${Math.max(o.width,o.height)+30}px
|
|
5
|
-
)`},onClick:p}),(0,t.jsx)("div",{className:"pointer-events-none fixed z-[10001] rounded-lg ring-2 ring-amber-400 ring-offset-2 ring-offset-background",style:{left:o.left-4,top:o.top-4,width:o.width+8,height:o.height+8}}),(0,t.jsxs)("div",{className:"fixed z-[10002] w-72 rounded-xl border border-border bg-card p-4 shadow-2xl",style:(()=>{if(!o)return{display:"none"};let e={position:"fixed",zIndex:10001};switch(u.placement){case"right":e.left=o.right+12,e.top=o.top+o.height/2,e.transform="translateY(-50%)";break;case"bottom":e.left=o.left+o.width/2,e.top=o.bottom+12,e.transform="translateX(-50%)";break;case"left":e.right=window.innerWidth-o.left+12,e.top=o.top+o.height/2,e.transform="translateY(-50%)";break;case"top":e.left=o.left+o.width/2,e.bottom=window.innerHeight-o.top+12,e.transform="translateX(-50%)"}return e})(),children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:s(u.titleKey)}),(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground leading-relaxed",children:s(u.descKey)})]}),(0,t.jsx)("button",{onClick:m,className:"shrink-0 rounded-md p-1 text-muted-foreground hover:bg-accent hover:text-foreground",children:(0,t.jsx)(eh.X,{className:"h-3.5 w-3.5"})})]}),(0,t.jsxs)("div",{className:"mt-3 flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex gap-1",children:eQ.map((e,r)=>(0,t.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${r===a?"bg-amber-400":r<a?"bg-amber-400/40":"bg-muted"}`},r))}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(v.Button,{variant:"ghost",className:"h-7 px-2 text-xs text-muted-foreground",onClick:m,children:s("tour.skip")}),(0,t.jsx)(v.Button,{className:"h-7 px-3 text-xs bg-amber-500/15 text-amber-300 ring-1 ring-amber-500/25 hover:bg-amber-500/25",onClick:p,children:s(a<eQ.length-1?"tour.next":"tour.done")})]})]})]})]})}):null}function e1({workspaces:e,isFirstRun:a,username:n,children:o,handleCreateProject:i}){let l=(0,s.usePathname)(),c=(0,s.useRouter)(),{isOpen:d,displayMode:u,closeAssistant:m}=(0,eN.useAssistant)();(0,r.useEffect)(()=>{a&&!l.startsWith("/onboarding")&&c.replace("/onboarding")},[a,l,c]);let[x,h]=(0,r.useState)(!1),[p,f]=(0,r.useState)(!1);(0,r.useEffect)(()=>{a||l.startsWith("/onboarding")||(0,ef.getConfigValue)("onboarding.tourCompleted",!1).then(e=>{e?f(!0):h(!0)})},[a,l]);let g=()=>{h(!1),f(!0)},[b,v]=(0,r.useState)(!0);(0,r.useEffect)(()=>{(0,ef.getConfigValue)("notification.enabled",!0).then(v)},[]);let w=l.startsWith("/onboarding");if(!function(e){let t=(0,s.useRouter)(),a=(0,r.useRef)(t),n=(0,r.useRef)(e),{t:o}=(0,P.useI18n)(),i=(0,r.useRef)(o);a.current=t,n.current=e,i.current=o,(0,r.useEffect)(()=>{if(!e)return;let t=null,r=null;async function s(){let e=await (0,eY.getActualWsPort)();(t=new WebSocket(`ws://localhost:${e}/terminal?taskId=__notifications__`)).onmessage=e=>{if(n.current)try{let t=JSON.parse(e.data);if("type"in t&&"stop"===t.type)R.toast.success(t.taskTitle,{description:i.current("notification.taskCompleted"),duration:8e3});else if("Notification"in window&&"granted"===window.Notification.permission){let e=new window.Notification("Tower",{body:t.taskTitle,icon:"/web-app-manifest-192x192.png"});e.onclick=()=>{window.focus(),a.current.push(`/workspaces/${t.workspaceId}/tasks/${t.taskId}`),e.close()}}else R.toast.info(t.taskTitle,{description:"COMPLETED"===t.status?i.current("notification.taskCompleted"):i.current("notification.taskFailed")})}catch{}},t.onclose=()=>{r=setTimeout(s,5e3)},t.onerror=()=>{t?.close()}}return s(),()=>{r&&clearTimeout(r),t?.close()}},[e])}(b&&!w),w)return(0,t.jsx)(t.Fragment,{children:o});let N=/\/workspaces\/[^/]+\/tasks\/[^/]+/.test(l),y=/\/workspaces\/[^/]+\/(notes|assets|archive)/.test(l),k=d&&"sidebar"===u?(0,t.jsx)(eX,{mode:"sidebar"}):null,C="dialog"===u?(0,t.jsx)(j.Dialog,{open:d,onOpenChange:e=>{e||m()},children:(0,t.jsx)(j.DialogContent,{showCloseButton:!1,style:{width:"90vw",minWidth:"360px",maxWidth:"600px",height:"70vh",minHeight:"480px",maxHeight:"800px",padding:0},children:(0,t.jsx)(eX,{mode:"dialog"})})}):null;return N||y?(0,t.jsxs)(t.Fragment,{children:[p&&(0,t.jsx)(eJ,{onDismiss:()=>f(!1)}),(0,t.jsx)("div",{className:"flex h-screen overflow-hidden",children:(0,t.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[(0,t.jsx)(eB,{onCreateProject:i,username:n}),(0,t.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[k,(0,t.jsx)("main",{className:"flex-1 overflow-hidden bg-background",children:(0,t.jsx)(eW,{children:o})})]})]})}),C,x&&(0,t.jsx)(e0,{onComplete:g})]}):(0,t.jsxs)(t.Fragment,{children:[p&&(0,t.jsx)(eJ,{onDismiss:()=>f(!1)}),(0,t.jsxs)("div",{className:"flex h-screen overflow-hidden",children:[(0,t.jsx)(A,{workspaces:e}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col overflow-hidden",children:[(0,t.jsx)(eB,{onCreateProject:i,username:n}),(0,t.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[k,(0,t.jsx)("main",{className:"flex-1 overflow-auto bg-background",children:(0,t.jsx)(eW,{children:o})})]})]})]}),C,x&&(0,t.jsx)(e0,{onComplete:g})]})}e.s(["LayoutClient",0,function({workspaces:e,isFirstRun:r,username:a,children:n}){let o=(0,s.useRouter)(),i=(0,s.usePathname)(),l=i.split("/workspaces/")[1]?.split("/")[0],c=async t=>{let r=l||(e.length>0?e[0].id:null);if(!r){let e=await y({name:"Default Workspace"}),r=await (0,eH.createProject)({...t,workspaceId:e.id});return o.refresh(),o.push(`/workspaces/${e.id}`),{id:r.id}}let s=await (0,eH.createProject)({...t,workspaceId:r});return o.refresh(),o.push(`/workspaces/${r}`),{id:s.id}};return(0,t.jsx)(eN.AssistantProvider,{children:(0,t.jsx)(eF.TerminalPortalProvider,{children:(0,t.jsx)(e1,{workspaces:e,isFirstRun:r,username:a,handleCreateProject:c,children:n})})})}],632612)},574117,e=>{"use strict";var t=e.i(430989),r=e.i(387104);e.s(["ThemeProvider",0,function({children:e,...s}){return(0,t.jsx)(r.ThemeProvider,{...s,children:e})}])},764878,e=>{"use strict";var t=e.i(430989),r=e.i(387104),s=e.i(151201),a=e.i(93850),a=a,n=e.i(627580),n=n,o=e.i(860875),o=o;let i=(0,e.i(258114).default)("octagon-x",[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);var l=e.i(946665),l=l;e.s(["Toaster",0,({...e})=>{let{theme:c="system"}=(0,r.useTheme)();return(0,t.jsx)(s.Toaster,{theme:c,className:"toaster group",icons:{success:(0,t.jsx)(a.default,{className:"size-4"}),info:(0,t.jsx)(n.default,{className:"size-4"}),warning:(0,t.jsx)(o.default,{className:"size-4"}),error:(0,t.jsx)(i,{className:"size-4"}),loading:(0,t.jsx)(l.default,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},toastOptions:{classNames:{toast:"cn-toast"}},...e})}],764878)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,470511,e=>{"use strict";let t;var r,n,a,s=e.i(430989),i=e.i(641338),l=e.i(347880),o=e.i(583315),u=e.i(259104),c=e.i(924609),d=e.i(258114);let h=(0,d.default)("folder-tree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]);var f=e.i(928951),m=e.i(653157),p=e.i(678978),x=e.i(986633),g=e.i(170528),b=e.i(811163);let v=(0,d.default)("git-pull-request-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}]]);var y=e.i(814329),w=e.i(226549);let j=(0,i.createContext)(null);j.displayName="PanelGroupContext";let k="data-panel-group-direction",C="data-panel-group-id",N="data-resize-handle",S="data-panel-resize-handle-id",E=i.useLayoutEffect,A=i["useId".toString()],D="function"==typeof A?A:()=>null,M=0;function I(e=null){let t=D(),r=(0,i.useRef)(e||t||null);return null===r.current&&(r.current=""+M++),null!=e?e:r.current}function P({children:e,className:t="",collapsedSize:r,collapsible:n,defaultSize:a,forwardedRef:s,id:l,maxSize:o,minSize:u,onCollapse:c,onExpand:d,onResize:h,order:f,style:m,tagName:p="div",...x}){let g=(0,i.useContext)(j);if(null===g)throw Error("Panel components must be rendered within a PanelGroup container");let{collapsePanel:b,expandPanel:v,getPanelSize:y,getPanelStyle:w,groupId:k,isPanelCollapsed:N,reevaluatePanelConstraints:S,registerPanel:A,resizePanel:D,unregisterPanel:M}=g,R=I(l),B=(0,i.useRef)({callbacks:{onCollapse:c,onExpand:d,onResize:h},constraints:{collapsedSize:r,collapsible:n,defaultSize:a,maxSize:o,minSize:u},id:R,idIsFromProps:void 0!==l,order:f});(0,i.useRef)({didLogMissingDefaultSizeWarning:!1}),E(()=>{let{callbacks:e,constraints:t}=B.current,s={...t};B.current.id=R,B.current.idIsFromProps=void 0!==l,B.current.order=f,e.onCollapse=c,e.onExpand=d,e.onResize=h,t.collapsedSize=r,t.collapsible=n,t.defaultSize=a,t.maxSize=o,t.minSize=u,(s.collapsedSize!==t.collapsedSize||s.collapsible!==t.collapsible||s.maxSize!==t.maxSize||s.minSize!==t.minSize)&&S(B.current,s)}),E(()=>{let e=B.current;return A(e),()=>{M(e)}},[f,R,A,M]),(0,i.useImperativeHandle)(s,()=>({collapse:()=>{b(B.current)},expand:e=>{v(B.current,e)},getId:()=>R,getSize:()=>y(B.current),isCollapsed:()=>N(B.current),isExpanded:()=>!N(B.current),resize:e=>{D(B.current,e)}}),[b,v,y,N,R,D]);let F=w(B.current,a);return(0,i.createElement)(p,{...x,children:e,className:t,id:R,style:{...F,...m},[C]:k,"data-panel":"","data-panel-collapsible":n||void 0,"data-panel-id":R,"data-panel-size":parseFloat(""+F.flexGrow).toFixed(1)})}let R=(0,i.forwardRef)((e,t)=>(0,i.createElement)(P,{...e,forwardedRef:t}));P.displayName="Panel",R.displayName="forwardRef(Panel)";let B=null,F=-1,L=null;function z(e,r){var n,a,s;let i=function(e,t){if(t){let e=(t&U)!=0,r=(t&Y)!=0,n=(t&q)!=0,a=(t&J)!=0;if(e)if(n)return"se-resize";else if(a)return"ne-resize";else return"e-resize";if(r)if(n)return"sw-resize";else if(a)return"nw-resize";else return"w-resize";if(n)return"s-resize";else if(a)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}(e,r);B!==i&&(B=i,null===L&&(L=document.createElement("style"),t&&L.setAttribute("nonce",t),document.head.appendChild(L)),F>=0&&(null==(s=L.sheet)||s.removeRule(F)),F=null!=(n=null==(a=L.sheet)?void 0:a.insertRule(`*{cursor: ${i} !important;}`))?n:-1)}function $(e){return"keydown"===e.type}function T(e){return e.type.startsWith("pointer")}function _(e){return e.type.startsWith("mouse")}function O(e){if(T(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(_(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}let W=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function H(e){let t=e.length;for(;t--;){let r=e[t];if(eh(r,"Missing node"),function(e){var t;let r,n=getComputedStyle(e);return"fixed"===n.position||!!("auto"!==n.zIndex&&("static"!==n.position||"flex"===(r=getComputedStyle(null!=(t=V(e))?t:e).display)||"inline-flex"===r)||1>+n.opacity||"transform"in n&&"none"!==n.transform||"webkitTransform"in n&&"none"!==n.webkitTransform||"mixBlendMode"in n&&"normal"!==n.mixBlendMode||"filter"in n&&"none"!==n.filter||"webkitFilter"in n&&"none"!==n.webkitFilter||"isolation"in n&&"isolate"===n.isolation||W.test(n.willChange))||"touch"===n.webkitOverflowScrolling}(r))return r}return null}function G(e){return e&&Number(getComputedStyle(e).zIndex)||0}function K(e){let t=[];for(;e;)t.push(e),e=V(e);return t}function V(e){let{parentNode:t}=e;return t&&t instanceof ShadowRoot?t.host:t}let U=1,Y=2,q=4,J=8,X="coarse"===function(){if("function"==typeof matchMedia)return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}(),Q=[],Z=!1,ee=new Map,et=new Map,er=new Set;function en(e){let{target:t}=e,{x:r,y:n}=O(e);Z=!0,el({target:t,x:r,y:n}),ec(),Q.length>0&&(ed("down",e),e.preventDefault(),ei(t)||e.stopImmediatePropagation())}function ea(e){let{x:t,y:r}=O(e);if(Z&&0===e.buttons&&(Z=!1,ed("up",e)),!Z){let{target:n}=e;el({target:n,x:t,y:r})}ed("move",e),eo(),Q.length>0&&e.preventDefault()}function es(e){let{target:t}=e,{x:r,y:n}=O(e);et.clear(),Z=!1,Q.length>0&&(e.preventDefault(),ei(t)||e.stopImmediatePropagation()),ed("up",e),el({target:t,x:r,y:n}),eo(),ec()}function ei(e){let t=e;for(;t;){if(t.hasAttribute(N))return!0;t=t.parentElement}return!1}function el({target:e,x:t,y:r}){Q.splice(0);let n=null;(e instanceof HTMLElement||e instanceof SVGElement)&&(n=e),er.forEach(e=>{let{element:a,hitAreaMargins:s}=e,i=a.getBoundingClientRect(),{bottom:l,left:o,right:u,top:c}=i,d=X?s.coarse:s.fine;if(t>=o-d&&t<=u+d&&r>=c-d&&r<=l+d){if(null!==n&&document.contains(n)&&a!==n&&!a.contains(n)&&!n.contains(a)&&function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:K(e),b:K(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;eh(r,"Stacking order can only be calculated for elements with a common ancestor");let a={a:G(H(n.a)),b:G(H(n.b))};if(a.a===a.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},a=e.length;for(;a--;){let r=e[a];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(a.a-a.b)}(n,a)>0){let e=n,t=!1;for(;e;){var h;if(e.contains(a))break;if(h=e.getBoundingClientRect(),h.x<i.x+i.width&&h.x+h.width>i.x&&h.y<i.y+i.height&&h.y+h.height>i.y){t=!0;break}e=e.parentElement}if(t)return}Q.push(e)}})}function eo(){let e=!1,t=!1;Q.forEach(r=>{let{direction:n}=r;"horizontal"===n?e=!0:t=!0});let r=0;et.forEach(e=>{r|=e}),e&&t?z("intersection",r):e?z("horizontal",r):t?z("vertical",r):null!==L&&(document.head.removeChild(L),B=null,L=null,F=-1)}let eu=new AbortController;function ec(){eu.abort();let e={capture:!0,signal:(eu=new AbortController).signal};er.size&&(Z?(Q.length>0&&ee.forEach((t,r)=>{let{body:n}=r;t>0&&(n.addEventListener("contextmenu",es,e),n.addEventListener("pointerleave",ea,e),n.addEventListener("pointermove",ea,e))}),window.addEventListener("pointerup",es,e),window.addEventListener("pointercancel",es,e)):ee.forEach((t,r)=>{let{body:n}=r;t>0&&(n.addEventListener("pointerdown",en,e),n.addEventListener("pointermove",ea,e))}))}function ed(e,t){er.forEach(r=>{let{setResizeHandlerState:n}=r;n(e,Q.includes(r),t)})}function eh(e,t){if(!e)throw console.error(t),Error(t)}function ef(e,t,r=10){return e.toFixed(r)===t.toFixed(r)?0:e>t?1:-1}function em(e,t,r=10){return 0===ef(e,t,r)}function ep(e,t,r){return 0===ef(e,t,r)}function ex({panelConstraints:e,panelIndex:t,size:r}){let n=e[t];eh(null!=n,`Panel constraints not found for index ${t}`);let{collapsedSize:a=0,collapsible:s,maxSize:i=100,minSize:l=0}=n;return 0>ef(r,l)&&(r=s&&0>ef(r,(a+l)/2)?a:l),r=parseFloat((r=Math.min(i,r)).toFixed(10))}function eg({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:a,trigger:s}){if(ep(e,0))return t;let i=[...t],[l,o]=n;eh(null!=l,"Invalid first pivot index"),eh(null!=o,"Invalid second pivot index");let u=0;if("keyboard"===s){{let n=e<0?o:l,a=r[n];eh(a,`Panel constraints not found for index ${n}`);let{collapsedSize:s=0,collapsible:i,minSize:u=0}=a;if(i){let r=t[n];if(eh(null!=r,`Previous layout not found for panel index ${n}`),ep(r,s)){let t=u-r;ef(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let n=e<0?l:o,a=r[n];eh(a,`No panel constraints found for index ${n}`);let{collapsedSize:s=0,collapsible:i,minSize:u=0}=a;if(i){let r=t[n];if(eh(null!=r,`Previous layout not found for panel index ${n}`),ep(r,u)){let t=r-s;ef(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let n=e<0?1:-1,a=e<0?o:l,s=0;for(;;){let e=t[a];if(eh(null!=e,`Previous layout not found for panel index ${a}`),s+=ex({panelConstraints:r,panelIndex:a,size:100})-e,(a+=n)<0||a>=r.length)break}let i=Math.min(Math.abs(e),Math.abs(s));e=e<0?0-i:i}{let n=e<0?l:o;for(;n>=0&&n<r.length;){let a=Math.abs(e)-Math.abs(u),s=t[n];eh(null!=s,`Previous layout not found for panel index ${n}`);let l=ex({panelConstraints:r,panelIndex:n,size:s-a});if(!ep(s,l)&&(u+=s-l,i[n]=l,u.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?n--:n++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!ep(e[r],t[r],void 0))return!1;return!0}(a,i))return a;{let n=e<0?o:l,a=t[n];eh(null!=a,`Previous layout not found for panel index ${n}`);let s=a+u,c=ex({panelConstraints:r,panelIndex:n,size:s});if(i[n]=c,!ep(c,s)){let t=s-c,n=e<0?o:l;for(;n>=0&&n<r.length;){let a=i[n];eh(null!=a,`Previous layout not found for panel index ${n}`);let s=ex({panelConstraints:r,panelIndex:n,size:a+t});if(ep(a,s)||(t-=s-a,i[n]=s),ep(t,0))break;e>0?n--:n++}}}return ep(i.reduce((e,t)=>t+e,0),100)?i:a}function eb(e,t=document){return Array.from(t.querySelectorAll(`[${S}][data-panel-group-id="${e}"]`))}function ev(e,t,r=document){let n=eb(e,r).findIndex(e=>e.getAttribute(S)===t);return null!=n?n:null}function ey(e,t,r){let n=ev(e,t,r);return null!=n?[n,n+1]:[-1,-1]}function ew(e,t=document){var r;if(t instanceof HTMLElement&&(null==t||null==(r=t.dataset)?void 0:r.panelGroupId)==e)return t;let n=t.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return n||null}function ej(e,t=document){let r=t.querySelector(`[${S}="${e}"]`);return r||null}function ek(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function eC(e,t){let{x:r,y:n}=O(t);return"horizontal"===e?r:n}function eN(e,t,r){t.forEach((t,n)=>{let a=e[n];eh(a,`Panel data not found for index ${n}`);let{callbacks:s,constraints:i,id:l}=a,{collapsedSize:o=0,collapsible:u}=i,c=r[l];if(null==c||t!==c){r[l]=t;let{onCollapse:e,onExpand:n,onResize:a}=s;a&&a(t,c),u&&(e||n)&&(n&&(null==c||em(c,o))&&!em(t,o)&&n(),e&&(null==c||!em(c,o))&&em(t,o)&&e())}})}function eS(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!=t[r])return!1;return!0}function eE(e){try{if("u">typeof localStorage)e.getItem=e=>localStorage.getItem(e),e.setItem=(e,t)=>{localStorage.setItem(e,t)};else throw Error("localStorage not supported in this environment")}catch(t){console.error(t),e.getItem=()=>null,e.setItem=()=>{}}}function eA(e){return`react-resizable-panels:${e}`}function eD(e){return e.map(e=>{let{constraints:t,id:r,idIsFromProps:n,order:a}=e;return n?r:a?`${a}:${JSON.stringify(t)}`:JSON.stringify(t)}).sort((e,t)=>e.localeCompare(t)).join(",")}function eM(e,t){try{let r=eA(e),n=t.getItem(r);if(n){let e=JSON.parse(n);if("object"==typeof e&&null!=e)return e}}catch(e){}return null}function eI(e,t,r,n,a){var s;let i=eA(e),l=eD(t),o=null!=(s=eM(e,a))?s:{};o[l]={expandToSizes:Object.fromEntries(r.entries()),layout:n};try{a.setItem(i,JSON.stringify(o))}catch(e){console.error(e)}}function eP({layout:e,panelConstraints:t}){let r=[...e],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!ep(n,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];eh(null!=t,`No layout data found for index ${e}`);let a=100/n*t;r[e]=a}let a=0;for(let e=0;e<t.length;e++){let n=r[e];eh(null!=n,`No layout data found for index ${e}`);let s=ex({panelConstraints:t,panelIndex:e,size:n});n!=s&&(a+=n-s,r[e]=s)}if(!ep(a,0))for(let e=0;e<t.length;e++){let n=r[e];eh(null!=n,`No layout data found for index ${e}`);let s=ex({panelConstraints:t,panelIndex:e,size:n+a});if(n!==s&&(a-=s-n,r[e]=s,ep(a,0)))break}return r}let eR={getItem:e=>(eE(eR),eR.getItem(e)),setItem:(e,t)=>{eE(eR),eR.setItem(e,t)}},eB={};function eF({autoSaveId:e=null,children:t,className:r="",direction:n,forwardedRef:a,id:s=null,onLayout:l=null,keyboardResizeBy:o=null,storage:u=eR,style:c,tagName:d="div",...h}){let f=I(s),m=(0,i.useRef)(null),[p,x]=(0,i.useState)(null),[g,b]=(0,i.useState)([]),v=function(){let[e,t]=(0,i.useState)(0);return(0,i.useCallback)(()=>t(e=>e+1),[])}(),y=(0,i.useRef)({}),w=(0,i.useRef)(new Map),N=(0,i.useRef)(0),A=(0,i.useRef)({autoSaveId:e,direction:n,dragState:p,id:f,keyboardResizeBy:o,onLayout:l,storage:u}),D=(0,i.useRef)({layout:g,panelDataArray:[],panelDataArrayChanged:!1});(0,i.useRef)({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),(0,i.useImperativeHandle)(a,()=>({getId:()=>A.current.id,getLayout:()=>{let{layout:e}=D.current;return e},setLayout:e=>{let{onLayout:t}=A.current,{layout:r,panelDataArray:n}=D.current,a=eP({layout:e,panelConstraints:n.map(e=>e.constraints)});ek(r,a)||(b(a),D.current.layout=a,t&&t(a),eN(n,a,y.current))}}),[]),E(()=>{A.current.autoSaveId=e,A.current.direction=n,A.current.dragState=p,A.current.id=f,A.current.onLayout=l,A.current.storage=u}),function({committedValuesRef:e,eagerValuesRef:t,groupId:r,layout:n,panelDataArray:a,panelGroupElement:s,setLayout:l}){(0,i.useRef)({didWarnAboutMissingResizeHandle:!1}),E(()=>{if(!s)return;let e=eb(r,s);for(let t=0;t<a.length-1;t++){let{valueMax:r,valueMin:s,valueNow:i}=function({layout:e,panelsArray:t,pivotIndices:r}){let n=0,a=100,s=0,i=0,l=r[0];return eh(null!=l,"No pivot index found"),t.forEach((e,t)=>{let{constraints:r}=e,{maxSize:o=100,minSize:u=0}=r;t===l?(n=u,a=o):(s+=u,i+=o)}),{valueMax:Math.min(a,100-s),valueMin:Math.max(n,100-i),valueNow:e[l]}}({layout:n,panelsArray:a,pivotIndices:[t,t+1]}),l=e[t];if(null==l);else{let e=a[t];eh(e,`No panel data found for index "${t}"`),l.setAttribute("aria-controls",e.id),l.setAttribute("aria-valuemax",""+Math.round(r)),l.setAttribute("aria-valuemin",""+Math.round(s)),l.setAttribute("aria-valuenow",null!=i?""+Math.round(i):"")}}return()=>{e.forEach((e,t)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")})}},[r,n,a,s]),(0,i.useEffect)(()=>{if(!s)return;let e=t.current;eh(e,"Eager values not found");let{panelDataArray:a}=e;eh(null!=ew(r,s),`No group found for id "${r}"`);let i=eb(r,s);eh(i,`No resize handles found for group id "${r}"`);let o=i.map(e=>{let t=e.getAttribute(S);eh(t,"Resize handle element has no handle id attribute");let[i,o]=function(e,t,r,n=document){var a,s,i,l;let o=ej(t,n),u=eb(e,n),c=o?u.indexOf(o):-1;return[null!=(a=null==(s=r[c])?void 0:s.id)?a:null,null!=(i=null==(l=r[c+1])?void 0:l.id)?i:null]}(r,t,a,s);if(null==i||null==o)return()=>{};let u=e=>{if(!e.defaultPrevented&&"Enter"===e.key){e.preventDefault();let o=a.findIndex(e=>e.id===i);if(o>=0){let e=a[o];eh(e,`No panel data found for index ${o}`);let i=n[o],{collapsedSize:u=0,collapsible:c,minSize:d=0}=e.constraints;if(null!=i&&c){let e=eg({delta:ep(i,u)?d-u:u-i,initialLayout:n,panelConstraints:a.map(e=>e.constraints),pivotIndices:ey(r,t,s),prevLayout:n,trigger:"keyboard"});n!==e&&l(e)}}}};return e.addEventListener("keydown",u),()=>{e.removeEventListener("keydown",u)}});return()=>{o.forEach(e=>e())}},[s,e,t,r,n,a,l])}({committedValuesRef:A,eagerValuesRef:D,groupId:f,layout:g,panelDataArray:D.current.panelDataArray,setLayout:b,panelGroupElement:m.current}),(0,i.useEffect)(()=>{let{panelDataArray:t}=D.current;if(e){if(0===g.length||g.length!==t.length)return;let r=eB[e];null==r&&(r=function(e,t=10){let r=null;return(...n)=>{null!==r&&clearTimeout(r),r=setTimeout(()=>{e(...n)},t)}}(eI,100),eB[e]=r),r(e,[...t],new Map(w.current),g,u)}},[e,g,u]),(0,i.useEffect)(()=>{});let M=(0,i.useCallback)(e=>{let{onLayout:t}=A.current,{layout:r,panelDataArray:n}=D.current;if(e.constraints.collapsible){let a=n.map(e=>e.constraints),{collapsedSize:s=0,panelSize:i,pivotIndices:l}=e$(n,e,r);if(eh(null!=i,`Panel size not found for panel "${e.id}"`),!em(i,s)){w.current.set(e.id,i);let o=eg({delta:ez(n,e)===n.length-1?i-s:s-i,initialLayout:r,panelConstraints:a,pivotIndices:l,prevLayout:r,trigger:"imperative-api"});eS(r,o)||(b(o),D.current.layout=o,t&&t(o),eN(n,o,y.current))}}},[]),P=(0,i.useCallback)((e,t)=>{let{onLayout:r}=A.current,{layout:n,panelDataArray:a}=D.current;if(e.constraints.collapsible){let s=a.map(e=>e.constraints),{collapsedSize:i=0,panelSize:l=0,minSize:o=0,pivotIndices:u}=e$(a,e,n),c=null!=t?t:o;if(em(l,i)){let t=w.current.get(e.id),i=null!=t&&t>=c?t:c,o=eg({delta:ez(a,e)===a.length-1?l-i:i-l,initialLayout:n,panelConstraints:s,pivotIndices:u,prevLayout:n,trigger:"imperative-api"});eS(n,o)||(b(o),D.current.layout=o,r&&r(o),eN(a,o,y.current))}}},[]),R=(0,i.useCallback)(e=>{let{layout:t,panelDataArray:r}=D.current,{panelSize:n}=e$(r,e,t);return eh(null!=n,`Panel size not found for panel "${e.id}"`),n},[]),B=(0,i.useCallback)((e,t)=>{let{panelDataArray:r}=D.current,n=ez(r,e);return function({defaultSize:e,dragState:t,layout:r,panelData:n,panelIndex:a,precision:s=3}){let i=r[a];return{flexBasis:0,flexGrow:null==i?void 0!=e?e.toPrecision(s):"1":1===n.length?"1":i.toPrecision(s),flexShrink:1,overflow:"hidden",pointerEvents:null!==t?"none":void 0}}({defaultSize:t,dragState:p,layout:g,panelData:r,panelIndex:n})},[p,g]),F=(0,i.useCallback)(e=>{let{layout:t,panelDataArray:r}=D.current,{collapsedSize:n=0,collapsible:a,panelSize:s}=e$(r,e,t);return eh(null!=s,`Panel size not found for panel "${e.id}"`),!0===a&&em(s,n)},[]),L=(0,i.useCallback)(e=>{let{layout:t,panelDataArray:r}=D.current,{collapsedSize:n=0,collapsible:a,panelSize:s}=e$(r,e,t);return eh(null!=s,`Panel size not found for panel "${e.id}"`),!a||ef(s,n)>0},[]),z=(0,i.useCallback)(e=>{let{panelDataArray:t}=D.current;t.push(e),t.sort((e,t)=>{let r=e.order,n=t.order;return null==r&&null==n?0:null==r?-1:null==n?1:r-n}),D.current.panelDataArrayChanged=!0,v()},[v]);E(()=>{if(D.current.panelDataArrayChanged){D.current.panelDataArrayChanged=!1;let{autoSaveId:r,onLayout:n,storage:a}=A.current,{layout:s,panelDataArray:i}=D.current,l=null;if(r){var e,t;let n=null!=(t=(null!=(e=eM(r,a))?e:{})[eD(i)])?t:null;n&&(w.current=new Map(Object.entries(n.expandToSizes)),l=n.layout)}null==l&&(l=function({panelDataArray:e}){let t=Array(e.length),r=e.map(e=>e.constraints),n=0,a=100;for(let s=0;s<e.length;s++){let e=r[s];eh(e,`Panel constraints not found for index ${s}`);let{defaultSize:i}=e;null!=i&&(n++,t[s]=i,a-=i)}for(let s=0;s<e.length;s++){let i=r[s];eh(i,`Panel constraints not found for index ${s}`);let{defaultSize:l}=i;if(null!=l)continue;let o=a/(e.length-n);n++,t[s]=o,a-=o}return t}({panelDataArray:i}));let o=eP({layout:l,panelConstraints:i.map(e=>e.constraints)});ek(s,o)||(b(o),D.current.layout=o,n&&n(o),eN(i,o,y.current))}}),E(()=>{let e=D.current;return()=>{e.layout=[]}},[]);let O=(0,i.useCallback)(e=>{let t=!1,r=m.current;return r&&"rtl"===window.getComputedStyle(r,null).getPropertyValue("direction")&&(t=!0),function(r){var n,a;r.preventDefault();let s=m.current;if(!s)return()=>null;let{direction:i,dragState:l,id:o,keyboardResizeBy:u,onLayout:c}=A.current,{layout:d,panelDataArray:h}=D.current,{initialLayout:f}=null!=l?l:{},p=ey(o,e,s),x=function(e,t,r,n,a,s){if($(e)){let t="horizontal"===r,n=0;n=e.shiftKey?100:null!=a?a:10;let s=0;switch(e.key){case"ArrowDown":s=t?0:n;break;case"ArrowLeft":s=t?-n:0;break;case"ArrowRight":s=t?n:0;break;case"ArrowUp":s=t?0:-n;break;case"End":s=100;break;case"Home":s=-100}return s}return null==n?0:function(e,t,r,n,a){let s="horizontal"===r,i=ej(t,a);eh(i,`No resize handle element found for id "${t}"`);let l=i.getAttribute(C);eh(l,"Resize handle element has no group id attribute");let{initialCursorPosition:o}=n,u=eC(r,e),c=ew(l,a);eh(c,`No group element found for id "${l}"`);let d=c.getBoundingClientRect();return(u-o)/(s?d.width:d.height)*100}(e,t,r,n,s)}(r,e,i,l,u,s),g="horizontal"===i;g&&t&&(x=-x);let v=eg({delta:x,initialLayout:null!=f?f:d,panelConstraints:h.map(e=>e.constraints),pivotIndices:p,prevLayout:d,trigger:$(r)?"keyboard":"mouse-or-touch"}),w=!eS(d,v);(T(r)||_(r))&&N.current!=x&&((N.current=x,w||0===x)?et.set(e,0):g?(n=x<0?U:Y,et.set(e,n)):(a=x<0?q:J,et.set(e,a))),w&&(b(v),D.current.layout=v,c&&c(v),eN(h,v,y.current))}},[]),W=(0,i.useCallback)((e,t)=>{let{onLayout:r}=A.current,{layout:n,panelDataArray:a}=D.current,s=a.map(e=>e.constraints),{panelSize:i,pivotIndices:l}=e$(a,e,n);eh(null!=i,`Panel size not found for panel "${e.id}"`);let o=eg({delta:ez(a,e)===a.length-1?i-t:t-i,initialLayout:n,panelConstraints:s,pivotIndices:l,prevLayout:n,trigger:"imperative-api"});eS(n,o)||(b(o),D.current.layout=o,r&&r(o),eN(a,o,y.current))},[]),H=(0,i.useCallback)((e,t)=>{let{layout:r,panelDataArray:n}=D.current,{collapsedSize:a=0,collapsible:s}=t,{collapsedSize:i=0,collapsible:l,maxSize:o=100,minSize:u=0}=e.constraints,{panelSize:c}=e$(n,e,r);null!=c&&(s&&l&&em(c,a)?em(a,i)||W(e,i):c<u?W(e,u):c>o&&W(e,o))},[W]),G=(0,i.useCallback)((e,t)=>{let{direction:r}=A.current,{layout:n}=D.current;if(!m.current)return;let a=ej(e,m.current);eh(a,`Drag handle element not found for id "${e}"`);let s=eC(r,t);x({dragHandleId:e,dragHandleRect:a.getBoundingClientRect(),initialCursorPosition:s,initialLayout:n})},[]),K=(0,i.useCallback)(()=>{x(null)},[]),V=(0,i.useCallback)(e=>{let{panelDataArray:t}=D.current,r=ez(t,e);r>=0&&(t.splice(r,1),delete y.current[e.id],D.current.panelDataArrayChanged=!0,v())},[v]),X=(0,i.useMemo)(()=>({collapsePanel:M,direction:n,dragState:p,expandPanel:P,getPanelSize:R,getPanelStyle:B,groupId:f,isPanelCollapsed:F,isPanelExpanded:L,reevaluatePanelConstraints:H,registerPanel:z,registerResizeHandle:O,resizePanel:W,startDragging:G,stopDragging:K,unregisterPanel:V,panelGroupElement:m.current}),[M,p,n,P,R,B,f,F,L,H,z,O,W,G,K,V]);return(0,i.createElement)(j.Provider,{value:X},(0,i.createElement)(d,{...h,children:t,className:r,id:s,ref:m,style:{display:"flex",flexDirection:"horizontal"===n?"row":"column",height:"100%",overflow:"hidden",width:"100%",...c},"data-panel-group":"",[k]:n,[C]:f}))}let eL=(0,i.forwardRef)((e,t)=>(0,i.createElement)(eF,{...e,forwardedRef:t}));function ez(e,t){return e.findIndex(e=>e===t||e.id===t.id)}function e$(e,t,r){let n=ez(e,t),a=n===e.length-1,s=r[n];return{...t.constraints,panelSize:s,pivotIndices:a?[n-1,n]:[n,n+1]}}function eT({children:e=null,className:t="",disabled:r=!1,hitAreaMargins:n,id:a,onBlur:s,onClick:l,onDragging:o,onFocus:u,onPointerDown:c,onPointerUp:d,style:h={},tabIndex:f=0,tagName:m="div",...p}){var x,g;let b=(0,i.useRef)(null),v=(0,i.useRef)({onClick:l,onDragging:o,onPointerDown:c,onPointerUp:d});(0,i.useEffect)(()=>{v.current.onClick=l,v.current.onDragging=o,v.current.onPointerDown=c,v.current.onPointerUp=d});let y=(0,i.useContext)(j);if(null===y)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");let{direction:w,groupId:A,registerResizeHandle:D,startDragging:M,stopDragging:P,panelGroupElement:R}=y,B=I(a),[F,L]=(0,i.useState)("inactive"),[z,$]=(0,i.useState)(!1),[T,_]=(0,i.useState)(null),O=(0,i.useRef)({state:F});E(()=>{O.current.state=F}),(0,i.useEffect)(()=>{if(r)_(null);else{let e=D(B);_(()=>e)}},[r,B,D]);let W=null!=(x=null==n?void 0:n.coarse)?x:15,H=null!=(g=null==n?void 0:n.fine)?g:5;return(0,i.useEffect)(()=>{if(r||null==T)return;let e=b.current;eh(e,"Element ref not attached");let t=!1;return function(e,t,r,n,a){var s;let{ownerDocument:i}=t,l={direction:r,element:t,hitAreaMargins:n,setResizeHandlerState:a},o=null!=(s=ee.get(i))?s:0;return ee.set(i,o+1),er.add(l),ec(),function(){var t;et.delete(e),er.delete(l);let r=null!=(t=ee.get(i))?t:1;if(ee.set(i,r-1),ec(),1===r&&ee.delete(i),Q.includes(l)){let e=Q.indexOf(l);e>=0&&Q.splice(e,1),eo(),a("up",!0,null)}}}(B,e,w,{coarse:W,fine:H},(e,r,n)=>{if(!r)return void L("inactive");switch(e){case"down":{L("drag"),t=!1,eh(n,'Expected event to be defined for "down" action'),M(B,n);let{onDragging:e,onPointerDown:r}=v.current;null==e||e(!0),null==r||r();break}case"move":{let{state:e}=O.current;t=!0,"drag"!==e&&L("hover"),eh(n,'Expected event to be defined for "move" action'),T(n);break}case"up":{L("hover"),P();let{onClick:e,onDragging:r,onPointerUp:n}=v.current;null==r||r(!1),null==n||n(),t||null==e||e()}}})},[W,w,r,H,D,B,T,M,P]),!function({disabled:e,handleId:t,resizeHandler:r,panelGroupElement:n}){(0,i.useEffect)(()=>{if(e||null==r||null==n)return;let a=ej(t,n);if(null==a)return;let s=e=>{if(!e.defaultPrevented)switch(e.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":e.preventDefault(),r(e);break;case"F6":{e.preventDefault();let r=a.getAttribute(C);eh(r,`No group element found for id "${r}"`);let s=eb(r,n),i=ev(r,t,n);eh(null!==i,`No resize element found for id "${t}"`);let l=e.shiftKey?i>0?i-1:s.length-1:i+1<s.length?i+1:0;s[l].focus()}}};return a.addEventListener("keydown",s),()=>{a.removeEventListener("keydown",s)}},[n,e,t,r])}({disabled:r,handleId:B,resizeHandler:T,panelGroupElement:R}),(0,i.createElement)(m,{...p,children:e,className:t,id:a,onBlur:()=>{$(!1),null==s||s()},onFocus:()=>{$(!0),null==u||u()},ref:b,role:"separator",style:{touchAction:"none",userSelect:"none",...h},tabIndex:f,[k]:w,[C]:A,[N]:"","data-resize-handle-active":"drag"===F?"pointer":z?"keyboard":void 0,"data-panel-resize-handle-enabled":!r,[S]:B,"data-resize-handle-state":F})}eF.displayName="PanelGroup",eL.displayName="forwardRef(PanelGroup)",eT.displayName="PanelResizeHandle",e.s([],547991),e.i(547991),e.i(905022);var e_=e.i(712194),eO=e.i(239917),eW=e.i(288782),eH=e.i(703995),eG=e.i(256035),eK=e.i(379672),eV=e.i(855604);let eU=i.createContext(void 0);function eY(){let e=i.useContext(eU);if(void 0===e)throw Error((0,eV.default)(64));return e}let eq=((r={}).activationDirection="data-activation-direction",r.orientation="data-orientation",r),eJ={tabActivationDirection:e=>({[eq.activationDirection]:e})},eX=i.forwardRef(function(e,t){let{className:r,defaultValue:n=0,onValueChange:a,orientation:l="horizontal",render:o,value:u,...c}=e,d=(0,eK.useDirection)(),h=Object.hasOwn(e,"defaultValue"),f=i.useRef([]),[m,p]=i.useState(()=>new Map),[x,g]=(0,e_.useControlled)({controlled:u,default:n,name:"Tabs",state:"value"}),b=void 0!==u,[v,y]=i.useState(()=>new Map),[w,j]=i.useState("none"),k=(0,eW.useStableCallback)((e,t)=>{a?.(e,t),t.isCanceled||(g(e),j(t.activationDirection))}),C=(0,eW.useStableCallback)((e,t)=>{p(r=>{if(r.get(e)===t)return r;let n=new Map(r);return n.set(e,t),n})}),N=(0,eW.useStableCallback)((e,t)=>{p(r=>{if(!r.has(e)||r.get(e)!==t)return r;let n=new Map(r);return n.delete(e),n})}),S=i.useCallback(e=>m.get(e),[m]),E=i.useCallback(e=>{for(let t of v.values())if(e===t?.value)return t?.id},[v]),A=i.useCallback(e=>{if(void 0===e)return null;for(let[t,r]of v.entries())if(null!=r&&e===(r.value??r.index))return t;return null},[v]),D=i.useMemo(()=>({direction:d,getTabElementBySelectedValue:A,getTabIdByPanelValue:E,getTabPanelIdByValue:S,onValueChange:k,orientation:l,registerMountedTabPanel:C,setTabMap:y,unregisterMountedTabPanel:N,tabActivationDirection:w,value:x}),[d,A,E,S,k,l,C,y,N,w,x]),M=i.useMemo(()=>{for(let e of v.values())if(null!=e&&e.value===x)return e},[v,x]),I=i.useMemo(()=>{for(let e of v.values())if(null!=e&&!e.disabled)return e.value},[v]);(0,eO.useIsoLayoutEffect)(()=>{if(b||0===v.size)return;let e=M?.disabled,t=null==M&&null!==x;if(h&&e&&x===n||!e&&!t)return;let r=I??null;x!==r&&(g(r),j("none"))},[n,I,h,b,M,j,g,v,x]);let P=(0,eH.useRenderElement)("div",e,{state:{orientation:l,tabActivationDirection:w},ref:t,props:c,stateAttributesMapping:eJ});return(0,s.jsx)(eU.Provider,{value:D,children:(0,s.jsx)(eG.CompositeList,{elementsRef:f,children:P})})});var eQ=e.i(313987),eZ=e.i(718226),e0=e.i(419851);let e1="data-composite-item-active";var e2=e.i(367950);let e5=i.createContext(void 0);function e3(){let e=i.useContext(e5);if(void 0===e)throw Error((0,eV.default)(65));return e}var e4=e.i(229305),e8=e.i(842923),e7=e.i(24620);let e6=i.forwardRef(function(e,t){let{className:r,disabled:n=!1,render:a,value:s,id:l,nativeButton:o=!0,...u}=e,{value:c,getTabPanelIdByValue:d,orientation:h}=eY(),{activateOnFocus:f,highlightedTabIndex:m,onTabActivation:p,registerTabResizeObserverElement:x,setHighlightedTabIndex:g,tabsListElement:b}=e3(),v=(0,eZ.useBaseUiId)(l),y=i.useMemo(()=>({disabled:n,id:v,value:s}),[n,v,s]),{compositeProps:w,compositeRef:j,index:k}=(0,e2.useCompositeItem)({metadata:y}),C=s===c,N=i.useRef(!1),S=i.useRef(null);i.useEffect(()=>{let e=S.current;if(e)return x(e)},[x]),(0,eO.useIsoLayoutEffect)(()=>{if(N.current){N.current=!1;return}if(C&&k>-1&&m!==k){if(null!=b){let e=(0,e7.activeElement)((0,eQ.ownerDocument)(b));if(e&&(0,e7.contains)(b,e))return}n||g(k)}},[C,k,m,g,n,b]);let{getButtonProps:E,buttonRef:A}=(0,e0.useButton)({disabled:n,native:o,focusableWhenDisabled:!0}),D=d(s),M=i.useRef(!1),I=i.useRef(!1);return(0,eH.useRenderElement)("button",e,{state:{disabled:n,active:C,orientation:h},ref:[t,A,j,S],props:[w,{role:"tab","aria-controls":D,"aria-selected":C,id:v,onClick:function(e){C||n||p(s,(0,e4.createChangeEventDetails)(e8.REASONS.none,e.nativeEvent,void 0,{activationDirection:"none"}))},onFocus:function(e){C||(k>-1&&!n&&g(k),!n&&f&&(!M.current||M.current&&I.current)&&p(s,(0,e4.createChangeEventDetails)(e8.REASONS.none,e.nativeEvent,void 0,{activationDirection:"none"})))},onPointerDown:function(e){C||n||(M.current=!0,e.button&&0!==e.button||(I.current=!0,(0,eQ.ownerDocument)(e.currentTarget).addEventListener("pointerup",function(){M.current=!1,I.current=!1},{once:!0})))},[e1]:C?"":void 0,onKeyDownCapture(){N.current=!0}},u,E]})});var e9=e.i(484397),te=e.i(34e4);let tt=((n={}).activeTabLeft="--active-tab-left",n.activeTabRight="--active-tab-right",n.activeTabTop="--active-tab-top",n.activeTabBottom="--active-tab-bottom",n.activeTabWidth="--active-tab-width",n.activeTabHeight="--active-tab-height",n);var tr=e.i(514400);let tn={...eJ,activeTabPosition:()=>null,activeTabSize:()=>null},ta=i.forwardRef(function(e,t){let{className:r,render:n,renderBeforeHydration:a=!1,...l}=e,{nonce:o}=(0,tr.useCSPContext)(),{getTabElementBySelectedValue:u,orientation:c,tabActivationDirection:d,value:h}=eY(),{tabsListElement:f,registerIndicatorUpdateListener:m}=e3(),[p,x]=i.useState(!1);(0,e9.useOnMount)(()=>x(!0));let g=function(){let[,e]=i.useState({});return i.useCallback(()=>{e({})},[])}();i.useEffect(()=>m(g),[m,g]);let b=0,v=0,y=0,w=0,j=0,k=0,C=!1;if(null!=h&&null!=f){let e=u(h);if(C=!0,null!=e){let{width:t,height:r}=(0,te.getCssDimensions)(e),{width:n,height:a}=(0,te.getCssDimensions)(f),s=e.getBoundingClientRect(),i=f.getBoundingClientRect(),l=n>0?i.width/n:1,o=a>0?i.height/a:1;if(Math.abs(l)>Number.EPSILON&&Math.abs(o)>Number.EPSILON){let e=s.left-i.left,t=s.top-i.top;b=e/l+f.scrollLeft-f.clientLeft,y=t/o+f.scrollTop-f.clientTop}else b=e.offsetLeft,y=e.offsetTop;j=t,k=r,v=f.scrollWidth-b-j,w=f.scrollHeight-y-k}}let N=i.useMemo(()=>C?{left:b,right:v,top:y,bottom:w}:null,[b,v,y,w,C]),S=i.useMemo(()=>C?{width:j,height:k}:null,[j,k,C]),E=i.useMemo(()=>{if(C)return{[tt.activeTabLeft]:`${b}px`,[tt.activeTabRight]:`${v}px`,[tt.activeTabTop]:`${y}px`,[tt.activeTabBottom]:`${w}px`,[tt.activeTabWidth]:`${j}px`,[tt.activeTabHeight]:`${k}px`}},[b,v,y,w,j,k,C]),A=C&&j>0&&k>0,D=(0,eH.useRenderElement)("span",e,{state:{orientation:c,activeTabPosition:N,activeTabSize:S,tabActivationDirection:d},ref:t,props:[{role:"presentation",style:E,hidden:!A},l,{suppressHydrationWarning:!0}],stateAttributesMapping:tn});return null==h?null:(0,s.jsxs)(i.Fragment,{children:[D,!p&&a&&(0,s.jsx)("script",{nonce:o,dangerouslySetInnerHTML:{__html:'!function(){const t=document.currentScript.previousElementSibling;if(!t)return;const e=t.closest(\'[role="tablist"]\');if(!e)return;const i=e.querySelector("[data-active]");if(!i)return;if(0===i.offsetWidth||0===e.offsetWidth)return;let o=0,n=0,h=0,l=0,r=0,f=0;function s(t){const e=getComputedStyle(t);let i=parseFloat(e.width)||0,o=parseFloat(e.height)||0;return(Math.round(i)!==t.offsetWidth||Math.round(o)!==t.offsetHeight)&&(i=t.offsetWidth,o=t.offsetHeight),{width:i,height:o}}if(null!=i&&null!=e){const{width:t,height:c}=s(i),{width:u,height:d}=s(e),a=i.getBoundingClientRect(),g=e.getBoundingClientRect(),p=u>0?g.width/u:1,b=d>0?g.height/d:1;if(Math.abs(p)>Number.EPSILON&&Math.abs(b)>Number.EPSILON){const t=a.left-g.left,i=a.top-g.top;o=t/p+e.scrollLeft-e.clientLeft,h=i/b+e.scrollTop-e.clientTop}else o=i.offsetLeft,h=i.offsetTop;r=t,f=c,n=e.scrollWidth-o-r,l=e.scrollHeight-h-f}function c(e,i){t.style.setProperty(`--active-tab-${e}`,`${i}px`)}c("left",o),c("right",n),c("top",h),c("bottom",l),c("width",r),c("height",f),r>0&&f>0&&t.removeAttribute("hidden")}();'},suppressHydrationWarning:!0})]})});var ts=e.i(593328),ti=e.i(963195),tl=e.i(762879),to=e.i(680765),tu=e.i(729824);let tc=((a={}).index="data-index",a.activationDirection="data-activation-direction",a.orientation="data-orientation",a.hidden="data-hidden",a[a.startingStyle=ti.TransitionStatusDataAttributes.startingStyle]="startingStyle",a[a.endingStyle=ti.TransitionStatusDataAttributes.endingStyle]="endingStyle",a),td={...eJ,...ti.transitionStatusMapping},th=i.forwardRef(function(e,t){let{className:r,value:n,render:a,keepMounted:s=!1,...l}=e,{value:o,getTabIdByPanelValue:u,orientation:c,tabActivationDirection:d,registerMountedTabPanel:h,unregisterMountedTabPanel:f}=eY(),m=(0,eZ.useBaseUiId)(),p=i.useMemo(()=>({id:m,value:n}),[m,n]),{ref:x,index:g}=(0,tu.useCompositeListItem)({metadata:p}),b=n===o,{mounted:v,transitionStatus:y,setMounted:w}=(0,to.useTransitionStatus)(b),j=!v,k=u(n),C=i.useRef(null),N=(0,eH.useRenderElement)("div",e,{state:{hidden:j,orientation:c,tabActivationDirection:d,transitionStatus:y},ref:[t,x,C],props:[{"aria-labelledby":k,hidden:j,id:m,role:"tabpanel",tabIndex:b?0:-1,inert:(0,ts.inertValue)(!b),[tc.index]:g},l],stateAttributesMapping:td});return((0,tl.useOpenChangeComplete)({open:b,ref:C,onComplete(){b||w(!1)}}),(0,eO.useIsoLayoutEffect)(()=>{if((!j||s)&&null!=m)return h(n,m),()=>{f(n,m)}},[j,s,n,m,h,f]),s||v)?N:null});var tf=e.i(205856),tm=e.i(773753),tp=e.i(159639);let tx=[];var tg=e.i(59742),tb=e.i(534262);function tv(e){let{render:t,className:r,refs:n=tb.EMPTY_ARRAY,props:a=tb.EMPTY_ARRAY,state:l=tb.EMPTY_OBJECT,stateAttributesMapping:o,highlightedIndex:u,onHighlightedIndexChange:c,orientation:d,dense:h,itemSizes:f,loopFocus:m,cols:p,enableHomeAndEndKeys:x,onMapChange:g,stopEventPropagation:b=!0,rootRef:v,disabledIndices:y,modifierKeys:w,highlightItemOnHover:j=!1,tag:k="div",...C}=e,{props:N,highlightedIndex:S,onHighlightedIndexChange:E,elementsRef:A,onMapChange:D,relayKeyboardEvent:M}=function(e){let{itemSizes:t,cols:r=1,loopFocus:n=!0,dense:a=!1,orientation:s="both",direction:l,highlightedIndex:o,onHighlightedIndexChange:u,rootRef:c,enableHomeAndEndKeys:d=!1,stopEventPropagation:h=!1,disabledIndices:f,modifierKeys:m=tx}=e,[p,x]=i.useState(0),g=r>1,b=i.useRef(null),v=(0,tf.useMergedRefs)(b,c),y=i.useRef([]),w=i.useRef(!1),j=o??p,k=(0,eW.useStableCallback)((e,t=!1)=>{if((u??x)(e),t){let t=y.current[e];(0,tm.scrollIntoViewIfNeeded)(b.current,t,l,s)}}),C=(0,eW.useStableCallback)(e=>{if(0===e.size||w.current)return;w.current=!0;let t=Array.from(e.keys()),r=t.find(e=>e?.hasAttribute(e1))??null,n=r?t.indexOf(r):-1;-1!==n&&k(n),(0,tm.scrollIntoViewIfNeeded)(b.current,r,l,s)}),N=i.useMemo(()=>({"aria-orientation":"both"===s?void 0:s,ref:v,onFocus(e){b.current&&(0,tm.isNativeInput)(e.target)&&e.target.setSelectionRange(0,e.target.value.length??0)},onKeyDown(e){var i;let o=d?tm.ALL_KEYS:tm.ARROW_KEYS;if(!o.has(e.key)||function(e,t){for(let r of tm.MODIFIER_KEYS.values())if(!t.includes(r)&&e.getModifierState(r))return!0;return!1}(e,m)||!b.current)return;let u="rtl"===l,c=u?tm.ARROW_LEFT:tm.ARROW_RIGHT,p={horizontal:c,vertical:tm.ARROW_DOWN,both:c}[s],x=u?tm.ARROW_RIGHT:tm.ARROW_LEFT,v={horizontal:x,vertical:tm.ARROW_UP,both:x}[s];if((0,tm.isNativeInput)(e.target)&&!(null==(i=e.target)||i.hasAttribute("disabled")||"true"===i.getAttribute("aria-disabled"))){let t=e.target.selectionStart,r=e.target.selectionEnd,n=e.target.value??"";if(null==t||e.shiftKey||t!==r||e.key!==v&&t<n.length||e.key!==p&&t>0)return}let w=j,C=(0,tp.getMinListIndex)(y,f),N=(0,tp.getMaxListIndex)(y,f);if(g){let i=t||Array.from({length:y.current.length},()=>({width:1,height:1})),l=(0,tp.createGridCellMap)(i,r,a),o=l.findIndex(e=>null!=e&&!(0,tp.isListIndexDisabled)(y,e,f)),c=l.reduce((e,t,r)=>null==t||(0,tp.isListIndexDisabled)(y,t,f)?e:r,-1);w=l[(0,tp.getGridNavigatedIndex)({current:l.map(e=>e?y.current[e]:null)},{event:e,orientation:s,loopFocus:n,cols:r,disabledIndices:(0,tp.getGridCellIndices)([...f||y.current.map((e,t)=>(0,tp.isListIndexDisabled)(y,t)?t:void 0),void 0],l),minIndex:o,maxIndex:c,prevIndex:(0,tp.getGridCellIndexOfCorner)(j>N?C:j,i,l,r,e.key===tm.ARROW_DOWN?"bl":e.key===tm.ARROW_RIGHT?"tr":"tl"),rtl:u})]}let S={horizontal:[c],vertical:[tm.ARROW_DOWN],both:[c,tm.ARROW_DOWN]}[s],E={horizontal:[x],vertical:[tm.ARROW_UP],both:[x,tm.ARROW_UP]}[s],A=g?o:({horizontal:d?tm.HORIZONTAL_KEYS_WITH_EXTRA_KEYS:tm.HORIZONTAL_KEYS,vertical:d?tm.VERTICAL_KEYS_WITH_EXTRA_KEYS:tm.VERTICAL_KEYS,both:o})[s];d&&(e.key===tm.HOME?w=C:e.key===tm.END&&(w=N)),w===j&&(S.includes(e.key)||E.includes(e.key))&&(w=n&&w===N&&S.includes(e.key)?C:n&&w===C&&E.includes(e.key)?N:(0,tp.findNonDisabledListIndex)(y,{startingIndex:w,decrement:E.includes(e.key),disabledIndices:f})),w===j||(0,tp.isIndexOutOfListBounds)(y,w)||(h&&e.stopPropagation(),A.has(e.key)&&e.preventDefault(),k(w,!0),queueMicrotask(()=>{y.current[w]?.focus()}))}}),[r,a,l,f,y,d,j,g,t,n,v,m,k,s,h]);return i.useMemo(()=>({props:N,highlightedIndex:j,onHighlightedIndexChange:k,elementsRef:y,disabledIndices:f,onMapChange:C,relayKeyboardEvent:N.onKeyDown}),[N,j,k,y,f,C])}({itemSizes:f,cols:p,loopFocus:m,dense:h,orientation:d,highlightedIndex:u,onHighlightedIndexChange:c,rootRef:v,stopEventPropagation:b,enableHomeAndEndKeys:x,direction:(0,eK.useDirection)(),disabledIndices:y,modifierKeys:w}),I=(0,eH.useRenderElement)(k,e,{state:l,ref:n,props:[N,...a,C],stateAttributesMapping:o}),P=i.useMemo(()=>({highlightedIndex:S,onHighlightedIndexChange:E,highlightItemOnHover:j,relayKeyboardEvent:M}),[S,E,j,M]);return(0,s.jsx)(tg.CompositeRootContext.Provider,{value:P,children:(0,s.jsx)(eG.CompositeList,{elementsRef:A,onMapChange:e=>{g?.(e),D(e)},children:I})})}let ty=i.forwardRef(function(e,t){let{activateOnFocus:r=!1,className:n,loopFocus:a=!0,render:l,...o}=e,{getTabElementBySelectedValue:u,onValueChange:c,orientation:d,value:h,setTabMap:f,tabActivationDirection:m}=eY(),[p,x]=i.useState(0),[g,b]=i.useState(null),v=i.useRef(new Set),y=i.useRef(new Set),w=i.useRef(null),j=(0,eW.useStableCallback)(()=>{v.current.forEach(e=>{e()})});i.useEffect(()=>{if("u"<typeof ResizeObserver)return;let e=new ResizeObserver(()=>{v.current.size&&j()});return w.current=e,g&&e.observe(g),y.current.forEach(t=>{e.observe(t)}),()=>{e.disconnect(),w.current=null}},[g,j]);let k=(0,eW.useStableCallback)(e=>(v.current.add(e),()=>{v.current.delete(e)})),C=(0,eW.useStableCallback)(e=>(y.current.add(e),w.current?.observe(e),()=>{y.current.delete(e),w.current?.unobserve(e)})),N=function(e,t,r,n){let[a,s]=i.useState(null);return(0,eO.useIsoLayoutEffect)(()=>{if(null==e||null==r)return void s(null);let a=n(e);if(null==a)return void s(null);let{left:i,top:l}=tw(a,r);s("horizontal"===t?i:l)},[t,n,r,e]),i.useCallback(i=>{if(i===e)return"none";if(null==i)return s(null),"none";if(null!=i&&null!=r){let e=n(i);if(null!=e){let{left:n,top:i}=tw(e,r);if(null==a)return s("horizontal"===t?n:i),"none";if("horizontal"===t){if(n<a)return s(n),"left";if(n>a)return s(n),"right"}else if(i<a)return s(i),"up";else if(i>a)return s(i),"down"}}return"none"},[n,t,a,r,e])}(h,d,g,u),S=(0,eW.useStableCallback)((e,t)=>{e!==h&&(t.activationDirection=N(e),c(e,t))}),E=i.useMemo(()=>({activateOnFocus:r,highlightedTabIndex:p,registerIndicatorUpdateListener:k,registerTabResizeObserverElement:C,onTabActivation:S,setHighlightedTabIndex:x,tabsListElement:g}),[r,p,k,C,S,x,g]);return(0,s.jsx)(e5.Provider,{value:E,children:(0,s.jsx)(tv,{render:l,className:n,state:{orientation:d,tabActivationDirection:m},refs:[t,b],props:[{"aria-orientation":"vertical"===d?"vertical":void 0,role:"tablist"},o],stateAttributesMapping:eJ,highlightedIndex:p,enableHomeAndEndKeys:!0,loopFocus:a,orientation:d,onHighlightedIndexChange:x,onMapChange:f,disabledIndices:tb.EMPTY_ARRAY})})});function tw(e,t){let{left:r,top:n}=e.getBoundingClientRect(),{left:a,top:s}=t.getBoundingClientRect();return{left:r-a,top:n-s}}e.s(["Indicator",0,ta,"List",0,ty,"Panel",0,th,"Root",0,eX,"Tab",0,e6],139417);var tj=e.i(139417),tj=tj,tk=e.i(555138),tC=e.i(47816);function tN({className:e,orientation:t="horizontal",...r}){return(0,s.jsx)(tj.Root,{"data-slot":"tabs","data-orientation":t,className:(0,tC.cn)("group/tabs flex gap-2 data-horizontal:flex-col",e),...r})}let tS=(0,tk.cva)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function tE({className:e,variant:t="default",...r}){return(0,s.jsx)(tj.List,{"data-slot":"tabs-list","data-variant":t,className:(0,tC.cn)(tS({variant:t}),e),...r})}function tA({className:e,...t}){return(0,s.jsx)(tj.Tab,{"data-slot":"tabs-trigger",className:(0,tC.cn)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent","data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",e),...t})}function tD({className:e,...t}){return(0,s.jsx)(tj.Panel,{"data-slot":"tabs-content",className:(0,tC.cn)("flex-1 text-sm outline-none",e),...t})}var tM=e.i(246762),tI=e.i(960732),tP=e.i(993453),tR=e.i(683020),tB=e.i(621994);let tF=(0,d.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);function tL(e){return Array.isArray?Array.isArray(e):"[object Array]"===tH(e)}function tz(e){return null==e?"":function(e){if("string"==typeof e)return e;if("bigint"==typeof e)return e.toString();let t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(e)}function t$(e){return"string"==typeof e}function tT(e){return"number"==typeof e}function t_(e){return"object"==typeof e}function tO(e){return null!=e}function tW(e){return!e.trim().length}function tH(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}let tG=Object.prototype.hasOwnProperty;class tK{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let r=tV(e);this._keys.push(r),this._keyMap[r.id]=r,t+=r.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function tV(e){let t=null,r=null,n=null,a=1,s=null;if(t$(e)||tL(e))n=e,t=tU(e),r=tY(e);else{if(!tG.call(e,"name"))throw Error("Missing name property in key");let i=e.name;if(n=i,tG.call(e,"weight")&&(a=e.weight)<=0)throw Error(`Property 'weight' in key '${i}' must be a positive integer`);t=tU(i),r=tY(i),s=e.getFn}return{path:t,id:r,weight:a,src:n,getFn:s}}function tU(e){return tL(e)?e:e.split(".")}function tY(e){return tL(e)?e.join("."):e}let tq=Object.freeze({isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,useExtendedSearch:!1,useTokenSearch:!1,getFn:function(e,t){let r=[],n=!1,a=(e,t,s,i)=>{if(tO(e))if(t[s]){var l,o;let u=e[t[s]];if(!tO(u))return;if(s===t.length-1&&(t$(u)||tT(u)||!0===(l=u)||!1===l||t_(o=l)&&null!==o&&"[object Boolean]"==tH(l)||"bigint"==typeof u))r.push(void 0!==i?{v:tz(u),i:i}:tz(u));else if(tL(u)){n=!0;for(let e=0,r=u.length;e<r;e+=1)a(u[e],t,s+1,e)}else t.length&&a(u,t,s+1,i)}else r.push(void 0!==i?{v:e,i:i}:e)};return a(e,t$(t)?t.split("."):t,0),n?r:r[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1}),tJ=/[^ ]+/g;class tX{constructor({getFn:e=tq.getFn,fieldNormWeight:t=tq.fieldNormWeight}={}){this.norm=function(e=1,t=3){let r=new Map,n=Math.pow(10,t);return{get(t){let a=t.match(tJ).length;if(r.has(a))return r.get(a);let s=parseFloat(Math.round(1/Math.pow(a,.5*e)*n)/n);return r.set(a,s),s},clear(){r.clear()}}}(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,t$(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){let t=this.size();t$(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,r=this.size();t<r;t+=1)this.records[t].i-=1}removeAll(e){for(let t=e.length-1;t>=0;t-=1)this.records.splice(e[t],1);for(let e=0,t=this.records.length;e<t;e+=1)this.records[e].i=e}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!tO(e)||tW(e))return;let r={v:e,i:t,n:this.norm.get(e)};this.records.push(r)}_addObject(e,t){let r={i:t,$:{}};this.keys.forEach((t,n)=>{let a=t.getFn?t.getFn(e):this.getFn(e,t.path);if(tO(a)){if(tL(a)){let e=[];for(let t=0,r=a.length;t<r;t+=1){let r=a[t];if(tO(r)){if(t$(r)){if(!tW(r)){let n={v:r,i:t,n:this.norm.get(r)};e.push(n)}}else if(tO(r.v)){let t=t$(r.v)?r.v:tz(r.v);if(!tW(t)){let n={v:t,i:r.i,n:this.norm.get(t)};e.push(n)}}}}r.$[n]=e}else if(t$(a)&&!tW(a)){let e={v:a,n:this.norm.get(a)};r.$[n]=e}}}),this.records.push(r)}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}}function tQ(e,t,{getFn:r=tq.getFn,fieldNormWeight:n=tq.fieldNormWeight}={}){let a=new tX({getFn:r,fieldNormWeight:n});return a.setKeys(e.map(tV)),a.setSources(t),a.create(),a}function tZ(e){if(e.length<=1)return e;e.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let t=[e[0]];for(let r=1,n=e.length;r<n;r+=1){let n=t[t.length-1],a=e[r];a[0]<=n[1]+1?n[1]=Math.max(n[1],a[1]):t.push(a)}return t}let t0={ł:"l",Ł:"L",đ:"d",Đ:"D",ø:"o",Ø:"O",ħ:"h",Ħ:"H",ŧ:"t",Ŧ:"T",ı:"i",ß:"ss"},t1=RegExp("["+Object.keys(t0).join("")+"]","g"),t2=String.prototype.normalize?e=>e.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(t1,e=>t0[e]):e=>e;class t5{constructor(e,{location:t=tq.location,threshold:r=tq.threshold,distance:n=tq.distance,includeMatches:a=tq.includeMatches,findAllMatches:s=tq.findAllMatches,minMatchCharLength:i=tq.minMatchCharLength,isCaseSensitive:l=tq.isCaseSensitive,ignoreDiacritics:o=tq.ignoreDiacritics,ignoreLocation:u=tq.ignoreLocation}={}){if(this.options={location:t,threshold:r,distance:n,includeMatches:a,findAllMatches:s,minMatchCharLength:i,isCaseSensitive:l,ignoreDiacritics:o,ignoreLocation:u},e=l?e:e.toLowerCase(),e=o?t2(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const c=(e,t)=>{this.chunks.push({pattern:e,alphabet:function(e){let t={};for(let r=0,n=e.length;r<n;r+=1){let a=e.charAt(r);t[a]=(t[a]||0)|1<<n-r-1}return t}(e),startIndex:t})},d=this.pattern.length;if(d>32){let e=0;const t=d%32,r=d-t;for(;e<r;)c(this.pattern.substr(e,32),e),e+=32;if(t){const e=d-32;c(this.pattern.substr(e),e)}}else c(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:r,includeMatches:n}=this.options;if(e=t?e:e.toLowerCase(),e=r?t2(e):e,this.pattern===e){let t={isMatch:!0,score:0};return n&&(t.indices=[[0,e.length-1]]),t}let{location:a,distance:s,threshold:i,findAllMatches:l,minMatchCharLength:o,ignoreLocation:u}=this.options,c=[],d=0,h=!1;this.chunks.forEach(({pattern:t,alphabet:r,startIndex:f})=>{let{isMatch:m,score:p,indices:x}=function(e,t,r,{location:n=tq.location,distance:a=tq.distance,threshold:s=tq.threshold,findAllMatches:i=tq.findAllMatches,minMatchCharLength:l=tq.minMatchCharLength,includeMatches:o=tq.includeMatches,ignoreLocation:u=tq.ignoreLocation}={}){let c;if(t.length>32)throw Error("Pattern length exceeds max of 32.");let d=t.length,h=e.length,f=Math.max(0,Math.min(n,h)),m=s,p=f,x=(e,t)=>{let r=e/d;if(u)return r;let n=Math.abs(f-t);return a?r+n/a:n?1:r},g=l>1||o,b=g?Array(h):[];for(;(c=e.indexOf(t,p))>-1;)if(m=Math.min(x(0,c),m),p=c+d,g){let e=0;for(;e<d;)b[c+e]=1,e+=1}p=-1;let v=[],y=1,w=d+h,j=1<<d-1;for(let t=0;t<d;t+=1){let n=0,a=w;for(;n<a;)x(t,f+a)<=m?n=a:w=a,a=Math.floor((w-n)/2+n);w=a;let s=Math.max(1,f-a+1),l=i?h:Math.min(f+a,h)+d,o=Array(l+2);o[l+1]=(1<<t)-1;for(let n=l;n>=s;n-=1){let a=n-1,i=r[e[a]];if(g&&(b[a]=+!!i),o[n]=(o[n+1]<<1|1)&i,t&&(o[n]|=(v[n+1]|v[n])<<1|1|v[n+1]),o[n]&j&&(y=x(t,a))<=m){if(m=y,(p=a)<=f)break;s=Math.max(1,2*f-p)}}if(x(t+1,f)>m)break;v=o}let k={isMatch:p>=0,score:Math.max(.001,y)};if(g){let e=function(e=[],t=tq.minMatchCharLength){let r=[],n=-1,a=-1,s=0;for(let i=e.length;s<i;s+=1){let i=e[s];i&&-1===n?n=s:i||-1===n||((a=s-1)-n+1>=t&&r.push([n,a]),n=-1)}return e[s-1]&&s-n>=t&&r.push([n,s-1]),r}(b,l);e.length?o&&(k.indices=e):k.isMatch=!1}return k}(e,t,r,{location:a+f,distance:s,threshold:i,findAllMatches:l,minMatchCharLength:o,includeMatches:n,ignoreLocation:u});m&&(h=!0),d+=p,m&&x&&c.push(...x)});let f={isMatch:h,score:h?d/this.chunks.length:1};return h&&n&&(f.indices=tZ(c)),f}}class t3{constructor(e){this.pattern=e}static isMultiMatch(e){return t4(e,this.multiRegex)}static isSingleMatch(e){return t4(e,this.singleRegex)}search(e){return{isMatch:!1,score:1}}}function t4(e,t){let r=e.match(t);return r?r[1]:null}class t8 extends t3{constructor(e,{location:t=tq.location,threshold:r=tq.threshold,distance:n=tq.distance,includeMatches:a=tq.includeMatches,findAllMatches:s=tq.findAllMatches,minMatchCharLength:i=tq.minMatchCharLength,isCaseSensitive:l=tq.isCaseSensitive,ignoreDiacritics:o=tq.ignoreDiacritics,ignoreLocation:u=tq.ignoreLocation}={}){super(e),this._bitapSearch=new t5(e,{location:t,threshold:r,distance:n,includeMatches:a,findAllMatches:s,minMatchCharLength:i,isCaseSensitive:l,ignoreDiacritics:o,ignoreLocation:u})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class t7 extends t3{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t,r=0,n=[],a=this.pattern.length;for(;(t=e.indexOf(this.pattern,r))>-1;)r=t+a,n.push([t,r-1]);let s=!!n.length;return{isMatch:s,score:+!s,indices:n}}}let t6=[class extends t3{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){let t=e===this.pattern;return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},t7,class extends t3{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){let t=e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},class extends t3{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){let t=!e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends t3{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){let t=!e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},class extends t3{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){let t=e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[e.length-this.pattern.length,e.length-1]}}},class extends t3{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){let t=-1===e.indexOf(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},t8],t9=t6.length,re=new Set([t8.type,t7.type]),rt=[];function rr(...e){rt.push(...e)}function rn(e,t){for(let r=0,n=rt.length;r<n;r+=1){let n=rt[r];if(n.condition(e,t))return new n(e,t)}return new t5(e,t)}let ra="$and",rs="$path",ri=e=>!!(e[ra]||e.$or),rl=e=>({[ra]:Object.keys(e).map(t=>({[t]:e[t]}))});function ro(e,t,{auto:r=!0}={}){let n=e=>{if(t$(e)){let n={keyId:null,pattern:e};return r&&(n.searcher=rn(e,t)),n}let a=Object.keys(e),s=!!e[rs];if(!s&&a.length>1&&!ri(e))return n(rl(e));if(!tL(e)&&t_(e)&&!ri(e)){let n=s?e[rs]:a[0],i=s?e.$val:e[n];if(!t$(i))throw Error(`Invalid value for key ${n}`);let l={keyId:tY(n),pattern:i};return r&&(l.searcher=rn(i,t)),l}let i={children:[],operator:a[0]};return a.forEach(t=>{let r=e[t];tL(r)&&r.forEach(e=>{i.children.push(n(e))})}),i};return ri(e)||(e=rl(e)),n(e)}function ru(e,{ignoreFieldNorm:t=tq.ignoreFieldNorm}){let r=1;return e.forEach(({key:e,norm:n,score:a})=>{let s=e?e.weight:null;r*=Math.pow(0===a&&s?Number.EPSILON:a,(s||1)*(t?1:n))}),r}class rc{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){let t=this.heap;for(;e>0;){let r=e-1>>1;if(t[e].score<=t[r].score)break;let n=t[e];t[e]=t[r],t[r]=n,e=r}}_sinkDown(e){let t=this.heap,r=t.length,n=e;do{let a=2*(e=n)+1,s=2*e+2;if(a<r&&t[a].score>t[n].score&&(n=a),s<r&&t[s].score>t[n].score&&(n=s),n!==e){let r=t[e];t[e]=t[n],t[n]=r}}while(n!==e)}}function rd(e,t){let r=e.matches;t.matches=[],tO(r)&&r.forEach(e=>{if(!tO(e.indices)||!e.indices.length)return;let{indices:r,value:n}=e,a={indices:r,value:n};e.key&&(a.key=e.key.src),e.idx>-1&&(a.refIndex=e.idx),t.matches.push(a)})}function rh(e,t){t.score=e.score}let rf=/\b\w+\b/g;function rm({isCaseSensitive:e=!1,ignoreDiacritics:t=!1}={}){return{tokenize:r=>(e||(r=r.toLowerCase()),t&&(r=t2(r)),r.match(rf)||[])}}function rp(e,t){for(let[r,n]of e.terms){let a=n.filter(e=>e.docIdx!==t),s=n.length-a.length;s>0&&(e.fieldCount-=s,e.df.set(r,(e.df.get(r)||0)-s),0===a.length?(e.terms.delete(r),e.df.delete(r)):e.terms.set(r,a))}}class rx{constructor(e,t,r){this.options={...tq,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new tK(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,r),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;let t=rn(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof tX))throw Error("Incorrect 'index' type");if(this._myIndex=t||tQ(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=rm({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics});this._invertedIndex=function(e,t,r){let n=new Map,a=new Map,s=0;function i(e,t,i,l){let o=r.tokenize(e);if(!o.length)return;s++;let u=new Map;for(let e of o)u.set(e,(u.get(e)||0)+1);for(let[e,r]of u){let s={docIdx:t,keyIdx:i,subIdx:l,tf:r},o=n.get(e);o||(o=[],n.set(e,o)),o.push(s),a.set(e,(a.get(e)||0)+1)}}for(let r of e){let{i:e,v:n,$:a}=r;if(void 0!==n){i(n,e,-1,-1);continue}if(a)for(let r=0;r<t;r++){let t=a[r];if(t)if(Array.isArray(t))for(let n of t)i(n.v,e,r,n.i??-1);else i(t.v,e,r,-1)}}return{terms:n,fieldCount:s,df:a}}(this._myIndex.records,this._myIndex.keys.length,e)}}add(e){if(tO(e)&&(this._docs.push(e),this._myIndex.add(e),this._invertedIndex)){let e=this._myIndex.records[this._myIndex.records.length-1],t=rm({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics});!function(e,t,r,n){let{i:a,v:s,$:i}=t;function l(t,r,s){let i=n.tokenize(t);if(!i.length)return;e.fieldCount++;let l=new Map;for(let e of i)l.set(e,(l.get(e)||0)+1);for(let[t,n]of l){let i={docIdx:a,keyIdx:r,subIdx:s,tf:n},l=e.terms.get(t);l||(l=[],e.terms.set(t,l)),l.push(i),e.df.set(t,(e.df.get(t)||0)+1)}}if(void 0!==s)return l(s,-1,-1);if(i)for(let e=0;e<r;e++){let t=i[e];if(t)if(Array.isArray(t))for(let r of t)l(r.v,e,r.i??-1);else l(t.v,e,-1)}}(this._invertedIndex,e,this._myIndex.keys.length,t)}}remove(e=()=>!1){let t=[],r=[];for(let n=0,a=this._docs.length;n<a;n+=1)e(this._docs[n],n)&&(t.push(this._docs[n]),r.push(n));if(r.length){if(this._invertedIndex)for(let e of r)rp(this._invertedIndex,e);for(let e=r.length-1;e>=0;e-=1)this._docs.splice(r[e],1);this._myIndex.removeAll(r)}return t}removeAt(e){this._invertedIndex&&rp(this._invertedIndex,e);let t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),t}getIndex(){return this._myIndex}search(e,t){let r,{limit:n=-1}=t||{},{includeMatches:a,includeScore:s,shouldSort:i,sortFn:l,ignoreFieldNorm:o}=this.options;if(t$(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return tT(n)&&n>-1&&(e=e.slice(0,n)),e}if(tT(n)&&n>0&&t$(e)){let t=new rc(n);t$(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:o}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:o}),r=t.extractSorted(l)}else!function(e,{ignoreFieldNorm:t=tq.ignoreFieldNorm}){e.forEach(e=>{e.score=ru(e.matches,{ignoreFieldNorm:t})})}(r=t$(e)?t$(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),{ignoreFieldNorm:o}),i&&r.sort(l),tT(n)&&n>-1&&(r=r.slice(0,n));return function(e,t,{includeMatches:r=tq.includeMatches,includeScore:n=tq.includeScore}={}){let a=[];return r&&a.push(rd),n&&a.push(rh),e.map(e=>{let{idx:r}=e,n={item:t[r],refIndex:r};return a.length&&a.forEach(t=>{t(e,n)}),n})}(r,this._docs,{includeMatches:a,includeScore:s})}_searchStringList(e,{heap:t,ignoreFieldNorm:r}={}){let n=this._getSearcher(e),{records:a}=this._myIndex,s=t?null:[];return a.forEach(({v:e,i:a,n:i})=>{if(!tO(e))return;let{isMatch:l,score:o,indices:u}=n.searchIn(e);if(l){let n={item:e,idx:a,matches:[{score:o,value:e,norm:i,indices:u}]};t?(n.score=ru(n.matches,{ignoreFieldNorm:r}),t.shouldInsert(n.score)&&t.insert(n)):s.push(n)}}),s}_searchLogical(e){let t=ro(e,this.options),r=(e,t,n)=>{if(!("children"in e)){let r,{keyId:a,searcher:s}=e;return(null===a?(r=[],this._myIndex.keys.forEach((e,n)=>{r.push(...this._findMatches({key:e,value:t[n],searcher:s}))})):r=this._findMatches({key:this._keyStore.get(a),value:this._myIndex.getValueForItemAtKeyId(t,a),searcher:s}),r&&r.length)?[{idx:n,item:t,matches:r}]:[]}let{children:a,operator:s}=e,i=[];for(let e=0,l=a.length;e<l;e+=1){let l=r(a[e],t,n);if(l.length)i.push(...l);else if(s===ra)return[]}return i},n=this._myIndex.records,a=new Map,s=[];return n.forEach(({$:e,i:n})=>{if(tO(e)){let i=r(t,e,n);i.length&&(a.has(n)||(a.set(n,{idx:n,item:e,matches:[]}),s.push(a.get(n))),i.forEach(({matches:e})=>{a.get(n).matches.push(...e)}))}}),s}_searchObjectList(e,{heap:t,ignoreFieldNorm:r}={}){let n=this._getSearcher(e),{keys:a,records:s}=this._myIndex,i=t?null:[];return s.forEach(({$:e,i:s})=>{if(!tO(e))return;let l=[],o=!1,u=!1;if(a.forEach((t,r)=>{let a=this._findMatches({key:t,value:e[r],searcher:n});a.length?(l.push(...a),a[0].hasInverse&&(u=!0)):o=!0}),(!u||!o)&&l.length){let n={idx:s,item:e,matches:l};t?(n.score=ru(n.matches,{ignoreFieldNorm:r}),t.shouldInsert(n.score)&&t.insert(n)):i.push(n)}}),i}_findMatches({key:e,value:t,searcher:r}){if(!tO(t))return[];let n=[];if(tL(t))t.forEach(({v:t,i:a,n:s})=>{if(!tO(t))return;let{isMatch:i,score:l,indices:o,hasInverse:u}=r.searchIn(t);i&&n.push({score:l,key:e,value:t,idx:a,norm:s,indices:o,hasInverse:u})});else{let{v:a,n:s}=t,{isMatch:i,score:l,indices:o,hasInverse:u}=r.searchIn(a);i&&n.push({score:l,key:e,value:a,norm:s,indices:o,hasInverse:u})}return n}}rx.version="7.3.0",rx.createIndex=tQ,rx.parseIndex=function(e,{getFn:t=tq.getFn,fieldNormWeight:r=tq.fieldNormWeight}={}){let{keys:n,records:a}=e,s=new tX({getFn:t,fieldNormWeight:r});return s.setKeys(n),s.setIndexRecords(a),s},rx.config=tq,rx.match=function(e,t,r){return rn(e,{...tq,...r}).searchIn(t)},rx.parseQuery=ro,rr(class{constructor(e,{isCaseSensitive:t=tq.isCaseSensitive,ignoreDiacritics:r=tq.ignoreDiacritics,includeMatches:n=tq.includeMatches,minMatchCharLength:a=tq.minMatchCharLength,ignoreLocation:s=tq.ignoreLocation,findAllMatches:i=tq.findAllMatches,location:l=tq.location,threshold:o=tq.threshold,distance:u=tq.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:r,includeMatches:n,minMatchCharLength:a,findAllMatches:i,ignoreLocation:s,location:l,threshold:o,distance:u},e=t?e:e.toLowerCase(),e=r?t2(e):e,this.pattern=e,this.query=function(e,t={}){return e.replace(/\\\|/g,"\0").split("|").map(e=>{let r=(function(e){let t=[],r=e.length,n=0;for(;n<r;){for(;n<r&&" "===e[n];)n++;if(n>=r)break;let a=n;for(;a<r&&" "!==e[a]&&'"'!==e[a];)a++;if(a<r&&'"'===e[a]){for(a++;a<r;){if('"'===e[a]){let t=a+1;if(t>=r||" "===e[t]){a++;break}if("$"===e[t]&&(t+1>=r||" "===e[t+1])){a+=2;break}}a++}t.push(e.substring(n,a)),n=a}else{for(;a<r&&" "!==e[a];)a++;t.push(e.substring(n,a)),n=a}}return t})(e.replace(/\u0000/g,"|").trim()).filter(e=>e&&!!e.trim()),n=[];for(let e=0,a=r.length;e<a;e+=1){let a=r[e],s=!1,i=-1;for(;!s&&++i<t9;){let e=t6[i],r=e.isMultiMatch(a);r&&(n.push(new e(r,t)),s=!0)}if(!s)for(i=-1;++i<t9;){let e=t6[i],r=e.isSingleMatch(a);if(r){n.push(new e(r,t));break}}}return n})}(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:r,isCaseSensitive:n,ignoreDiacritics:a}=this.options;e=n?e:e.toLowerCase(),e=a?t2(e):e;let s=0,i=[],l=0,o=!1;for(let n=0,a=t.length;n<a;n+=1){let a=t[n];i.length=0,s=0,o=!1;for(let t=0,n=a.length;t<n;t+=1){let n=a[t],{isMatch:u,indices:c,score:d}=n.search(e);if(u){s+=1,l+=d;let e=n.constructor.type;e.startsWith("inverse")&&(o=!0),r&&(re.has(e)?i.push(...c):i.push(c))}else{l=0,s=0,i.length=0,o=!1;break}}if(s){let e={isMatch:!0,score:l/s};return o&&(e.hasInverse=!0),r&&(e.indices=tZ(i)),e}}return{isMatch:!1,score:1}}}),rr(class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=rm({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics});const r=this.analyzer.tokenize(e),{df:n,fieldCount:a}=t._invertedIndex;for(const e of(this.termSearchers=[],this.idfWeights=[],r)){this.termSearchers.push(new t5(e,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));const r=n.get(e)||0,s=Math.log(1+(a-r+.5)/(r+.5));this.idfWeights.push(s)}}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};let t=[],r=0,n=0,a=0;for(let s=0;s<this.termSearchers.length;s++){let i=this.termSearchers[s].searchIn(e),l=this.idfWeights[s];n+=l,i.isMatch&&(a++,r+=l*(1-i.score),i.indices&&t.push(...i.indices))}if(0===a)return{isMatch:!1,score:1};let s={isMatch:!0,score:Math.max(.001,n>0?1-r/n:0)};return this.options.includeMatches&&t.length&&(s.indices=tZ(t)),s}}),rx.use=function(...e){e.forEach(e=>rr(e))};var rg=e.i(113205),rb=e.i(24887),rv=e.i(331548),ry=e.i(744838),rw=e.i(349369),rj=e.i(754685),rk=e.i(186116),rC=e.i(622751),rN=e.i(605728),rS=e.i(351599),rE=e.i(420118),rA=e.i(777420),rD=e.i(597736),rM=e.i(260949);let rI=(0,d.default)("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]),rP=(0,d.default)("file-braces",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]);var rR=e.i(652459),rB=e.i(819614);function rF({entry:e,worktreePath:t,depth:r,gitStatusMap:n,expandedPaths:a,childrenMap:l,selectedPath:o,onFileSelect:u,onToggleExpand:c,onContextMenu:d,renamingPath:h,onRenameSubmit:f,onRenameCancel:m,creatingIn:p,onCreateSubmit:x,onCreateCancel:g}){let{t:b}=(0,rw.useI18n)(),v=a.has(e.relativePath),y=o===e.relativePath,w=h===e.relativePath,j=n[e.relativePath],k=l.get(e.relativePath)??[],C=e.isDirectory&&p?.parentPath===e.relativePath&&v,N=(0,i.useRef)(null),S=(0,i.useRef)(null);(0,i.useEffect)(()=>{w&&N.current&&(N.current.focus(),N.current.select())},[w]),(0,i.useEffect)(()=>{C&&S.current&&S.current.focus()},[C]);let E=["flex items-center gap-1 py-0.5 px-1 cursor-pointer hover:bg-accent hover:text-accent-foreground rounded-sm min-h-[28px]",y?"bg-secondary text-secondary-foreground font-medium":""].filter(Boolean).join(" "),A={paddingLeft:`calc(${r} * 8px + 4px)`};return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:E,style:A,onClick:()=>{if(e.isDirectory)c(e.relativePath);else{let r=t.endsWith("/")?t.slice(0,-1):t,n=e.relativePath.startsWith("/")?e.relativePath.slice(1):e.relativePath;u(`${r}/${n}`)}},onContextMenu:t=>{t.preventDefault(),d(e,t.clientX,t.clientY)},role:"treeitem","aria-expanded":e.isDirectory?v:void 0,children:[e.isDirectory?(0,s.jsx)("span",{className:"flex-shrink-0",children:v?(0,s.jsx)(rM.ChevronDown,{className:"h-3 w-3 transition-transform duration-150"}):(0,s.jsx)(rD.ChevronRight,{className:"h-3 w-3 transition-transform duration-150"})}):(0,s.jsx)("span",{className:"h-3 w-3 flex-shrink-0"}),function(e,t,r){if(t)return r?(0,s.jsx)(rB.FolderOpen,{className:"h-3.5 w-3.5 flex-shrink-0 text-amber-400"}):(0,s.jsx)(tR.Folder,{className:"h-3.5 w-3.5 flex-shrink-0 text-amber-400"});let n=e.includes(".")?e.split(".").pop()?.toLowerCase():"";return"ts"===n||"tsx"===n?(0,s.jsx)(rI,{className:"h-3.5 w-3.5 flex-shrink-0 text-blue-400"}):"json"===n?(0,s.jsx)(rP,{className:"h-3.5 w-3.5 flex-shrink-0 text-yellow-400"}):"md"===n||"mdx"===n?(0,s.jsx)(rR.FileText,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"}):"css"===n||"scss"===n||"sass"===n?(0,s.jsx)(tF,{className:"h-3.5 w-3.5 flex-shrink-0 text-pink-400"}):(0,s.jsx)(tF,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"})}(e.name,e.isDirectory,v),w?(0,s.jsx)("input",{ref:N,type:"text",defaultValue:e.name,className:"ring-1 ring-primary rounded-sm px-1 text-[13px] w-full bg-background",placeholder:b("taskPage.fileTree.renamePlaceholder"),onKeyDown:t=>{if("Enter"===t.key){let r=t.currentTarget.value.trim();r&&r!==e.name?f(e,r):m()}else"Escape"===t.key&&m()},onBlur:m,onClick:e=>e.stopPropagation()}):(0,s.jsx)("span",{className:"text-[13px] truncate flex-1",children:e.name}),j&&!w&&(0,s.jsx)("span",{className:`ml-auto text-[11px] font-normal ${"M"===j?"text-amber-500 dark:text-amber-400":"A"===j?"text-emerald-500 dark:text-emerald-400":"text-red-500 dark:text-red-400"}`,children:j})]}),e.isDirectory&&v&&(0,s.jsxs)("div",{children:[k.map(e=>(0,s.jsx)(rF,{entry:e,worktreePath:t,depth:r+1,gitStatusMap:n,expandedPaths:a,childrenMap:l,selectedPath:o,onFileSelect:u,onToggleExpand:c,onContextMenu:d,renamingPath:h,onRenameSubmit:f,onRenameCancel:m,creatingIn:p,onCreateSubmit:x,onCreateCancel:g},e.relativePath)),C&&(0,s.jsxs)("div",{className:"flex items-center gap-1 py-0.5 px-1 min-h-[28px]",style:{paddingLeft:`calc(${r+1} * 8px + 4px)`},children:[(0,s.jsx)("span",{className:"h-3 w-3 flex-shrink-0"}),p?.type==="folder"?(0,s.jsx)(tR.Folder,{className:"h-3.5 w-3.5 flex-shrink-0 text-amber-400"}):(0,s.jsx)(tF,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"}),(0,s.jsx)("input",{ref:S,type:"text",className:"ring-1 ring-primary rounded-sm px-1 text-[13px] w-full bg-background",placeholder:b(p?.type==="folder"?"taskPage.fileTree.newFolderPlaceholder":"taskPage.fileTree.newFilePlaceholder"),onKeyDown:e=>{if("Enter"===e.key){let t=e.currentTarget.value.trim();t&&p?x(p.parentPath,t,p.type):g()}else"Escape"===e.key&&g()},onBlur:g})]})]})]})}var rL=e.i(905234);function rz({entry:e,x:t,y:r,onClose:n,onNewFile:a,onNewFolder:l,onRename:o,onDelete:u,onRevealInFinder:c}){let{t:d}=(0,rw.useI18n)(),h=(0,i.useRef)(null);(0,i.useEffect)(()=>{let e=e=>{h.current&&!h.current.contains(e.target)&&n()},t=e=>{"Escape"===e.key&&n()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[n]);let f=".git"===e.name||".git"===e.relativePath,m="flex items-center px-3 py-1.5 text-xs cursor-pointer hover:bg-accent rounded-sm w-full text-left",p=(0,s.jsxs)("div",{ref:h,style:{position:"fixed",top:r,left:t,zIndex:9999},className:"bg-popover border border-border rounded-md shadow-md py-1 min-w-[160px]",children:[(0,s.jsx)("button",{type:"button",className:m,onClick:()=>{a(e),n()},children:d("taskPage.fileTree.newFile")}),(0,s.jsx)("button",{type:"button",className:m,onClick:()=>{l(e),n()},children:d("taskPage.fileTree.newFolder")}),(0,s.jsx)("hr",{className:"my-1 border-border"}),(0,s.jsx)("button",{type:"button",className:m,onClick:()=>{o(e),n()},children:d("taskPage.fileTree.rename")}),c&&(0,s.jsx)("button",{type:"button",className:m,onClick:()=>{c(e),n()},children:d("taskPage.fileTree.revealInFinder")}),!f&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("hr",{className:"my-1 border-border"}),(0,s.jsx)("button",{type:"button",className:`${m} text-destructive hover:bg-destructive/10`,onClick:()=>{u(e),n()},children:d("taskPage.fileTree.delete")})]})]});return"u"<typeof document?null:(0,rL.createPortal)(p,document.body)}function r$({worktreePath:t,baseBranch:r,worktreeBranch:n,executionStatus:a,onFileSelect:l}){let{t:o}=(0,rw.useI18n)(),[u,c]=(0,i.useState)([]),[d,f]=(0,i.useState)(new Set),[m,p]=(0,i.useState)(new Map),[x,g]=(0,i.useState)({}),[v,y]=(0,i.useState)(null),[w,j]=(0,i.useState)(null),[k,C]=(0,i.useState)(null),[N,S]=(0,i.useState)(null),[E,A]=(0,i.useState)(null),[D,M]=(0,i.useState)(!1),[I,P]=(0,i.useState)(!1),[R,B]=(0,i.useState)(""),[F,L]=(0,i.useState)([]),[z,$]=(0,i.useState)(!1),[T,_]=(0,i.useState)(0),O=(0,i.useRef)(null),W=(0,i.useRef)(null),H=(0,i.useRef)(d);H.current=d;let G=(0,i.useCallback)(async()=>{if(t)try{let e=await (0,rj.listDirectory)(t,".");c(e),P(!1)}catch{P(!0)}},[t]),K=(0,i.useCallback)(async e=>{if(t)try{let r=await (0,rj.listDirectory)(t,e);p(t=>{let n=new Map(t);return n.set(e,r),n})}catch{}},[t]),V=(0,i.useCallback)(async()=>{if(t)try{let e=await (0,rj.listDirectory)(t,".");for(let r of(c(e),H.current)){let e=await (0,rj.listDirectory)(t,r).catch(()=>null);e&&p(t=>{let n=new Map(t);return n.set(r,e),n})}}catch{}},[t]);(0,i.useEffect)(()=>{t&&(M(!0),P(!1),c([]),p(new Map),f(new Set),y(null),G().finally(()=>M(!1)),(0,rk.getGitStatus)(t,r,n).then(g).catch(()=>g({})))},[t,r,n,G]),(0,i.useEffect)(()=>{if("RUNNING"!==a)return;let e=setInterval(V,2e3);return()=>clearInterval(e)},[a,V]);let U=(0,i.useCallback)(e=>{f(t=>{let r=new Set(t);return r.has(e)?r.delete(e):(r.add(e),m.has(e)||K(e)),r})},[m,K]),Y=(0,i.useCallback)(e=>{let r=(t??"").endsWith("/")?t??"":`${t??""}/`;y(e.startsWith(r)?e.slice(r.length):e),l(e)},[t,l]),q=(0,i.useCallback)((e,t,r)=>{S({entry:e,x:t,y:r})},[]),J=(0,i.useCallback)(e=>{C({parentPath:e.isDirectory?e.relativePath:e.relativePath.includes("/")?e.relativePath.slice(0,e.relativePath.lastIndexOf("/")):".",type:"file"}),e.isDirectory&&(f(t=>{let r=new Set(t);return r.add(e.relativePath),r}),m.has(e.relativePath)||K(e.relativePath))},[m,K]),X=(0,i.useCallback)(e=>{C({parentPath:e.isDirectory?e.relativePath:e.relativePath.includes("/")?e.relativePath.slice(0,e.relativePath.lastIndexOf("/")):".",type:"folder"}),e.isDirectory&&(f(t=>{let r=new Set(t);return r.add(e.relativePath),r}),m.has(e.relativePath)||K(e.relativePath))},[m,K]),Q=(0,i.useCallback)(e=>{j(e.relativePath)},[]),Z=(0,i.useCallback)(e=>{A(e)},[]),ee=(0,i.useCallback)(async(e,r)=>{if(!t)return;j(null);let n=e.relativePath.includes("/")?e.relativePath.slice(0,e.relativePath.lastIndexOf("/")):".",a="."===n?r:`${n}/${r}`;try{await (0,rS.renameEntry)(t,e.relativePath,a),await V()}catch{}},[t,V]),et=(0,i.useCallback)(()=>{j(null)},[]),er=(0,i.useCallback)(async(e,r,n)=>{if(!t)return;C(null);let a="."===e?r:`${e}/${r}`;try{"file"===n?await (0,rC.createFile)(t,a):await (0,rN.createDirectory)(t,a),await V()}catch{}},[t,V]),en=(0,i.useCallback)(()=>{C(null)},[]),ea=async()=>{if(t&&E){A(null);try{await (0,rE.deleteEntry)(t,E.relativePath),await V()}catch{}}},es=(0,i.useCallback)(async()=>{if(t&&!z)try{let e=await (0,rA.listAllFiles)(t);L(e),$(!0)}catch{}},[t,z]);(0,i.useEffect)(()=>{L([]),$(!1),B("")},[t]);let ei=(0,i.useMemo)(()=>new rx(F,{threshold:.4,distance:200,includeMatches:!0}),[F]),el=(0,i.useMemo)(()=>R.trim()?ei.search(R.trim(),{limit:30}):[],[ei,R]),eo=(0,i.useCallback)(e=>{if("Escape"===e.key){B(""),O.current?.blur();return}if(el.length){if("ArrowDown"===e.key)e.preventDefault(),_(e=>Math.min(e+1,el.length-1));else if("ArrowUp"===e.key)e.preventDefault(),_(e=>Math.max(e-1,0));else if("Enter"===e.key){e.preventDefault();let r=el[T];r&&(Y(`${t}/${r.item}`),B(""))}}},[el,T,t,Y]);if((0,i.useEffect)(()=>{let e=W.current;if(!e)return;let t=e.querySelector("[data-highlighted='true']");t&&t.scrollIntoView({block:"nearest"})},[T]),!t)return(0,s.jsx)(rg.EmptyState,{icon:h,title:o("taskPage.fileTree.emptyHeading"),description:o("taskPage.fileTree.emptyBody"),className:"h-full"});if(I)return(0,s.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3 p-6 text-center",children:[(0,s.jsx)(tP.AlertCircle,{className:"h-8 w-8 text-destructive"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:o("taskPage.fileTree.loadError")}),(0,s.jsx)("button",{type:"button",className:"text-xs text-primary underline cursor-pointer",onClick:()=>{P(!1),M(!0),G().finally(()=>M(!1))},children:"Retry"})]});if(!D&&0===u.length)return(0,s.jsx)(rg.EmptyState,{icon:tR.Folder,title:o("taskPage.fileTree.emptyDir"),className:"h-full"});let eu=R.trim().length>0;return(0,s.jsxs)("div",{className:"h-full flex flex-col",children:[(0,s.jsx)("div",{className:"flex-shrink-0 px-2 py-1.5 border-b border-border",children:(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(b.Search,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),(0,s.jsx)("input",{ref:O,type:"text",value:R,placeholder:o("taskPage.fileTree.searchPlaceholder"),className:"w-full h-7 pl-7 pr-7 text-xs bg-muted/50 border border-border rounded-md outline-none focus:border-primary/50 focus:bg-background transition-colors placeholder:text-muted-foreground/60",onChange:e=>{B(e.target.value),_(0),z||es()},onKeyDown:eo}),eu&&(0,s.jsx)("button",{type:"button",className:"absolute right-1.5 top-1/2 -translate-y-1/2 p-0.5 rounded hover:bg-muted-foreground/20 text-muted-foreground",onClick:()=>B(""),children:(0,s.jsx)(tB.X,{className:"h-3 w-3"})})]})}),D&&(0,s.jsx)("div",{className:"h-0.5 w-full bg-primary/30 animate-pulse flex-shrink-0"}),eu?(0,s.jsx)(rb.ScrollArea,{className:"flex-1",children:(0,s.jsx)("div",{ref:W,className:"py-1",children:0===el.length?(0,s.jsx)("p",{className:"px-3 py-4 text-xs text-muted-foreground text-center",children:o("taskPage.fileTree.searchNoResults")}):el.map((e,r)=>{let n=e.item,a=n.split("/").pop()??n,i=n.includes("/")?n.slice(0,n.lastIndexOf("/")):"",l=new Set;if(e.matches)for(let t of e.matches)for(let[e,r]of t.indices)for(let t=e;t<=r;t++)l.add(t);let o=n.length-a.length,u=(e,t)=>{let r=[],n=0;for(;n<e.length;){let a=l.has(n+t),i=n+1;for(;i<e.length&&l.has(i+t)===a;)i++;let o=e.slice(n,i);r.push(a?(0,s.jsx)("span",{className:"text-primary font-semibold",children:o},n):(0,s.jsx)("span",{children:o},n)),n=i}return r};return(0,s.jsxs)("button",{type:"button","data-highlighted":r===T,className:`w-full flex items-center gap-2 px-3 py-1 text-left text-xs hover:bg-accent cursor-pointer ${r===T?"bg-accent":""}`,onClick:()=>{Y(`${t}/${n}`),B("")},onMouseEnter:()=>_(r),children:[(0,s.jsx)(tF,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"}),(0,s.jsxs)("span",{className:"truncate",children:[(0,s.jsx)("span",{className:"text-foreground",children:u(a,o)}),i&&(0,s.jsx)("span",{className:"ml-1.5 text-muted-foreground",children:u(i,0)})]})]},n)})})}):(0,s.jsx)(rb.ScrollArea,{className:"flex-1",children:(0,s.jsx)("div",{className:"py-1",children:u.map(e=>(0,s.jsx)(rF,{entry:e,worktreePath:t,depth:0,gitStatusMap:x,expandedPaths:d,childrenMap:m,selectedPath:v,onFileSelect:Y,onToggleExpand:U,onContextMenu:q,renamingPath:w,onRenameSubmit:ee,onRenameCancel:et,creatingIn:k,onCreateSubmit:er,onCreateCancel:en},e.relativePath))})}),N&&(0,s.jsx)(rz,{entry:N.entry,x:N.x,y:N.y,onClose:()=>S(null),onNewFile:J,onNewFolder:X,onRename:Q,onDelete:Z,onRevealInFinder:t?r=>{e.A(555273).then(({revealInFinder:e})=>{e(t,r.relativePath).catch(()=>{})})}:void 0}),(0,s.jsx)(rv.Dialog,{open:null!==E,onOpenChange:e=>{e||A(null)},children:(0,s.jsxs)(rv.DialogContent,{children:[(0,s.jsx)(rv.DialogHeader,{children:(0,s.jsx)(rv.DialogTitle,{children:o("taskPage.fileTree.deleteConfirmHeading")})}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:E?.isDirectory?o("taskPage.fileTree.deleteConfirmBodyFolder",{name:E.name}):o("taskPage.fileTree.deleteConfirmBody",{name:E?.name??""})}),(0,s.jsxs)(rv.DialogFooter,{children:[(0,s.jsx)(ry.Button,{variant:"outline",onClick:()=>A(null),children:o("common.cancel")}),(0,s.jsx)(ry.Button,{variant:"destructive",onClick:ea,children:o("taskPage.fileTree.deleteConfirmAction")})]})]})})]})}var rT=e.i(673898);e.i(251449);var r_=e.i(302320),r_=r_,rO=e.i(387104),rW=e.i(151201),rH=e.i(261895),rG=e.i(275605);function rK({tabs:e,activeTabPath:t,onTabClick:r,onTabClose:n}){let{t:a}=(0,rw.useI18n)();return 0===e.length?null:(0,s.jsx)("div",{className:"header-xs flex items-stretch overflow-x-auto bg-card flex-shrink-0",children:e.map(e=>{let i=e.path===t;return(0,s.jsxs)("div",{role:"tab","aria-selected":i,onClick:()=>r(e.path),className:["flex items-center gap-1.5 px-3 text-sm whitespace-nowrap cursor-pointer select-none border-b-2",i?"border-primary text-foreground font-medium":"border-transparent text-muted-foreground hover:text-foreground"].join(" "),children:[e.isDiff&&(0,s.jsx)("span",{className:"text-amber-400 text-[10px] font-mono font-bold",children:"M"}),e.isDirty&&(0,s.jsx)("span",{className:"text-primary text-xs",children:"●"}),(0,s.jsx)("span",{children:e.filename}),(0,s.jsx)("button",{type:"button","aria-label":a("editor.closeTab"),onClick:t=>{t.stopPropagation(),n(e.path)},className:"text-muted-foreground hover:text-foreground ml-0.5 flex items-center",children:(0,s.jsx)(tB.X,{className:"w-3 h-3"})})]},e.path)})})}var r_=r_;r_.default.config({paths:{vs:"/vs"}});let rV=(0,rT.default)(()=>e.A(286723).then(e=>({default:e.DiffEditor})),{loadableGenerated:{modules:[466255]},ssr:!1}),rU={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",md:"markdown",css:"css",html:"html",py:"python",sh:"shell",yaml:"yaml",yml:"yaml",vue:"html",svelte:"html",prisma:"prisma",txt:"plaintext"};function rY({originalContent:t,modifiedContent:r,filePath:n,language:a,onModifiedChange:l,readOnly:o=!1}){let{resolvedTheme:u}=(0,rO.useTheme)(),c="dark"===u?"vs-dark":"light",d=a??rU[n.split(".").pop()??""]??"plaintext",h=(0,i.useRef)(null);return(0,i.useEffect)(()=>{e.A(885431).then(({loader:e})=>{e.init().then(e=>{e.editor.setTheme(c)})})},[c]),(0,s.jsx)(rV,{height:"100%",theme:c,original:t,modified:r,language:d,onMount:e=>{if(h.current=e,l){let t=e.getModifiedEditor();t.onDidChangeModelContent(()=>{l(t.getValue())})}},options:{readOnly:o,originalEditable:!1,automaticLayout:!0,minimap:{enabled:!1},fontSize:13,fontFamily:'"JetBrains Mono", "Geist Mono", monospace',scrollBeyondLastLine:!1,renderSideBySide:!0},loading:(0,s.jsx)("div",{className:"flex h-full items-center justify-center bg-muted/20",children:(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading diff editor..."})})})}r_.default.config({paths:{vs:"/vs"}});let rq=(0,rT.default)(()=>e.A(286723).then(e=>({default:e.default})),{loadableGenerated:{modules:[466255]},ssr:!1}),rJ={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",md:"markdown",css:"css",html:"html",py:"python",sh:"shell",yaml:"yaml",yml:"yaml",vue:"html",svelte:"html",prisma:"prisma",txt:"plaintext"};function rX({worktreePath:t,selectedFilePath:r,onFilePathChange:n,onSave:a,selectedLine:l,diffFileRequest:o}){let{t:u}=(0,rw.useI18n)(),{resolvedTheme:c}=(0,rO.useTheme)(),d="dark"===c?"vs-dark":"light",[h,f]=(0,i.useState)([]),[m,p]=(0,i.useState)(null),x=(0,i.useRef)(null),g=(0,i.useRef)(null),b=(0,i.useRef)(new Map),v=(0,i.useRef)(null),y=(0,i.useRef)(void 0),w=(0,i.useRef)(null);function j(e){"success"===e?rW.toast.success(u("editor.saveSuccess")):rW.toast.error(u("editor.saveError"))}(0,i.useEffect)(()=>{v.current=h.find(e=>e.path===m)??null},[h,m]),(0,i.useEffect)(()=>{y.current=a},[a]),(0,i.useEffect)(()=>{e.A(885431).then(({loader:e})=>{e.init().then(e=>{e.editor.setTheme(d)})})},[d]),(0,i.useEffect)(()=>{if(!r)return;if(w.current=r,h.find(e=>e.path===r)){p(r),n?.(r);return}let e=r.startsWith(t+"/")?r.slice(t.length+1):r,a=e.split("/").pop()??e;(0,rH.readFileContent)(t,e).then(t=>{if(w.current!==r)return;let s={path:r,relativePath:e,filename:a,content:t,isDirty:!1};f(e=>e.some(e=>e.path===r)?e:[...e,s]),p(r),n?.(r)}).catch(()=>{})},[r,t]),(0,i.useEffect)(()=>{if(!o)return;let{relativePath:e,originalContent:r}=o,n="diff:"+(t+"/")+e,a=e.split("/").pop()??e;h.find(e=>e.path===n)?p(n):(0,rH.readFileContent)(t,e).then(t=>{let s={path:n,relativePath:e,filename:a,content:t,isDirty:!1,isDiff:!0,originalContent:r};f(e=>e.some(e=>e.path===n)?e:[...e,s]),p(n)}).catch(()=>{})},[o,t]),(0,i.useEffect)(()=>{if(!l||!x.current)return;let e=x.current,t=setTimeout(()=>{e.revealLineInCenter(l),e.setPosition({lineNumber:l,column:1})},50);return()=>clearTimeout(t)},[l,m]),(0,i.useEffect)(()=>{let e=x.current,t=g.current;if(!e||!t||!m)return;let r=h.find(e=>e.path===m);if(!r)return;let n=t.Uri.parse("file://"+r.path),a=b.current.get(r.path);if(!a){let e=rJ[r.filename.split(".").pop()??""]??"plaintext";a=t.editor.createModel(r.content,e,n),b.current.set(r.path,a)}e.setModel(a)},[m,h]);let k=h.find(e=>e.path===m);return(0,s.jsxs)("div",{className:"flex flex-col h-full overflow-hidden relative",children:[(0,s.jsx)(rK,{tabs:h,activeTabPath:m,onTabClick:function(e){p(e),n?.(e)},onTabClose:function(e){let t=b.current.get(e);t?.dispose&&t.dispose(),b.current.delete(e),f(t=>{let r=t.filter(t=>t.path!==e);if(m===e){let e=r.length>0?r[r.length-1].path:null;p(e),n?.(e)}return r})}}),0===h.length?(0,s.jsxs)("div",{className:"flex h-full flex-col items-center justify-center text-center",children:[(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:u("editor.selectFile")}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:u("editor.selectFileHint")})]}):k?.isDiff?(0,s.jsx)("div",{className:"flex-1 min-h-0",children:(0,s.jsx)(rY,{originalContent:k.originalContent??"",modifiedContent:k.content,filePath:k.relativePath,onModifiedChange:e=>{f(t=>t.map(t=>t.path===m?{...t,content:e,isDirty:!0}:t))}})}):(0,s.jsx)("div",{className:"flex-1 min-h-0",children:(0,s.jsx)(rq,{height:"100%",theme:d,value:k?.content??"",onMount:function(e,r){x.current=e,g.current=r,e.addAction({id:"save-file",label:"Save File",keybindings:[r.KeyMod.CtrlCmd|r.KeyCode.KeyS],run:async()=>{let e=v.current;if(e&&e.isDirty)try{await (0,rG.writeFileContent)(t,e.relativePath,e.content),f(t=>t.map(t=>t.path===e.path?{...t,isDirty:!1}:t)),j("success"),y.current?.()}catch{j("error")}}})},onChange:e=>{void 0!==e&&f(t=>t.map(t=>t.path===m?{...t,content:e,isDirty:!0}:t))},options:{automaticLayout:!0,minimap:{enabled:!1},fontSize:13,fontFamily:'"JetBrains Mono", "Geist Mono", monospace',lineNumbers:"on",wordWrap:"off",scrollBeyondLastLine:!1,tabSize:2},loading:(0,s.jsx)("div",{className:"flex h-full items-center justify-center bg-muted/20",children:(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading editor..."})})})})]})}let rQ=(0,d.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var rZ=e.i(755683);let r0=(0,rZ.createServerReference)("780eddea32ee4e9e36c19c30eeb99fbb97b90d0bc7",rZ.callServer,void 0,rZ.findSourceMapURL,"searchCode");function r1({localPath:e,onResultSelect:t}){let{t:r}=(0,rw.useI18n)(),[n,a]=(0,i.useState)(""),[l,o]=(0,i.useState)(""),[u,d]=(0,i.useState)([]),[h,f]=(0,i.useState)(!1),[m,p]=(0,i.useState)(null),[x,g]=(0,i.useState)(!1),[v,y]=(0,i.useState)(!1),w=(0,i.useRef)(0),j=(0,i.useCallback)(async()=>{if(!e||!n.trim())return;let t=++w.current;g(!0),p(null),y(!0);try{let a=await r0(e,n.trim(),l.trim()||void 0);if(t!==w.current)return;a.error?(a.error.toLowerCase().includes("ripgrep")||a.error.toLowerCase().includes("rg")?(rW.toast.error(r("codeSearch.rgNotInstalled")),p(r("codeSearch.rgNotInstalled"))):p(a.error),d([]),f(!1)):(d(a.matches),f(a.truncated))}catch(e){if(t!==w.current)return;p(String(e)),d([]),f(!1)}finally{t===w.current&&g(!1)}},[e,n,l,r]),k=(0,i.useCallback)(e=>{"Enter"===e.key&&(e.preventDefault(),j())},[j]);return e?(0,s.jsxs)("div",{className:"h-full flex flex-col overflow-hidden",children:[(0,s.jsxs)("div",{className:"flex-shrink-0 px-2 py-1.5 space-y-1 border-b border-border",children:[(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(b.Search,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),(0,s.jsx)("input",{type:"text",value:n,placeholder:r("codeSearch.patternPlaceholder"),className:"w-full h-7 pl-7 pr-2 text-xs bg-muted/50 border border-border rounded-md outline-none focus:border-primary/50 focus:bg-background transition-colors placeholder:text-muted-foreground/60",onChange:e=>a(e.target.value),onKeyDown:k})]}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(rQ,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),(0,s.jsx)("input",{type:"text",value:l,placeholder:r("codeSearch.globPlaceholder"),className:"w-full h-7 pl-7 pr-2 text-xs bg-muted/50 border border-border rounded-md outline-none focus:border-primary/50 focus:bg-background transition-colors placeholder:text-muted-foreground/60",onChange:e=>o(e.target.value)})]})]}),(0,s.jsx)("div",{className:"flex-1 min-h-0 flex flex-col",children:x?(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-2",children:[(0,s.jsx)(c.Loader2,{className:"h-5 w-5 animate-spin text-muted-foreground"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:r("codeSearch.searching")})]}):m?(0,s.jsx)("div",{className:"px-3 py-4 text-xs text-destructive",children:m}):v?0===u.length?(0,s.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:r("codeSearch.noResults")})}):(0,s.jsxs)(rb.ScrollArea,{className:"flex-1",children:[(0,s.jsx)("div",{className:"py-1",children:u.map((r,n)=>(0,s.jsxs)("button",{type:"button",className:"w-full flex flex-col gap-0.5 px-2 py-1.5 text-left hover:bg-accent/50 cursor-pointer border-b border-border/30 last:border-b-0","aria-label":`Open ${r.filePath} at line ${r.lineNumber}`,onClick:()=>{t(e.endsWith("/")?e+r.filePath:e+"/"+r.filePath,r.lineNumber)},children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,s.jsx)("span",{className:"text-xs text-muted-foreground truncate flex-1",children:r.filePath}),(0,s.jsxs)("span",{className:"text-xs text-primary/80 flex-shrink-0 tabular-nums",children:[":",r.lineNumber]})]}),(0,s.jsx)("div",{className:"text-xs text-foreground/80 font-mono truncate",children:function(e,t){if(!t.length)return[(0,s.jsx)("span",{children:e},"0")];let r=[],n=0;for(let{start:a,end:i}of t)n<a&&r.push((0,s.jsx)("span",{children:e.slice(n,a)},`plain-${n}`)),r.push((0,s.jsx)("span",{className:"bg-yellow-400/30 text-yellow-200 rounded-[2px] px-[1px]",children:e.slice(a,i)},`match-${a}`)),n=i;return n<e.length&&r.push((0,s.jsx)("span",{children:e.slice(n)},`plain-${n}`)),r}(r.lineText,r.submatches)})]},`${r.filePath}:${r.lineNumber}:${n}`))}),h&&(0,s.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground text-center border-t border-border/30",children:r("codeSearch.truncated")})]}):(0,s.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,s.jsx)("p",{className:"text-xs text-muted-foreground text-center px-4",children:r("codeSearch.hint")})})})]}):(0,s.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 p-4 text-center",children:[(0,s.jsx)(b.Search,{className:"h-8 w-8 text-muted-foreground"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:r("codeSearch.noPath")})]})}let r2=(0,d.default)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]),r5=(0,d.default)("file-minus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}]]),r3=(0,d.default)("file-question-mark",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}]]),r4=(0,d.default)("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]),r8=(0,d.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),r7=(0,d.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var r6=e.i(698300);let r9=(0,d.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var ne=e.i(304275),nt=e.i(935792),nr=e.i(232478),nn=e.i(306308),na=e.i(121505);let ns=(0,d.default)("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]);var ni=e.i(514183),nl=e.i(690287),no=e.i(775899),nu=e.i(426175);let nc={modified:r4,added:r2,deleted:r5,untracked:r3,renamed:r4},nd={modified:"text-amber-400",added:"text-emerald-400",deleted:"text-rose-400",untracked:"text-muted-foreground",renamed:"text-sky-400"},nh={modified:"M",added:"A",deleted:"D",untracked:"U",renamed:"R"};function nf(e){let t={name:"",path:"",isDir:!0,children:[]};for(let r of e){let e=r.file.split("/"),n=t;for(let t=0;t<e.length;t++){let a=e[t],s=t===e.length-1,i=e.slice(0,t+1).join("/");if(s)n.children.push({name:a,path:i,isDir:!1,children:[],file:r});else{let e=n.children.find(e=>e.isDir&&e.name===a);e||(e={name:a,path:i,isDir:!0,children:[]},n.children.push(e)),n=e}}}return(function e(t){if(t.isDir&&(t.children=t.children.map(e),1===t.children.length&&t.children[0].isDir&&""!==t.name)){let e=t.children[0];return{...e,name:`${t.name}/${e.name}`}}return t})(t).children.sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name))}function nm({localPath:e,onFileSelect:t}){let{t:r}=(0,rw.useI18n)(),[n,a]=(0,i.useState)(null),[l,o]=(0,i.useState)(!0),[d,h]=(0,i.useState)(""),[f,m]=(0,i.useState)(!1),[p,x]=(0,i.useState)(!1),[g,v]=(0,i.useState)(!1),[y,w]=(0,i.useState)(!1),[j,k]=(0,i.useState)(!1),[C,N]=(0,i.useState)(""),S=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(j)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){S.current&&!S.current.contains(e.target)&&k(!1)}},[j]);let[E,A]=(0,i.useState)(!1),D=(0,i.useCallback)(async()=>{try{let t=await fetch(`/api/git?path=${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();a({changedFiles:e.changedFiles??[],ahead:e.ahead??0,behind:e.behind??0,remoteUrl:e.remoteUrl??"",currentBranch:e.currentBranch??"",branches:e.branches??[],remoteBranches:e.remoteBranches??[]})}}catch{}finally{o(!1)}},[e]);(0,i.useEffect)(()=>{D();let e=setInterval(D,5e3);return()=>clearInterval(e)},[D]);let M=async t=>{try{await (0,nu.gitAction)(e,"stage",{files:t}),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}},I=async t=>{try{await (0,nu.gitAction)(e,"unstage",{files:t}),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}},P=async()=>{if(d.trim()){m(!0);try{await (0,nu.gitAction)(e,"commit",{message:d}),h(""),rW.toast.success(r("git.commitSuccess")),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}finally{m(!1)}}},R=async t=>{x(!0);try{await (0,nu.gitAction)(e,"pull",t?{branch:t}:{}),rW.toast.success(r("git.pullSuccess")),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}finally{x(!1)}},B=async t=>{v(!0);try{await (0,nu.gitAction)(e,"push",t?{branch:t}:{}),rW.toast.success(r("git.pushSuccess")),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}finally{v(!1)}},F=async()=>{w(!0);try{await (0,nu.gitAction)(e,"fetch"),rW.toast.success(r("git.fetchSuccess")),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}finally{w(!1)}},L=async t=>{try{await (0,nu.gitAction)(e,"checkout",{branch:t}),k(!1),rW.toast.success(`${r("git.switchSuccess")} ${t}`),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}},z=async()=>{try{await (0,nu.gitAction)(e,"stash-save",{message:d||void 0}),h(""),rW.toast.success(r("git.stashSaved")),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}},$=async()=>{try{await (0,nu.gitAction)(e,"stash-pop",{index:0}),rW.toast.success(r("git.stashApplied")),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}},T=async()=>{try{await (0,nu.gitAction)(e,"discard-all"),rW.toast.success(r("git.discardSuccess")),await D()}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}},_=async r=>{if("deleted"!==r.status)try{let n=await (0,nu.gitAction)(e,"show",{file:r.file});t?.(r.file,n.content??"")}catch{t?.(r.file,"")}},O=n?.changedFiles.filter(e=>e.staged)??[],W=n?.changedFiles.filter(e=>!e.staged)??[],H=(0,i.useMemo)(()=>nf(O),[O]),G=(0,i.useMemo)(()=>nf(W),[W]);if(l)return(0,s.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,s.jsx)(c.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})});if(!n)return null;function K(e){let t=[];for(let r of e)r.isDir?t.push(...K(r.children)):r.file&&t.push(r.file.file);return t}let V=[...n?.branches??[],...(n?.remoteBranches??[]).filter(e=>!n?.branches?.includes(e))],U=C?V.filter(e=>e.toLowerCase().includes(C.toLowerCase())):V;return(0,s.jsxs)("div",{className:"flex flex-col h-full overflow-hidden",children:[(0,s.jsx)("div",{className:"shrink-0 px-2 pt-2 pb-1",children:(0,s.jsxs)("div",{className:"relative",ref:S,children:[(0,s.jsxs)("button",{onClick:()=>{k(!j),N("")},className:"flex w-full items-center justify-between rounded-md border border-border bg-muted/50 px-2 py-1.5 text-left transition-colors hover:bg-accent",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,s.jsx)(u.GitBranch,{className:"h-3 w-3 shrink-0 text-emerald-400"}),(0,s.jsx)("span",{className:"truncate font-mono text-xs text-foreground",children:n?.currentBranch||"—"})]}),(0,s.jsx)(rM.ChevronDown,{className:`h-3 w-3 shrink-0 text-muted-foreground transition-transform ${j?"rotate-180":""}`})]}),j&&(0,s.jsxs)("div",{className:"absolute left-0 right-0 top-full z-30 mt-1 rounded-lg border border-border bg-popover shadow-xl",children:[(0,s.jsx)("div",{className:"border-b border-border p-1.5",children:(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(b.Search,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground"}),(0,s.jsx)("input",{value:C,onChange:e=>N(e.target.value),placeholder:"Filter...",autoFocus:!0,className:"h-7 w-full rounded-md bg-muted/50 pl-7 pr-2 text-xs text-foreground placeholder-muted-foreground outline-none focus:ring-1 focus:ring-ring"})]})}),(0,s.jsxs)("div",{className:"max-h-48 overflow-auto py-1",children:[(n?.branches??[]).filter(e=>e.toLowerCase().includes(C.toLowerCase())).length>0&&(0,s.jsx)("p",{className:"px-3 pt-1 pb-0.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:r("git.localBranches")}),(n?.branches??[]).filter(e=>e.toLowerCase().includes(C.toLowerCase())).map(e=>{let t=e===n?.currentBranch;return(0,s.jsxs)("button",{onClick:()=>{t?k(!1):L(e)},className:`flex w-full items-center gap-2 px-3 py-1 text-left transition-colors ${t?"bg-emerald-500/10 text-emerald-400":"text-secondary-foreground hover:bg-accent"}`,children:[(0,s.jsx)(u.GitBranch,{className:"h-3 w-3 shrink-0"}),(0,s.jsx)("span",{className:"truncate font-mono text-xs",children:e}),t&&(0,s.jsx)(r6.Check,{className:"h-3 w-3 ml-auto shrink-0"})]},`local-${e}`)}),(n?.remoteBranches??[]).filter(e=>!n?.branches?.includes(e)).filter(e=>e.toLowerCase().includes(C.toLowerCase())).length>0&&(0,s.jsx)("p",{className:"px-3 pt-2 pb-0.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:r("git.remoteBranches")}),(n?.remoteBranches??[]).filter(e=>!n?.branches?.includes(e)).filter(e=>e.toLowerCase().includes(C.toLowerCase())).map(e=>(0,s.jsxs)("button",{onClick:()=>L(e),className:"flex w-full items-center gap-2 px-3 py-1 text-left text-secondary-foreground transition-colors hover:bg-accent",children:[(0,s.jsx)(ni.Globe,{className:"h-3 w-3 shrink-0 text-sky-400"}),(0,s.jsx)("span",{className:"truncate font-mono text-xs",children:e})]},`remote-${e}`)),0===U.length&&(0,s.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No branches found"})]}),(0,s.jsxs)("div",{className:"border-t border-border p-1.5 flex gap-1",children:[(0,s.jsxs)(ry.Button,{variant:"ghost",className:"flex-1 h-6 gap-1 text-[10px] text-muted-foreground",onClick:()=>{k(!1),k(!1),A(!0)},children:[(0,s.jsx)(ne.Plus,{className:"h-3 w-3"}),r("git.createBranch")]}),(0,s.jsxs)(ry.Button,{variant:"ghost",className:"h-6 gap-1 text-[10px] text-muted-foreground",onClick:F,disabled:y,children:[(0,s.jsx)(nr.RefreshCw,{className:`h-3 w-3 ${y?"animate-spin":""}`}),"Fetch"]})]})]})]})}),(0,s.jsxs)("div",{className:"shrink-0 px-2 pb-2 space-y-1.5 border-b border-border",children:[(0,s.jsx)("textarea",{value:d,onChange:e=>h(e.target.value),placeholder:r("git.commitMsgPlaceholder"),rows:3,className:"w-full rounded-md border border-border bg-background px-2 py-1.5 text-xs text-foreground placeholder-muted-foreground outline-none transition-colors focus:border-ring focus:ring-1 focus:ring-ring resize-none",onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&P()}}),(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsxs)(ry.Button,{variant:"default",className:"flex-1 h-7 gap-1.5 text-xs",onClick:P,disabled:f||!d.trim()||0===O.length,children:[f?(0,s.jsx)(c.Loader2,{className:"h-3 w-3 animate-spin"}):(0,s.jsx)(r6.Check,{className:"h-3 w-3"}),r("git.commit")]}),(0,s.jsxs)(nl.DropdownMenu,{children:[(0,s.jsx)(nl.DropdownMenuTrigger,{render:(0,s.jsx)(ry.Button,{variant:"outline",size:"icon-xs",className:"h-7 w-7 shrink-0"}),children:(0,s.jsx)(nt.MoreHorizontal,{className:"h-3.5 w-3.5"})}),(0,s.jsxs)(nl.DropdownMenuContent,{align:"end",side:"bottom",className:"w-52",children:[(0,s.jsxs)(nl.DropdownMenuGroup,{children:[(0,s.jsx)(nl.DropdownMenuLabel,{children:r("git.commit")}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:P,disabled:!d.trim()||0===O.length,children:[(0,s.jsx)(r6.Check,{className:"h-3.5 w-3.5 mr-2"}),r("git.commit")]})]}),(0,s.jsx)(nl.DropdownMenuSeparator,{}),(0,s.jsxs)(nl.DropdownMenuGroup,{children:[(0,s.jsx)(nl.DropdownMenuLabel,{children:r("git.changes")}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:()=>M(K(G)),disabled:0===W.length,children:[(0,s.jsx)(ne.Plus,{className:"h-3.5 w-3.5 mr-2"}),r("git.stageAll")]}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:()=>I(K(H)),disabled:0===O.length,children:[(0,s.jsx)(r9,{className:"h-3.5 w-3.5 mr-2"}),r("git.unstageAll")]}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:T,disabled:0===W.length,children:[(0,s.jsx)(ns,{className:"h-3.5 w-3.5 mr-2"}),r("git.discardAll")]})]}),(0,s.jsx)(nl.DropdownMenuSeparator,{}),(0,s.jsxs)(nl.DropdownMenuGroup,{children:[(0,s.jsx)(nl.DropdownMenuLabel,{children:r("git.sync")}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:()=>R(),disabled:p,children:[(0,s.jsx)(r8,{className:"h-3.5 w-3.5 mr-2"}),r("git.pull")]}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:()=>B(),disabled:g,children:[(0,s.jsx)(r7,{className:"h-3.5 w-3.5 mr-2"}),r("git.push")]}),(0,s.jsxs)(nl.DropdownMenuSub,{children:[(0,s.jsxs)(nl.DropdownMenuSubTrigger,{disabled:p,children:[(0,s.jsx)(r8,{className:"h-3.5 w-3.5 mr-2"}),r("git.pullFrom"),"..."]}),(0,s.jsxs)(nl.DropdownMenuSubContent,{className:"max-h-60 overflow-y-auto",children:[(0,s.jsxs)(nl.DropdownMenuItem,{onClick:()=>R(),children:[(0,s.jsx)(u.GitBranch,{className:"h-3 w-3 mr-2 text-emerald-400"}),n.currentBranch,n.behind>0&&(0,s.jsxs)("span",{className:"ml-auto text-[10px] text-muted-foreground",children:["↓",n.behind]})]}),n.remoteBranches.filter(e=>e!==n.currentBranch).map(e=>(0,s.jsxs)(nl.DropdownMenuItem,{onClick:()=>R(e),children:[(0,s.jsx)(u.GitBranch,{className:"h-3 w-3 mr-2 text-sky-400"}),e]},e))]})]}),(0,s.jsxs)(nl.DropdownMenuSub,{children:[(0,s.jsxs)(nl.DropdownMenuSubTrigger,{disabled:g,children:[(0,s.jsx)(r7,{className:"h-3.5 w-3.5 mr-2"}),r("git.pushTo"),"..."]}),(0,s.jsxs)(nl.DropdownMenuSubContent,{className:"max-h-60 overflow-y-auto",children:[(0,s.jsxs)(nl.DropdownMenuItem,{onClick:()=>B(),children:[(0,s.jsx)(u.GitBranch,{className:"h-3 w-3 mr-2 text-emerald-400"}),n.currentBranch,n.ahead>0&&(0,s.jsxs)("span",{className:"ml-auto text-[10px] text-muted-foreground",children:["↑",n.ahead]})]}),n.remoteBranches.filter(e=>e!==n.currentBranch).map(e=>(0,s.jsxs)(nl.DropdownMenuItem,{onClick:()=>B(e),children:[(0,s.jsx)(u.GitBranch,{className:"h-3 w-3 mr-2 text-sky-400"}),e]},e))]})]}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:F,disabled:y,children:[(0,s.jsx)(nr.RefreshCw,{className:`h-3.5 w-3.5 mr-2 ${y?"animate-spin":""}`}),r("git.fetchAll")]})]}),(0,s.jsx)(nl.DropdownMenuSeparator,{}),(0,s.jsxs)(nl.DropdownMenuGroup,{children:[(0,s.jsx)(nl.DropdownMenuLabel,{children:r("git.stash")}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:z,disabled:0===n.changedFiles.length,children:[(0,s.jsx)(nn.Archive,{className:"h-3.5 w-3.5 mr-2"}),r("git.stashSave")]}),(0,s.jsxs)(nl.DropdownMenuItem,{onClick:$,children:[(0,s.jsx)(na.ArrowUpFromLine,{className:"h-3.5 w-3.5 mr-2"}),r("git.stashPopLatest")]})]}),(0,s.jsx)(nl.DropdownMenuSeparator,{}),(0,s.jsxs)(nl.DropdownMenuItem,{disabled:!0,className:"text-muted-foreground",children:[(0,s.jsx)(u.GitBranch,{className:"h-3.5 w-3.5 mr-2"}),n.currentBranch]})]})]})]})]}),(0,s.jsxs)(rb.ScrollArea,{className:"flex-1 min-h-0",children:[(0,s.jsx)(np,{label:r("git.stagedChanges"),count:O.length,labelColor:"text-emerald-400",tree:H,batchAction:()=>I(K(H)),batchLabel:r("git.unstageAll"),batchIcon:(0,s.jsx)(r9,{className:"h-3 w-3"}),onFileClick:_,onFileAction:e=>I([e]),fileActionIcon:"−"}),(0,s.jsx)(np,{label:r("git.unstagedChanges"),count:W.length,labelColor:"text-muted-foreground",tree:G,batchAction:()=>M(K(G)),batchLabel:r("git.stageAll"),batchIcon:(0,s.jsx)(ne.Plus,{className:"h-3 w-3"}),onFileClick:_,onFileAction:e=>M([e]),fileActionIcon:"+"}),0===n.changedFiles.length&&(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[(0,s.jsx)(r6.Check,{className:"h-5 w-5 text-emerald-400 mb-2"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:r("git.noChanges")})]})]}),(0,s.jsx)(no.CreateBranchDialog,{open:E,onOpenChange:A,branches:[...n?.branches??[],...n?.remoteBranches??[]],currentBranch:n?.currentBranch??"",localPath:e,onCreated:async()=>{rW.toast.success(r("git.createSuccess")),await D()},onError:e=>rW.toast.error(`${r("git.createFailed")}: ${e}`)})]})}function np({label:e,count:t,labelColor:r,tree:n,batchAction:a,batchLabel:l,batchIcon:o,onFileClick:u,onFileAction:c,fileActionIcon:d}){let[h,f]=(0,i.useState)(!0);return 0===t?null:(0,s.jsxs)("div",{className:"border-b border-border",children:[(0,s.jsxs)("div",{className:"group flex items-center justify-between px-2 py-1.5 hover:bg-accent/50 transition-colors",children:[(0,s.jsxs)("button",{onClick:()=>f(!h),className:"flex items-center gap-1 flex-1 min-w-0",children:[h?(0,s.jsx)(rM.ChevronDown,{className:"h-3 w-3 shrink-0 text-muted-foreground"}):(0,s.jsx)(rD.ChevronRight,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),(0,s.jsxs)("span",{className:`text-[10px] font-semibold uppercase tracking-wider ${r}`,children:[e," (",t,")"]})]}),(0,s.jsx)(ry.Button,{variant:"ghost",size:"icon-xs",onClick:a,className:"text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity","aria-label":l,children:o})]}),h&&(0,s.jsx)("div",{className:"pb-1",children:n.map(e=>(0,s.jsx)(nx,{node:e,depth:0,onFileClick:u,onFileAction:c,fileActionIcon:d},e.path))})]})}function nx({node:e,depth:t,onFileClick:r,onFileAction:n,fileActionIcon:a}){let[l,o]=(0,i.useState)(!0),u=8+12*t;if(e.isDir)return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("button",{onClick:()=>o(!l),className:"flex w-full items-center gap-1 py-0.5 hover:bg-accent/50 transition-colors text-left",style:{paddingLeft:u},children:[l?(0,s.jsx)(rM.ChevronDown,{className:"h-3 w-3 shrink-0 text-muted-foreground"}):(0,s.jsx)(rD.ChevronRight,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),(0,s.jsx)(tR.Folder,{className:"h-3 w-3 shrink-0 text-amber-400/70"}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:e.name})]}),l&&e.children.sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name)).map(e=>(0,s.jsx)(nx,{node:e,depth:t+1,onFileClick:r,onFileAction:n,fileActionIcon:a},e.path))]});let c=e.file,d=nc[c.status]||tF,h=nd[c.status]||"text-muted-foreground",f=nh[c.status]||"?";return(0,s.jsxs)("div",{className:"group flex items-center gap-1 py-0.5 hover:bg-accent/50 transition-colors cursor-pointer",style:{paddingLeft:u+16},onClick:()=>r(c),children:[(0,s.jsx)(d,{className:`h-3 w-3 shrink-0 ${h}`}),(0,s.jsx)("span",{className:"text-xs text-foreground truncate flex-1",children:e.name}),(0,s.jsx)("span",{className:`text-[10px] font-mono font-bold shrink-0 mr-1 ${h}`,children:f}),(0,s.jsx)("button",{onClick:e=>{e.stopPropagation(),n(c.file)},className:"shrink-0 rounded px-1 text-xs font-mono text-muted-foreground opacity-0 group-hover:opacity-100 hover:bg-background hover:text-foreground transition-all mr-1",children:a})]})}var ng=e.i(702431);let nb=(0,rZ.createServerReference)("70947192da794b7a590edf8d14812f710314522efe",rZ.callServer,void 0,rZ.findSourceMapURL,"startPreview"),nv=(0,rZ.createServerReference)("409b4e80d45b70c2866a88478cb51579ac40b55b9d",rZ.callServer,void 0,rZ.findSourceMapURL,"stopPreview");var ny=e.i(477334),nw=e.i(281901);let nj=["pnpm","npm","yarn"];function nk(e){if(!e)return{pm:"pnpm",script:"dev"};let t=e.trim().split(/\s+/),r=nj.includes(t[0])?t[0]:"pnpm",n=t.slice(1);return{pm:r,script:"run"===n[0]?n[1]??"dev":n[0]??"dev"}}function nC({status:e}){return"running"===e?(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400 inline-block"}):"error"===e?(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-red-400 inline-block"}):"starting"===e?(0,s.jsx)(c.Loader2,{className:"h-3 w-3 animate-spin inline-block"}):(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-muted-foreground/50 inline-block"})}function nN({taskId:e,worktreePath:t,previewCommand:r,previewPort:n,refreshKey:a,projectId:l,previewUrl:o,onPreviewUrlChange:u}){let{t:d}=(0,rw.useI18n)(),[h,f]=(0,i.useState)("stopped"),[x,g]=(0,i.useState)(""),[b,v]=(0,i.useState)(o??""),[y,w]=(0,i.useState)(o??""),[j,k]=(0,i.useState)(0),C=nk(r),[N,S]=(0,i.useState)(C.pm),[E,A]=(0,i.useState)(C.script),[D,M]=(0,i.useState)(n??5173);(0,i.useEffect)(()=>{let e=nk(r);S(e.pm),A(e.script)},[r]),(0,i.useEffect)(()=>{null!=n&&M(n)},[n]),(0,i.useEffect)(()=>{o&&(v(o),w(o))},[o]);let I=(0,i.useRef)(e);I.current=e,(0,i.useEffect)(()=>()=>{nv(I.current).catch(()=>{})},[]);let P=(()=>{switch(h){case"running":return d("preview.statusRunning");case"starting":return d("preview.statusStarting");case"error":return d("preview.statusError");default:return d("preview.statusStopped")}})(),R=`${N} ${E}`;async function B(){await (0,nw.updateProject)(l,{previewCommand:R,previewPort:D})}async function F(){if(t&&E){f("starting"),g("");try{await B();let r=await nb(e,R,t);if(r.started){if(f("running"),!b){let e=`http://localhost:${D}`;v(e),w(e),u?.(e)}}else f("error"),g(r.error??"")}catch(e){f("error"),g(String(e))}}}async function L(){await nv(e),f("stopped")}async function z(){if(t)try{await (0,ny.openInTerminal)(t)}catch{f("error"),g(d("preview.terminalError"))}}return t?(0,s.jsxs)("div",{className:"flex h-full flex-col",children:[(0,s.jsxs)("div",{className:"flex h-11 shrink-0 items-center gap-2 border-b border-border bg-card px-3",children:[(0,s.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs ${function(e){switch(e){case"running":return"text-emerald-400 bg-emerald-500/10 border border-emerald-500/20";case"error":return"text-red-400 bg-red-500/10 border border-red-500/20";default:return"text-muted-foreground bg-muted border border-transparent"}}(h)}`,children:[(0,s.jsx)(nC,{status:h}),P]}),"running"===h?(0,s.jsx)(ry.Button,{variant:"destructive",onClick:L,children:d("preview.stop")}):(0,s.jsxs)(ry.Button,{variant:"default",disabled:"starting"===h||!E||!t,onClick:F,children:["starting"===h&&(0,s.jsx)(c.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}),d("preview.run")]}),(0,s.jsx)("div",{className:"flex-1"}),(0,s.jsx)(ry.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",title:d("preview.refresh"),onClick:()=>{y&&k(e=>e+1)},children:(0,s.jsx)(nr.RefreshCw,{className:"h-4 w-4"})}),(0,s.jsx)(ry.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",title:d("preview.openTerminal"),disabled:!t,onClick:z,children:(0,s.jsx)(p.Terminal,{className:"h-4 w-4"})})]}),"error"===h&&x&&(0,s.jsxs)("div",{className:"border-b border-border bg-red-500/10 px-3 py-1 text-xs text-red-400",children:[d("preview.errorDesc"),": ",x]}),(0,s.jsxs)("div",{className:"flex shrink-0 items-center gap-2 border-b border-border bg-card px-3 py-1.5",children:[(0,s.jsxs)(ng.Select,{value:N,onValueChange:e=>{e&&(S(e),setTimeout(B,0))},children:[(0,s.jsx)(ng.SelectTrigger,{className:"h-7 w-auto min-w-[80px] text-xs",children:(0,s.jsx)("span",{children:N})}),(0,s.jsx)(ng.SelectContent,{children:nj.map(e=>(0,s.jsx)(ng.SelectItem,{value:e,children:e},e))})]}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:"run"}),(0,s.jsx)("input",{type:"text",value:E,onChange:e=>A(e.target.value),onBlur:B,placeholder:"dev",className:"h-7 w-24 rounded border border-border bg-background px-2 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-primary"}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:d("preview.port")}),(0,s.jsx)("input",{type:"number",value:D,onChange:e=>M(parseInt(e.target.value,10)||0),onBlur:B,placeholder:"5173",className:"h-7 w-20 rounded border border-border bg-background px-2 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-primary"})]}),(0,s.jsx)("div",{className:"flex shrink-0 items-center border-b border-border bg-background px-3 py-1",children:(0,s.jsx)("input",{type:"text",value:b,onChange:e=>v(e.target.value),onKeyDown:function(e){"Enter"===e.key&&(w(b),u?.(b))},placeholder:d("preview.addressPlaceholder"),className:"h-8 w-full rounded border border-border bg-background px-2 text-xs font-mono focus:outline-none focus:ring-1 focus:ring-primary"})}),(0,s.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,s.jsx)("iframe",{src:y||void 0,className:"h-full w-full border-0",allow:"clipboard-read; clipboard-write",referrerPolicy:"no-referrer-when-downgrade",title:"Preview"},`${a}-${j}`)})]}):(0,s.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3 p-8 text-center",children:[(0,s.jsx)(m.Eye,{className:"h-10 w-10 text-muted-foreground/40"}),(0,s.jsx)("h3",{className:"text-sm font-medium text-foreground",children:d("preview.noWorktree")}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:d("preview.noWorktreeDesc")})]})}var nS=e.i(174145),nE=e.i(485066),nA=e.i(206781),nD=e.i(175936),nM=e.i(314676),nI=e.i(785335),nP=e.i(131021),nR=e.i(758875),nB=e.i(991937),nF=e.i(950084),nL=e.i(711958),nz=e.i(709545);let n$={TODO:"待处理",IN_PROGRESS:"执行中",IN_REVIEW:"待评审",DONE:"已完成",CANCELLED:"已取消"},nT={TODO:"bg-muted text-muted-foreground",IN_PROGRESS:"bg-blue-500/10 text-blue-400 border border-blue-500/20",IN_REVIEW:"bg-amber-500/10 text-amber-400 border border-amber-500/20",DONE:"bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",CANCELLED:"bg-muted text-muted-foreground"};e.s(["TaskPageClient",0,function({task:e,workspaceId:t,workspaceName:r,latestExecution:n,executions:a=[]}){let d,j,k=(0,l.useRouter)(),{t:C}=(0,rw.useI18n)(),{removePortal:N}=(0,nz.useTerminalPortal)(),[S,E]=(0,i.useState)(e.status),[A,D]=(0,i.useState)(null),[M,I]=(0,i.useState)(!1),[P,B]=(0,i.useState)(null),[F,L]=(0,i.useState)(null),[z,$]=(0,i.useState)(null),[T,_]=(0,i.useState)(null),[O,W]=(0,i.useState)(0),[H,G]=(0,i.useState)(""),[K,V]=(0,i.useState)(!1),[U,Y]=(0,i.useState)([]),[q,J]=(0,i.useState)(null),[X,Q]=(0,i.useState)(n?.status==="RUNNING"?n?.worktreePath??null:null),Z=e.project?.localPath?e.subPath?`${e.project.localPath}/${e.subPath}`:e.project.localPath:null,ee=n?.worktreePath??Z;(0,i.useEffect)(()=>{let e=!1;return(0,nF.getPrompts)().then(t=>{if(e)return;Y(t.map(e=>({id:e.id,name:e.name,isDefault:e.isDefault})));let r=t.find(e=>e.isDefault);r&&J(r.id)}),()=>{e=!0}},[]),(0,i.useEffect)(()=>{let t=!1;return(0,nI.getTaskExecutions)(e.id).then(r=>{if(t)return;let n=r[0];if(n?.status==="RUNNING"){let t=n.worktreePath||e.project?.localPath||null;t&&Q(t)}}),()=>{t=!0}},[e.id,e.project?.localPath]),(0,i.useEffect)(()=>{if("TODO"===S||"CANCELLED"===S)return;let t=!1;return I(!0),fetch(`/api/tasks/${e.id}/diff`).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()}).then(e=>{if(!t){if(!e.files&&!e.branchDeleted)return void D(null);D(e)}}).catch(()=>{t||(D(null),rW.toast.error(C("taskPage.loadDiffFailed")))}).finally(()=>{t||I(!1)}),()=>{t=!0}},[e.id,S]);let et=(0,i.useCallback)(async()=>{if(!K){V(!0);try{let{worktreePath:t}=await (0,nE.startPtyExecution)(e.id,"",q);Q(t)}catch(e){V(!1),rW.toast.error(e instanceof Error?e.message:String(e))}}},[e.id,K,q]),er=(0,i.useCallback)(t=>{V(!1),Q(null),N(e.id),0===t&&E("IN_REVIEW"),k.refresh()},[k,N,e.id]),en=(0,i.useCallback)(async()=>{await (0,nA.stopPtyExecution)(e.id),V(!1),Q(null),E("IN_REVIEW"),k.refresh()},[e.id,k]),ea=(0,i.useCallback)(async t=>{V(!0),N(e.id),Q(null);try{let{worktreePath:r}=await (0,nD.resumePtyExecution)(e.id,t);Q(r),E("IN_PROGRESS")}catch{V(!1)}},[e.id,N]),es=(0,i.useCallback)(async()=>{V(!0),N(e.id),Q(null);try{let{worktreePath:t}=await (0,nM.continueLatestPtyExecution)(e.id);Q(t),E("IN_PROGRESS")}catch(e){V(!1),rW.toast.error(e instanceof Error?e.message:String(e))}},[e.id]),ei=(0,i.useCallback)(()=>{E("DONE"),eo(!1),rW.toast.success(C("taskPage.taskCompleted")),fetch(`/api/tasks/${e.id}/diff`).then(e=>{if(e.ok)return e.json()}).then(e=>{e?.files&&D(e)}).catch(()=>{rW.toast.error(C("taskPage.loadDiffFailed"))}),k.refresh()},[k,C,e.id]),[el,eo]=(0,i.useState)(!1),[eu,ec]=(0,i.useState)([]),ed=(0,i.useCallback)(async()=>{try{let t=await (0,nR.checkWorktreeClean)(e.id);if(t.hasWorktree&&!t.clean)return void rW.toast.error(C("taskPage.uncommittedChanges",{count:String(t.files.length)}));if(t.hasWorktree&&t.clean&&!t.hasCommits)return void rW.toast.error(C("taskPage.noChangesToComplete"));if(t.hasWorktree&&t.hasCommits){ec(t.commitLog),eo(!0);return}await (0,nP.updateTaskStatus)(e.id,"DONE"),E("DONE"),k.refresh(),rW.toast.success(C("taskPage.taskCompleted"))}catch(e){rW.toast.error(e instanceof Error?e.message:String(e))}},[e.id,k,C,n]),eh=(0,i.useCallback)(async t=>{try{let{hash:r}=await (0,nB.commitWorktreeChanges)(e.id,t);rW.toast.success(C("diff.commitSuccess",{hash:r})),k.refresh();let n=await fetch(`/api/tasks/${e.id}/diff`);if(n.ok){let e=await n.json();D(e?.files?e:null)}}catch(e){rW.toast.error(e instanceof Error?e.message:"Commit failed")}},[e.id,k,C]);return(0,s.jsxs)(eL,{direction:"horizontal",className:"h-screen bg-background",children:[(0,s.jsxs)(R,{defaultSize:35,minSize:20,className:"flex flex-col border-r border-border bg-sidebar",children:[(0,s.jsxs)("div",{className:"header-lg px-4 py-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)(w.default,{href:`/workspaces/${t}?projectId=${e.projectId}&taskId=${e.id}`,className:"flex shrink-0 items-center justify-center rounded-md border border-border bg-muted px-1.5 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:[(0,s.jsx)(o.ArrowLeft,{className:"mr-1 h-3 w-3"}),C("taskPage.back")]}),(0,s.jsxs)("div",{className:"flex min-w-0 items-center gap-1 text-sm text-muted-foreground",children:[(0,s.jsx)("span",{className:"shrink-0",children:r}),e.project&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"shrink-0",children:"/"}),(0,s.jsx)("span",{className:"shrink-0",children:e.project.name})]}),(0,s.jsx)("span",{className:"shrink-0",children:"/"}),(0,s.jsx)("span",{className:"truncate font-semibold text-foreground",children:e.title})]})]}),(0,s.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,s.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-[10px] font-medium ${nT[S]??"bg-muted text-muted-foreground"}`,children:n$[S]??S}),(e.baseBranch||n?.worktreeBranch)&&(0,s.jsxs)(nS.Badge,{variant:"secondary",className:"gap-1 border border-border bg-muted font-mono text-[10px] text-muted-foreground",children:[(0,s.jsx)(u.GitBranch,{className:"h-2.5 w-2.5"}),e.baseBranch??n?.worktreeBranch]})]}),(0,s.jsx)("div",{className:"border-t border-transparent",children:"IN_REVIEW"===S&&(0,s.jsx)("div",{className:"mt-2",children:(0,s.jsxs)(ry.Button,{size:"sm",onClick:ed,className:"bg-emerald-500/15 text-emerald-400 ring-1 ring-emerald-500/20 hover:bg-emerald-500/25",children:[(0,s.jsx)(g.CheckCircle2,{className:"h-3.5 w-3.5"}),C("taskPage.completeTask")]})})})]}),(0,s.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:X?(0,s.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,s.jsxs)("div",{className:"header-xs shrink-0 flex items-center justify-between border-b-neutral-800 px-3 py-1.5 bg-[#0a0a0a]",children:[(0,s.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-emerald-400",children:[(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400 animate-pulse"}),C("execution.running")]}),(0,s.jsxs)(y.Tooltip,{children:[(0,s.jsxs)(y.TooltipTrigger,{onClick:en,className:"flex items-center gap-1.5 rounded-md bg-red-500/15 px-3 py-1 text-xs font-medium text-red-400 hover:bg-red-500/25 transition-colors",children:[(0,s.jsx)(x.Square,{className:"h-3 w-3"}),C("terminal.stopExecution")]}),(0,s.jsx)(y.TooltipContent,{side:"bottom",children:C("terminal.stopHint")})]})]}),(0,s.jsx)("div",{className:"flex-1 min-h-0",children:(0,s.jsx)(nz.TerminalOutlet,{taskId:e.id,worktreePath:X,onSessionEnd:er,onFileOpen:e=>{B(e),_("files")}})})]}):"DONE"===S||"CANCELLED"===S?(0,s.jsx)("div",{className:"flex h-full flex-col overflow-hidden bg-[#0a0a0a]",children:(0,s.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:(0,s.jsx)(nL.ExecutionTimeline,{executions:a})})}):(0,s.jsxs)("div",{className:"flex h-full flex-col overflow-hidden bg-[#0a0a0a]",children:[(0,s.jsxs)("div",{className:"header-xs shrink-0 flex items-center gap-3 border-b-neutral-800 px-4 py-1.5",children:[U.length>0&&(0,s.jsxs)(ng.Select,{defaultValue:q??"none",onValueChange:e=>J("none"===e?null:e),children:[(0,s.jsx)(ng.SelectTrigger,{size:"sm",className:"min-w-[140px]",children:(0,s.jsx)("span",{className:"text-left truncate",children:q?U.find(e=>e.id===q)?.name??C("terminal.noPrompt"):C("terminal.noPrompt")})}),(0,s.jsxs)(ng.SelectContent,{className:"min-w-[200px]",children:[(0,s.jsx)(ng.SelectItem,{value:"none",children:C("terminal.noPrompt")}),U.map(e=>(0,s.jsxs)(ng.SelectItem,{value:e.id,children:[e.name,e.isDefault?" ★":""]},e.id))]})]},`prompt-${U.length}`),(0,s.jsxs)(ry.Button,{onClick:et,disabled:K,size:"sm",className:"gap-2 px-4",children:[K?(0,s.jsx)(c.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,s.jsx)(p.Terminal,{className:"h-3.5 w-3.5"}),K?C("terminal.executing"):C("terminal.launch")]})]}),(0,s.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:(0,s.jsx)(nL.ExecutionTimeline,{executions:a,onResume:ea,onContinueLatest:es})})]})})]}),(0,s.jsx)(eT,{className:"relative w-px bg-border transition-colors hover:bg-primary/20 active:bg-primary/40 cursor-col-resize"}),(0,s.jsx)(R,{defaultSize:65,minSize:20,className:"flex flex-col",children:(j=(d="DONE"===S&&!!e.baseBranch)?"changes":"files",(0,s.jsxs)(tN,{value:T??j,onValueChange:_,className:"flex h-full flex-col gap-0",children:[(0,s.jsx)("div",{className:"header-lg flex shrink-0 items-center px-3 py-3",children:(0,s.jsxs)(tE,{className:"h-auto border border-border",children:[!d&&(0,s.jsxs)(tA,{value:"files",className:"data-active:bg-background data-active:text-foreground data-active:shadow-sm dark:data-active:bg-background dark:data-active:border-transparent",children:[(0,s.jsx)(h,{className:"h-3.5 w-3.5"}),C("taskPage.tabFiles")]}),(0,s.jsxs)(tA,{value:"changes",className:"data-active:bg-background data-active:text-foreground data-active:shadow-sm dark:data-active:bg-background dark:data-active:border-transparent",children:[(0,s.jsx)(f.GitCompare,{className:"h-3.5 w-3.5"}),C("taskPage.changes")]}),!d&&e.project?.projectType!=="BACKEND"&&(0,s.jsxs)(tA,{value:"preview",className:"data-active:bg-background data-active:text-foreground data-active:shadow-sm dark:data-active:bg-background dark:data-active:border-transparent",children:[(0,s.jsx)(m.Eye,{className:"h-3.5 w-3.5"}),C("taskPage.tabPreview")]})]})}),(0,s.jsx)(tD,{value:"files",className:"flex-1 min-h-0 overflow-hidden",children:(0,s.jsxs)("div",{className:"flex h-full flex-row overflow-hidden",children:[(0,s.jsx)("div",{className:"w-60 flex-none border-r border-border overflow-hidden flex flex-col",children:(0,s.jsxs)(tN,{defaultValue:"filetree",className:"flex h-full flex-col gap-0",children:[(0,s.jsx)("div",{className:"header-xs flex shrink-0 px-2 py-1.5",children:(0,s.jsxs)(tE,{className:"h-auto border border-border w-full",children:[(0,s.jsxs)(tA,{value:"filetree",className:"flex-1 text-xs gap-1 data-active:bg-background data-active:text-foreground data-active:shadow-sm dark:data-active:bg-background dark:data-active:border-transparent",children:[(0,s.jsx)(h,{className:"h-3 w-3"}),C("taskPage.tabFileTree")]}),(0,s.jsxs)(tA,{value:"search",className:"flex-1 text-xs gap-1 data-active:bg-background data-active:text-foreground data-active:shadow-sm dark:data-active:bg-background dark:data-active:border-transparent",children:[(0,s.jsx)(b.Search,{className:"h-3 w-3"}),C("taskPage.tabSearch")]}),(0,s.jsxs)(tA,{value:"git",className:"flex-1 text-xs gap-1 data-active:bg-background data-active:text-foreground data-active:shadow-sm dark:data-active:bg-background dark:data-active:border-transparent",children:[(0,s.jsx)(v,{className:"h-3 w-3"}),C("git.tabLabel")]})]})}),(0,s.jsx)(tD,{value:"filetree",className:"flex-1 min-h-0 overflow-hidden mt-0",children:(0,s.jsx)(r$,{worktreePath:ee??null,baseBranch:e.baseBranch??null,worktreeBranch:n?.worktreeBranch??null,executionStatus:n?.status??"COMPLETED",onFileSelect:e=>{B(e),L(null)}})}),(0,s.jsx)(tD,{value:"search",className:"flex-1 min-h-0 overflow-hidden mt-0",children:(0,s.jsx)(r1,{localPath:ee??e.project?.localPath??null,onResultSelect:(e,t)=>{B(e),L(t),_("files")}})}),(0,s.jsx)(tD,{value:"git",className:"flex-1 min-h-0 overflow-hidden mt-0",children:(0,s.jsx)(nm,{localPath:ee??e.project?.localPath??"",onFileSelect:(e,t)=>{$({relativePath:e,originalContent:t})}})})]})}),(0,s.jsx)("div",{className:"flex-1 min-w-0 overflow-hidden",children:ee?(0,s.jsx)(rX,{worktreePath:ee,selectedFilePath:P,selectedLine:F,onFilePathChange:B,onSave:()=>W(e=>e+1),diffFileRequest:z}):(0,s.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:C("editor.noWorktree")})})})]})}),(0,s.jsx)(tD,{value:"changes",className:"flex-1 min-h-0 overflow-auto",children:M?(0,s.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2",children:[(0,s.jsx)(c.Loader2,{className:"size-5 animate-spin text-muted-foreground"}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:C("taskPage.loadingDiff")})]}):A?.branchDeleted?(0,s.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:C("taskPage.branchDeleted")})}):A?(0,s.jsx)(tM.TaskDiffView,{files:A.files,totalAdded:A.totalAdded,totalRemoved:A.totalRemoved,hasConflicts:A.hasConflicts,conflictFiles:A.conflictFiles,onCommit:eh,hasUncommitted:A.hasUncommitted}):(0,s.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"TODO"===S?C("taskPage.startExecution"):C("taskPage.noDiff")})})}),(0,s.jsx)(tD,{value:"preview",className:"flex-1 min-h-0 overflow-hidden",children:(0,s.jsx)(nN,{taskId:e.id,worktreePath:n?.worktreePath??null,previewCommand:e.project?.previewCommand??null,previewPort:e.project?.previewPort??null,refreshKey:O,projectId:e.projectId,previewUrl:H,onPreviewUrlChange:G})})]},j))}),(0,s.jsx)(tI.TaskMergeConfirmDialog,{open:el,onOpenChange:eo,taskId:e.id,taskTitle:e.title,baseBranch:e.baseBranch??"main",fileCount:A?.files?.length??0,commitCount:A?.commitCount??0,commitLog:eu,onMergeComplete:ei})]})}],470511)}]);
|