tower-studio 0.1.1 → 0.1.3
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/components.json +25 -0
- package/next.config.ts +1 -1
- package/package.json +10 -11
- package/postcss.config.mjs +7 -0
- package/prisma/dev.db +0 -0
- package/prisma/prisma/dev.db +0 -0
- package/prisma/seed.ts +50 -0
- package/scripts/init-tower.ts +10 -0
- package/scripts/post-tool-hook.js +188 -0
- package/scripts/session-start-hook.js +79 -0
- package/scripts/stop-hook.js +78 -0
- package/skills/tower/SKILL.md +375 -0
- package/src/actions/__tests__/agent-actions-username.test.ts +30 -0
- package/src/actions/__tests__/asset-actions.test.ts +251 -0
- package/src/actions/__tests__/assistant-actions.test.ts +20 -0
- package/src/actions/__tests__/cli-profile-actions.test.ts +243 -0
- package/src/actions/__tests__/label-actions.test.ts +187 -0
- package/src/actions/__tests__/note-actions.test.ts +237 -0
- package/src/actions/__tests__/onboarding-actions.test.ts +265 -0
- package/src/actions/__tests__/project-actions.test.ts +179 -0
- package/src/actions/__tests__/prompt-actions.test.ts +213 -0
- package/src/actions/__tests__/report-actions.test.ts +246 -0
- package/src/actions/__tests__/search-code-actions.test.ts +308 -0
- package/src/actions/__tests__/task-actions-overview.test.ts +58 -0
- package/src/actions/__tests__/task-actions-pin.test.ts +79 -0
- package/src/actions/__tests__/workspace-actions.test.ts +256 -0
- package/src/actions/agent-actions.ts +741 -0
- package/src/actions/agent-config-actions.ts +44 -0
- package/src/actions/ai-config-actions.ts +51 -0
- package/src/actions/asset-actions.ts +131 -0
- package/src/actions/assistant-actions.ts +107 -0
- package/src/actions/cli-profile-actions.ts +98 -0
- package/src/actions/config-actions.ts +84 -0
- package/src/actions/file-actions.ts +262 -0
- package/src/actions/git-actions.ts +90 -0
- package/src/actions/label-actions.ts +67 -0
- package/src/actions/note-actions.ts +87 -0
- package/src/actions/onboarding-actions.ts +103 -0
- package/src/actions/preview-actions.ts +76 -0
- package/src/actions/project-actions.ts +222 -0
- package/src/actions/prompt-actions.ts +73 -0
- package/src/actions/report-actions.ts +141 -0
- package/src/actions/search-actions.ts +21 -0
- package/src/actions/search-code-actions.ts +185 -0
- package/src/actions/task-actions.ts +350 -0
- package/src/actions/workspace-actions.ts +224 -0
- package/src/app/api/adapters/test/route.ts +52 -0
- package/src/app/api/browse-fs/route.ts +90 -0
- package/src/app/api/files/assets/[projectId]/[filename]/route.ts +38 -0
- package/src/app/api/git/route.ts +367 -0
- package/src/app/api/internal/assets/[projectId]/[filename]/route.ts +51 -0
- package/src/app/api/internal/assets/reveal/route.ts +71 -0
- package/src/app/api/internal/assistant/chat/route.ts +217 -0
- package/src/app/api/internal/assistant/images/route.ts +51 -0
- package/src/app/api/internal/assistant/route.ts +50 -0
- package/src/app/api/internal/assistant/sessions/route.ts +44 -0
- package/src/app/api/internal/cache/[...segments]/route.ts +59 -0
- package/src/app/api/internal/hooks/install/route.ts +41 -0
- package/src/app/api/internal/hooks/session/route.ts +60 -0
- package/src/app/api/internal/hooks/stop/route.ts +61 -0
- package/src/app/api/internal/hooks/upload/route.ts +173 -0
- package/src/app/api/internal/notifications/pending/route.ts +20 -0
- package/src/app/api/internal/terminal/[taskId]/buffer/route.ts +48 -0
- package/src/app/api/internal/terminal/[taskId]/input/route.ts +64 -0
- package/src/app/api/internal/terminal/[taskId]/start/route.ts +37 -0
- package/src/app/api/tasks/[taskId]/diff/route.ts +224 -0
- package/src/app/api/tasks/[taskId]/merge/route.ts +159 -0
- package/src/app/globals.css +247 -0
- package/src/app/layout.tsx +63 -0
- package/src/app/missions/missions-client.tsx +338 -0
- package/src/app/missions/page.tsx +10 -0
- package/src/app/onboarding/page.tsx +619 -0
- package/src/app/page.tsx +5 -0
- package/src/app/settings/page.tsx +7 -0
- package/src/app/workspaces/[workspaceId]/archive/archive-page-client.tsx +258 -0
- package/src/app/workspaces/[workspaceId]/archive/page.tsx +36 -0
- package/src/app/workspaces/[workspaceId]/assets/assets-page-client.tsx +232 -0
- package/src/app/workspaces/[workspaceId]/assets/page.tsx +36 -0
- package/src/app/workspaces/[workspaceId]/board-page-client.tsx +257 -0
- package/src/app/workspaces/[workspaceId]/notes/notes-page-client.tsx +337 -0
- package/src/app/workspaces/[workspaceId]/notes/page.tsx +39 -0
- package/src/app/workspaces/[workspaceId]/page.tsx +81 -0
- package/src/app/workspaces/[workspaceId]/projects/[projectId]/page.tsx +30 -0
- package/src/app/workspaces/[workspaceId]/tasks/[taskId]/page.tsx +97 -0
- package/src/app/workspaces/[workspaceId]/tasks/[taskId]/task-page-client.tsx +601 -0
- package/src/app/workspaces/page.tsx +13 -0
- package/src/components/assets/asset-item.tsx +128 -0
- package/src/components/assets/asset-list.tsx +31 -0
- package/src/components/assets/asset-upload.tsx +216 -0
- package/src/components/assets/image-lightbox.tsx +72 -0
- package/src/components/assets/text-preview-dialog.tsx +135 -0
- package/src/components/assistant/assistant-chat-bubble.tsx +308 -0
- package/src/components/assistant/assistant-chat.tsx +215 -0
- package/src/components/assistant/assistant-panel.tsx +149 -0
- package/src/components/assistant/assistant-provider.tsx +512 -0
- package/src/components/assistant/image-preview-modal.tsx +60 -0
- package/src/components/assistant/image-thumbnail-strip.tsx +94 -0
- package/src/components/board/board-column.tsx +115 -0
- package/src/components/board/board-filters.tsx +42 -0
- package/src/components/board/board-stats.tsx +52 -0
- package/src/components/board/column-tasks-dialog.tsx +100 -0
- package/src/components/board/create-task-dialog.tsx +362 -0
- package/src/components/board/kanban-board.tsx +169 -0
- package/src/components/board/project-tabs.tsx +93 -0
- package/src/components/board/task-card-context-menu.tsx +121 -0
- package/src/components/board/task-card.tsx +135 -0
- package/src/components/layout/__tests__/top-bar-username.test.tsx +24 -0
- package/src/components/layout/app-sidebar.tsx +662 -0
- package/src/components/layout/folder-browser-dialog.tsx +273 -0
- package/src/components/layout/layout-client.tsx +198 -0
- package/src/components/layout/search-dialog.tsx +196 -0
- package/src/components/layout/sub-page-nav.tsx +54 -0
- package/src/components/layout/top-bar.tsx +265 -0
- package/src/components/missions/grid-layout-presets.ts +19 -0
- package/src/components/missions/grid-preset-picker.tsx +209 -0
- package/src/components/missions/merge-missions.ts +30 -0
- package/src/components/missions/mission-card.tsx +203 -0
- package/src/components/missions/task-picker-dialog.tsx +415 -0
- package/src/components/notes/category-filter.tsx +44 -0
- package/src/components/notes/note-card.tsx +67 -0
- package/src/components/notes/note-editor.tsx +28 -0
- package/src/components/notes/note-list.tsx +30 -0
- package/src/components/notifications/notification-permission-banner.tsx +49 -0
- package/src/components/notifications/use-notification-listener.ts +114 -0
- package/src/components/onboarding/__tests__/onboarding-wizard.test.tsx +185 -0
- package/src/components/onboarding/guided-tour.tsx +255 -0
- package/src/components/onboarding/onboarding-wizard.tsx +84 -0
- package/src/components/onboarding/wizard-step-cli.tsx +53 -0
- package/src/components/onboarding/wizard-step-username.tsx +59 -0
- package/src/components/project/create-project-dialog.tsx +310 -0
- package/src/components/project/import-project-dialog.tsx +414 -0
- package/src/components/providers/theme-provider.tsx +8 -0
- package/src/components/repository/create-branch-dialog.tsx +165 -0
- package/src/components/repository/git-changes-panel.tsx +294 -0
- package/src/components/repository/git-log-panel.tsx +83 -0
- package/src/components/repository/git-stash-panel.tsx +158 -0
- package/src/components/repository/repo-sidebar.tsx +855 -0
- package/src/components/settings/cli-adapter-tester.tsx +144 -0
- package/src/components/settings/settings-page.tsx +2111 -0
- package/src/components/task/code-editor.tsx +376 -0
- package/src/components/task/code-search.tsx +219 -0
- package/src/components/task/diff-editor.tsx +97 -0
- package/src/components/task/editor-git-panel.tsx +792 -0
- package/src/components/task/editor-tabs.tsx +68 -0
- package/src/components/task/execution-timeline.tsx +258 -0
- package/src/components/task/file-tree-context-menu.tsx +113 -0
- package/src/components/task/file-tree-node.tsx +269 -0
- package/src/components/task/file-tree.tsx +575 -0
- package/src/components/task/preview-panel.tsx +281 -0
- package/src/components/task/task-detail-panel.tsx +455 -0
- package/src/components/task/task-diff-view.tsx +207 -0
- package/src/components/task/task-file-changes.tsx +19 -0
- package/src/components/task/task-merge-confirm-dialog.tsx +152 -0
- package/src/components/task/task-metadata.tsx +74 -0
- package/src/components/task/task-notes-panel.tsx +219 -0
- package/src/components/task/task-overview-drawer.tsx +172 -0
- package/src/components/task/task-terminal.tsx +294 -0
- package/src/components/task/terminal-portal.tsx +156 -0
- package/src/components/task/types.ts +6 -0
- package/src/components/ui/avatar.tsx +109 -0
- package/src/components/ui/badge.tsx +52 -0
- package/src/components/ui/button.tsx +58 -0
- package/src/components/ui/card.tsx +103 -0
- package/src/components/ui/command.tsx +196 -0
- package/src/components/ui/dialog.tsx +160 -0
- package/src/components/ui/dropdown-menu.tsx +268 -0
- package/src/components/ui/empty-state.tsx +26 -0
- package/src/components/ui/error-boundary.tsx +58 -0
- package/src/components/ui/input-group.tsx +158 -0
- package/src/components/ui/input.tsx +20 -0
- package/src/components/ui/label.tsx +20 -0
- package/src/components/ui/popover.tsx +90 -0
- package/src/components/ui/scroll-area.tsx +55 -0
- package/src/components/ui/segmented-control.tsx +42 -0
- package/src/components/ui/select.tsx +207 -0
- package/src/components/ui/separator.tsx +25 -0
- package/src/components/ui/sheet.tsx +138 -0
- package/src/components/ui/sonner.tsx +49 -0
- package/src/components/ui/switch.tsx +32 -0
- package/src/components/ui/tabs.tsx +82 -0
- package/src/components/ui/textarea.tsx +18 -0
- package/src/components/ui/toast.tsx +86 -0
- package/src/components/ui/tooltip.tsx +66 -0
- package/src/hooks/__tests__/sse-event-reducer.test.ts +263 -0
- package/src/hooks/__tests__/use-assistant-chat.test.ts +34 -0
- package/src/hooks/__tests__/use-image-upload.test.ts +443 -0
- package/src/hooks/sse-event-reducer.ts +144 -0
- package/src/hooks/use-assistant-chat.ts +190 -0
- package/src/hooks/use-image-upload.ts +140 -0
- package/src/instrumentation.ts +18 -0
- package/src/lib/__tests__/assistant-message-converter.test.ts +162 -0
- package/src/lib/__tests__/assistant-sessions.test.ts +253 -0
- package/src/lib/__tests__/build-multimodal-prompt.test.ts +173 -0
- package/src/lib/__tests__/config-reader.test.ts +75 -0
- package/src/lib/__tests__/diff-parser.test.ts +212 -0
- package/src/lib/__tests__/execution-summary.test.ts +237 -0
- package/src/lib/__tests__/file-serve.test.ts +178 -0
- package/src/lib/__tests__/file-utils.test.ts +177 -0
- package/src/lib/__tests__/internal-api-guard.test.ts +151 -0
- package/src/lib/__tests__/logger.test.ts +181 -0
- package/src/lib/__tests__/platform.test.ts +566 -0
- package/src/lib/__tests__/reveal-route-security.test.ts +65 -0
- package/src/lib/__tests__/schemas.test.ts +377 -0
- package/src/lib/__tests__/terminal-link-provider.test.ts +160 -0
- package/src/lib/__tests__/upload-route-security.test.ts +120 -0
- package/src/lib/ai/__tests__/capability-resolver.test.ts +71 -0
- package/src/lib/ai/__tests__/claude-cli-adapter.test.ts +103 -0
- package/src/lib/ai/__tests__/provider-registry.test.ts +74 -0
- package/src/lib/ai/adapters/cli/claude-cli-adapter.ts +166 -0
- package/src/lib/ai/capability-resolver.ts +81 -0
- package/src/lib/ai/provider-registry.ts +54 -0
- package/src/lib/ai/providers/claude.ts +19 -0
- package/src/lib/ai/providers/index.ts +12 -0
- package/src/lib/ai/types.ts +151 -0
- package/src/lib/assistant-constants.ts +2 -0
- package/src/lib/assistant-message-converter.ts +131 -0
- package/src/lib/assistant-sessions.ts +75 -0
- package/src/lib/build-multimodal-prompt.ts +53 -0
- package/src/lib/claude-session.ts +156 -0
- package/src/lib/cli-test.ts +476 -0
- package/src/lib/config-defaults.ts +121 -0
- package/src/lib/config-reader.ts +16 -0
- package/src/lib/constants.ts +26 -0
- package/src/lib/db.ts +28 -0
- package/src/lib/diff-parser.ts +132 -0
- package/src/lib/execution-summary.ts +287 -0
- package/src/lib/file-serve-client.ts +13 -0
- package/src/lib/file-serve.ts +32 -0
- package/src/lib/file-utils.ts +108 -0
- package/src/lib/fs-security.ts +22 -0
- package/src/lib/fts.ts +83 -0
- package/src/lib/git-api.ts +19 -0
- package/src/lib/git-url.ts +244 -0
- package/src/lib/i18n/en.ts +754 -0
- package/src/lib/i18n/types.ts +4 -0
- package/src/lib/i18n/zh.ts +769 -0
- package/src/lib/i18n.tsx +64 -0
- package/src/lib/init-tower.ts +129 -0
- package/src/lib/instrumentation-tasks.ts +116 -0
- package/src/lib/internal-api-guard.ts +63 -0
- package/src/lib/logger.ts +46 -0
- package/src/lib/mime-magic.ts +67 -0
- package/src/lib/platform.ts +518 -0
- package/src/lib/preview-process.ts +40 -0
- package/src/lib/pty/__tests__/ws-server-assistant.test.ts +7 -0
- package/src/lib/pty/pty-session.ts +157 -0
- package/src/lib/pty/session-store.ts +67 -0
- package/src/lib/pty/ws-server.ts +335 -0
- package/src/lib/schemas.ts +67 -0
- package/src/lib/search.ts +225 -0
- package/src/lib/terminal-link-provider.ts +90 -0
- package/src/lib/tower-dir.ts +69 -0
- package/src/lib/utils.ts +20 -0
- package/src/lib/worktree.ts +184 -0
- package/src/stores/board-store.ts +46 -0
- package/src/stores/task-execution-store.ts +41 -0
- package/src/types/index.ts +36 -0
- 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 -338
- package/.next/required-server-files.json +0 -338
- 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]__03swpls._.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]__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]__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]__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]__0v0dk_o._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0vpgotk._.js +0 -3
- 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_0_i~57x._.js +0 -3
- package/.next/server/chunks/ssr/tower_0agzi_m._.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_0h3r32m._.js +0 -30
- package/.next/server/chunks/ssr/tower_0kl_bfy._.js +0 -7
- package/.next/server/chunks/ssr/tower_0le1h0h._.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_0rdk81e._.js +0 -3
- 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_0wvk~r.._.js +0 -3
- package/.next/server/chunks/ssr/tower_0xg_zeq._.js +0 -3
- package/.next/server/chunks/ssr/tower_0~oir9k._.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_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_0puzd-6._.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/0.uav~g39w7rr.js +0 -1
- package/.next/static/chunks/00z-g3x93ngvn.js +0 -1
- package/.next/static/chunks/02f8le_y~6gnd.js +0 -1
- package/.next/static/chunks/03e.4ymu.j5wl.js +0 -1
- package/.next/static/chunks/03~yq9q893hmn.js +0 -1
- package/.next/static/chunks/05-b9qqm3av9~.js +0 -1
- package/.next/static/chunks/05~v02mkan5z..js +0 -1
- package/.next/static/chunks/06-mw~zl.diaf.js +0 -1
- package/.next/static/chunks/06fsp5nfga486.js +0 -1
- package/.next/static/chunks/07~c.vc82_c1-.js +0 -1
- package/.next/static/chunks/0abtpeymj-58i.js +0 -1
- package/.next/static/chunks/0amhu3hs4zxxw.js +0 -1
- package/.next/static/chunks/0drgc-oztq6o-.css +0 -1
- package/.next/static/chunks/0eaa2lmymh2fx.js +0 -1
- package/.next/static/chunks/0j9qriqni_r1..js +0 -2
- package/.next/static/chunks/0k.u8sxy~e469.js +0 -4
- package/.next/static/chunks/0k_9.73yz~q10.js +0 -1
- package/.next/static/chunks/0ltsz~s~e4wzu.js +0 -1
- package/.next/static/chunks/0lvd52mjiit6s.js +0 -1
- package/.next/static/chunks/0mf7~j7tvqr46.js +0 -1
- package/.next/static/chunks/0mq0uqbbbb1~2.js +0 -1
- package/.next/static/chunks/0neevhl_o1ozu.css +0 -2
- package/.next/static/chunks/0omj~p3uxkic-.js +0 -1
- package/.next/static/chunks/0qe.8bmmwuucu.js +0 -5
- package/.next/static/chunks/0qpq1~6v-eql7.js +0 -1
- package/.next/static/chunks/0t-gr6j-c65qb.js +0 -1
- package/.next/static/chunks/0tcl81ybuob5i.js +0 -1
- package/.next/static/chunks/0uqimvsni_op~.js +0 -1
- package/.next/static/chunks/0uxf0jd91e-0r.js +0 -1
- package/.next/static/chunks/0vn2y~4w7u3ui.js +0 -83
- package/.next/static/chunks/0wt3kws~_yr8z.js +0 -1
- package/.next/static/chunks/0z2bzovqhl2f5.js +0 -1
- package/.next/static/chunks/0z7bwntvfhxzi.js +0 -12
- package/.next/static/chunks/10n23t.1hpb-1.js +0 -1
- package/.next/static/chunks/14xzmrt5ly6gq.js +0 -31
- package/.next/static/chunks/151wr~6x8aclx.js +0 -1
- package/.next/static/chunks/15gjy.xhhriy8.js +0 -5
- package/.next/static/chunks/16ft9mdv3zwse.js +0 -1
- package/.next/static/chunks/16w-ap~msrwpj.js +0 -1
- package/.next/static/chunks/17oc2l.ekcs8b.css +0 -1
- package/.next/static/chunks/turbopack-0wjmrsi.z32s0.js +0 -1
- package/.next/static/dwsGxWRLV_FPRJyEkai5s/_buildManifest.js +0 -11
- package/.next/static/dwsGxWRLV_FPRJyEkai5s/_clientMiddlewareManifest.js +0 -1
- package/.next/static/dwsGxWRLV_FPRJyEkai5s/_ssgManifest.js +0 -1
- package/.next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
- package/.next/static/media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2 +0 -0
- package/.next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
- package/.next/static/media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2 +0 -0
- package/.next/static/media/apple-icon.16aocl-s-v2qz.png +0 -0
- package/.next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
- package/.next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2 +0 -0
- package/.next/static/media/favicon.0y2d6j9cou~8p.ico +0 -0
- package/.next/static/media/icon0.0a6mkq6meyird.svg +0 -1
- package/.next/static/media/icon1.04ux133882seb.png +0 -0
- 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/{.next/server/app/apple-icon.png.body → src/app/apple-icon.png} +0 -0
- /package/{.next/server/app/favicon.ico.body → src/app/favicon.ico} +0 -0
- /package/{.next/server/app/icon0.svg.body → src/app/icon0.svg} +0 -0
- /package/{.next/server/app/icon1.png.body → src/app/icon1.png} +0 -0
- /package/{.next/server/app/manifest.json.body → src/app/manifest.json} +0 -0
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[200082,a=>{"use strict";var b=a.i(998503),c=a.i(284527),d=a.i(391313),e=a.i(605389),f=a.i(703714),g=a.i(787084),h=a.i(988594),i=a.i(697265);class j extends Error{code;provider;constructor(a,b,c){super(c),this.code=a,this.provider=b,this.name="AiProviderError"}}async function k(a){return c.db.aiCapabilityConfig.findUnique({where:{slot:a}})}async function l(a){let b=await k(a),c=b?.provider??"claude",d=b?.model??void 0,e=i.providerRegistry.get(c);if(!e)throw new j("CLI_NOT_FOUND",c,`Provider "${c}" 未注册`);let f=e.cli?.adapter;if(!f)throw new j("UNSUPPORTED_MODE",c,`Provider "${c}" 不支持 CLI 模式`);return{adapter:f,provider:e,model:d}}var m=a.i(924868),n=a.i(446786),o=a.i(814747),p=a.i(126892);let q=g.logger.create("agent-actions"),r=(0,o.join)((0,n.tmpdir)(),"tower-signals");async function s(a,b){try{await (0,m.mkdir)(r,{recursive:!0,mode:448}),await (0,m.writeFile)((0,o.join)(r,`exit-${a}`),String(b),{mode:384})}catch{}}function t(a,b){try{return JSON.parse(a)}catch{throw Error(`CLI Profile ${b} 格式损坏,请在 Settings 中修复`)}}async function u(a,b){let e=await c.db.taskMessage.create({data:{role:"USER",content:b,taskId:a}});return(0,d.revalidatePath)("/workspaces"),{userMessage:e}}async function v(a){return c.db.taskMessage.findMany({where:{taskId:a},orderBy:{createdAt:"asc"}})}async function w(a,b="CLAUDE_CODE",e,f){let g=await c.db.taskExecution.create({data:{taskId:a,agent:b,status:"RUNNING",startedAt:new Date,worktreePath:e??null,worktreeBranch:f??null}});return await c.db.task.update({where:{id:a},data:{status:"IN_PROGRESS"}}),(0,d.revalidatePath)("/workspaces"),g}async function x(a,b="FAILED"){let e=await c.db.taskExecution.update({where:{id:a},data:{status:b,endedAt:new Date}});return(0,d.revalidatePath)("/workspaces"),e}async function y(b){let{destroySession:e,getSession:f}=await a.A(93322),g=f(b),h=g?.getBuffer()??"",i=await c.db.taskExecution.findFirst({where:{taskId:b,status:"RUNNING"},orderBy:{createdAt:"desc"}}),j=await c.db.task.findUnique({where:{id:b},include:{project:{select:{localPath:!0}}}});if(e(b),i){await c.db.taskExecution.update({where:{id:i.id},data:{status:"COMPLETED",endedAt:new Date}}),await c.db.task.update({where:{id:b},data:{status:"IN_REVIEW"}});let d=i.worktreePath||j?.project?.localPath||null,{captureExecutionSummary:e}=await a.A(528814);await e(i.id,b,0,h,d)}(0,d.revalidatePath)("/workspaces")}async function z(a){return c.db.taskExecution.findMany({where:{taskId:a},orderBy:{createdAt:"desc"},include:{insightNote:{select:{id:!0,title:!0,content:!0}}}})}async function A(b,e){let g=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(!g)throw Error("Task not found");if(!g.project?.localPath)throw Error("Project has no local path configured");await c.db.taskExecution.updateMany({where:{taskId:b,status:"RUNNING",NOT:{sessionId:e}},data:{status:"FAILED",endedAt:new Date}});let i=await c.db.taskExecution.findFirst({where:{taskId:b,sessionId:e},orderBy:{createdAt:"desc"}});if(!i)throw Error("Previous execution not found");let j=i.worktreePath??g.project.localPath,k=g.subPath?(0,o.join)(j,g.subPath):j,m=await c.db.cliProfile.findFirst({where:{isDefault:!0}});if(!m)throw Error("No default CLI profile found — run seed first");let n=t(m.baseArgs,"baseArgs"),p=t(m.envVars,"envVars"),r=await (0,h.readConfigValue)("terminal.idleTimeoutSec",180),{adapter:u}=await l("terminal"),v=u.buildEnvOverrides({taskId:b,taskTitle:g.title,apiUrl:`http://localhost:${process.env.PORT||"3000"}`,callbackUrl:i.callbackUrl??void 0}),w=await c.db.taskExecution.update({where:{id:i.id},data:{status:"RUNNING",endedAt:null}});await c.db.task.update({where:{id:b},data:{status:"IN_PROGRESS"}}),(0,d.revalidatePath)("/workspaces");let x=await (0,h.readConfigValue)("onboarding.username",""),y=u.buildSpawnArgs({taskId:b,prompt:"",cwd:k,resumeSessionId:e,profileArgs:[...n,...x?["--append-system-prompt",`The user's name is ${x}.`]:[]],profileEnvVars:p,envOverrides:v}),z=/no conversation found with session id|unknown session|session .* not found/i;return(0,f.createSession)(b,y.command,y.args,k,()=>{},async d=>{await s(b,d);let f=await c.db.taskExecution.findUnique({where:{id:w.id}});if(f?.status!=="RUNNING")return;let{getSession:h}=await a.A(93322),j=h(b),k=j?.getBuffer()??"";if(0!==d&&z.test(k)){q.info("Session resume failed — retrying with fresh execution",{taskId:b,previousSessionId:e}),await c.db.taskExecution.update({where:{id:w.id},data:{status:"FAILED",endedAt:new Date}}).catch(()=>{});try{await C(b,g.title)}catch(a){q.error("Fresh execution retry also failed",a,{taskId:b})}return}await c.db.taskExecution.update({where:{id:w.id},data:{status:0===d?"COMPLETED":"FAILED",endedAt:new Date}}).catch(()=>{});let l=i.worktreePath||g.project.localPath,{captureExecutionSummary:m}=await a.A(528814);await m(w.id,b,d,k,l);let{dispatchTaskCompletionEvent:n}=await a.A(414961);await n({taskId:b,taskTitle:g.title,status:0===d?"COMPLETED":"FAILED",executionId:w.id,workspaceId:g.project.workspaceId}),0===d&&await c.db.task.update({where:{id:b},data:{status:"IN_REVIEW"}}).catch(()=>{})},y.env,void 0,1e3*r),{executionId:w.id,worktreePath:i.worktreePath??j??null}}async function B(b){let e=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(!e)throw Error("Task not found");if(!e.project?.localPath)throw Error("Project has no local path configured");let g=await c.db.taskExecution.findFirst({where:{taskId:b},orderBy:{createdAt:"desc"}}),{destroySession:i}=await a.A(93322);i(b),await c.db.taskExecution.updateMany({where:{taskId:b,status:"RUNNING"},data:{status:"FAILED",endedAt:new Date}});let j=g?.worktreePath??e.project.localPath,k=e.subPath?(0,o.join)(j,e.subPath):j,m=await c.db.cliProfile.findFirst({where:{isDefault:!0}});if(!m)throw Error("No default CLI profile found — run seed first");let n=t(m.baseArgs,"baseArgs"),p=t(m.envVars,"envVars"),q=await (0,h.readConfigValue)("terminal.idleTimeoutSec",180),{adapter:r,provider:u}=await l("terminal"),v=r.buildEnvOverrides({taskId:b,taskTitle:e.title,apiUrl:`http://localhost:${process.env.PORT||"3000"}`}),w=await c.db.taskExecution.create({data:{taskId:b,agent:u.agentFieldValue,status:"RUNNING",startedAt:new Date,worktreePath:g?.worktreePath??null,worktreeBranch:g?.worktreeBranch??null}});await c.db.task.update({where:{id:b},data:{status:"IN_PROGRESS"}}),(0,d.revalidatePath)("/workspaces");let x=await (0,h.readConfigValue)("onboarding.username",""),y=r.buildSpawnArgs({taskId:b,prompt:"",cwd:k,continueLatest:!0,profileArgs:[...n,...x?["--append-system-prompt",`The user's name is ${x}.`]:[]],profileEnvVars:p,envOverrides:v});return(0,f.createSession)(b,y.command,y.args,k,()=>{},async d=>{await s(b,d);let f=await c.db.taskExecution.findUnique({where:{id:w.id}});if(f?.status!=="RUNNING")return;let{getSession:h}=await a.A(93322),i=h(b),j=i?.getBuffer()??"";await c.db.taskExecution.update({where:{id:w.id},data:{status:0===d?"COMPLETED":"FAILED",endedAt:new Date}}).catch(()=>{});let k=g?.worktreePath||e.project.localPath,{captureExecutionSummary:l}=await a.A(528814);await l(w.id,b,d,j,k);let{dispatchTaskCompletionEvent:m}=await a.A(414961);await m({taskId:b,taskTitle:e.title,status:0===d?"COMPLETED":"FAILED",executionId:w.id,workspaceId:e.project.workspaceId}),0===d&&await c.db.task.update({where:{id:b},data:{status:"IN_REVIEW"}}).catch(()=>{})},y.env,void 0,1e3*q),{executionId:w.id,worktreePath:g?.worktreePath??j??null}}async function C(b,g,i,j){let k,p,r=await c.db.task.findUnique({where:{id:b},include:{project:!0}});if(!r)throw Error("Task not found");if(!r.project?.localPath)throw Error("Project has no local path configured");let u=await (0,h.readConfigValue)("system.maxConcurrentExecutions",20);if(await c.db.taskExecution.count({where:{status:"RUNNING"}})>=u)throw Error(`已达并发上限(${u}),请等待其他任务完成后再启动`);let v=await c.db.cliProfile.findFirst({where:{isDefault:!0}});if(!v)throw Error("No default CLI profile found — run seed first");let w=t(v.baseArgs,"baseArgs"),x=t(v.envVars,"envVars"),y=await (0,h.readConfigValue)("terminal.idleTimeoutSec",180),{adapter:z,provider:A,model:B}=await l("terminal");await c.db.taskExecution.updateMany({where:{taskId:b,status:"RUNNING"},data:{status:"FAILED",endedAt:new Date}}),"IN_PROGRESS"!==r.status&&(await c.db.task.update({where:{id:b},data:{status:"IN_PROGRESS"}}),(0,d.revalidatePath)("/workspaces"));let C=await c.db.taskMessage.findMany({where:{taskId:b},orderBy:{createdAt:"desc"},take:10}),D=[`Task: ${r.title}`,r.description?`Description: ${r.description}`:"",C.length>0?`Recent conversation:
|
|
2
|
-
${C.reverse().map(a=>`${a.role}: ${a.content}`).join("\n")}`:"",g.trim()?`User message: ${g}`:""].filter(Boolean).join("\n\n"),E=i??r.promptId;if(E){let a=await c.db.agentPrompt.findUnique({where:{id:E}});a?.content&&(p=await (0,m.mkdtemp)((0,o.join)((0,n.tmpdir)(),"tower-pty-")),k=(0,o.join)(p,"instructions.md"),await (0,m.writeFile)(k,a.content,"utf-8"))}let F=null,G=null;if(r.baseBranch&&r.project.localPath){let{worktreePath:a,worktreeBranch:c}=await (0,e.createWorktree)(r.project.localPath,b,r.baseBranch);F=a,G=c}let H=F??r.project.localPath,I=r.subPath?(0,o.join)(H,r.subPath):H,J=await c.db.taskExecution.create({data:{taskId:b,agent:A.agentFieldValue,status:"RUNNING",startedAt:new Date,worktreePath:F??null,worktreeBranch:G??null,callbackUrl:j??null}});if(r.project.localPath)try{let b,{execFileSync:d}=await a.A(144264);(b=F&&r.baseBranch?d("git",["merge-base",r.baseBranch,"HEAD"],{cwd:F,encoding:"utf-8",timeout:5e3}).trim():d("git",["rev-parse","HEAD"],{cwd:r.project.localPath,encoding:"utf-8",timeout:5e3}).trim())&&await c.db.taskExecution.update({where:{id:J.id},data:{forkCommit:b}})}catch{}let K="";if(k){let{readFile:b}=await a.A(260815);K+=await b(k,"utf-8")}let L=await (0,h.readConfigValue)("onboarding.username","");L&&(K+=(K?"\n":"")+`The user's name is ${L}.`);let M=z.buildSpawnArgs({taskId:b,prompt:D,cwd:I,profileArgs:[...w,...K?["--append-system-prompt",K]:[],...B?["--model",B]:[]],profileEnvVars:x,envOverrides:z.buildEnvOverrides({taskId:b,taskTitle:r.title,apiUrl:`http://localhost:${process.env.PORT||"3000"}`,callbackUrl:j??void 0})});return(0,f.createSession)(b,M.command,M.args,I,()=>{},async d=>{await s(b,d);let e=await c.db.taskExecution.findUnique({where:{id:J.id}});if(e?.status!=="RUNNING")return;let{getSession:f}=await a.A(93322),g=f(b),h=g?.getBuffer()??"";await c.db.taskExecution.update({where:{id:J.id},data:{status:0===d?"COMPLETED":"FAILED",endedAt:new Date}}).catch(a=>{q.error("Failed to update execution status",a)});let i=F||r.project.localPath,{captureExecutionSummary:j}=await a.A(528814);await j(J.id,b,d,h,i);let{dispatchTaskCompletionEvent:k}=await a.A(414961);await k({taskId:b,taskTitle:r.title,status:0===d?"COMPLETED":"FAILED",executionId:J.id,workspaceId:r.project.workspaceId}),0===d&&await c.db.task.update({where:{id:b},data:{status:"IN_REVIEW"}}).catch(a=>{q.error("Failed to update task status",a)}),p&&await (0,m.rm)(p,{recursive:!0,force:!0}).catch(()=>{})},M.env,void 0,1e3*y),{executionId:J.id,worktreePath:F??H??null}}async function D(){return(await c.db.taskExecution.findMany({where:{status:"RUNNING"},orderBy:{startedAt:"asc"},include:{task:{include:{project:{include:{workspace:!0}}}}}})).map(a=>({executionId:a.id,taskId:a.taskId,taskTitle:a.task.title,projectId:a.task.project.id,projectName:a.task.project.name,projectAlias:a.task.project.alias,projectLocalPath:a.task.project.localPath,workspaceId:a.task.project.workspace.id,workspaceName:a.task.project.workspace.name,worktreePath:a.worktreePath,startedAt:a.startedAt?.toISOString()??null}))}(0,p.ensureServerEntryExports)([u,v,w,x,y,z,A,B,C,D]),(0,b.registerServerReference)(u,"60623c106b77e5c802c16fc14fc356d08fc2ab5b8f",null),(0,b.registerServerReference)(v,"40dc9db41cd9e67e584f1a7adb4fd456f6ecf8e681",null),(0,b.registerServerReference)(w,"78d5fe423bacd7c2d19725ee8bf41ae3f9e82e29dc",null),(0,b.registerServerReference)(x,"60e7e6b1fe4178e321a92fbee3432490858f73e9bd",null),(0,b.registerServerReference)(y,"4012c0bc23424605056e6aae4956aa7718060ca459",null),(0,b.registerServerReference)(z,"40a90c7d3374bc46c6aa4f2390ae82109f7ddeddf8",null),(0,b.registerServerReference)(A,"60ff3af7bd9fbc86b8e4acf2805e6b108b1c083d61",null),(0,b.registerServerReference)(B,"4085bdb12a7c36130ca4425f712f21e4c411b89a51",null),(0,b.registerServerReference)(C,"7886ea6863d0931282634b87c57a3551c22c488c3b",null),(0,b.registerServerReference)(D,"007d2549a6289f05294d74bc2e40423a85bc1f2d56",null),a.s(["continueLatestPtyExecution",0,B,"getActiveExecutionsAcrossWorkspaces",0,D,"getTaskExecutions",0,z,"getTaskMessages",0,v,"resumePtyExecution",0,A,"sendTaskMessage",0,u,"startPtyExecution",0,C,"startTaskExecution",0,w,"stopPtyExecution",0,y,"stopTaskExecution",0,x],200082)}];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=tower_src_actions_agent-actions_ts_0j.e1tn._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[623296,a=>{"use strict";a.s([],552262),a.i(552262),a.i(611866),a.i(211917),a.i(369115),a.i(1423),a.i(54891),a.i(835933),a.i(45706),a.i(131969),a.i(855259);var b=a.i(441388);let c=(0,b.createServerReference)("60fab34ee7d5298f115f54b7db7a8a2dc0637122f4",b.callServer,void 0,b.findSourceMapURL,"revealInFinder");a.s(["revealInFinder",0,c],623296)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=tower_src_actions_file-actions_ts_0424lna._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[917691,a=>{"use strict";var b=a.i(348273),c=a.i(399424),d=a.i(282980),e=a.i(441388);let f=(0,e.createServerReference)("007d2549a6289f05294d74bc2e40423a85bc1f2d56",e.callServer,void 0,e.findSourceMapURL,"getActiveExecutionsAcrossWorkspaces");var g=a.i(713265);let h=[{id:"1x1",label:"1×1",cols:1,rows:1,minHeight:"480px",desc:"Focus mode"},{id:"2x1",label:"2×1",cols:2,rows:1,minHeight:"480px",desc:"Side by side"},{id:"3x2",label:"3×2",cols:3,rows:2,minHeight:"300px",desc:"Default"},{id:"2x2",label:"2×2",cols:2,rows:2,minHeight:"300px",desc:"Balanced"},{id:"4x2",label:"4×2",cols:4,rows:2,minHeight:"240px",desc:"Wide monitor"},{id:"3x3",label:"3×3",cols:3,rows:3,minHeight:"240px",desc:"Max overview"}];var i=a.i(344838),j=a.i(422917),k=a.i(580283),l=a.i(173250);let m=(0,l.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]);var n=a.i(432174);function o({cols:a,rows:c,active:d}){let e=Array.from({length:a*c});return(0,b.jsx)("div",{className:`grid gap-[1px] w-7 h-5 p-[3px] rounded-sm border shrink-0 ${d?"border-primary bg-primary/10":"border-border bg-muted"}`,style:{gridTemplateColumns:`repeat(${a}, 1fr)`,gridTemplateRows:`repeat(${c}, 1fr)`},children:e.map((a,c)=>(0,b.jsx)("div",{className:`rounded-[1px] min-w-0 min-h-0 ${d?"bg-primary":"bg-muted-foreground/40"}`},c))})}let p="custom";function q({value:a,customValue:e,onChange:f}){let{t:g}=(0,d.useI18n)(),[i,k]=(0,c.useState)(!1),l=(0,c.useRef)(null),m=a===p,r=m?null:h.find(b=>b.id===a)??h[2],[s,t]=(0,c.useState)(e?.cols??2),[u,v]=(0,c.useState)(e?.rows??2),[w,x]=(0,c.useState)({minCols:1,maxCols:5,minRows:1,maxRows:5});(0,c.useEffect)(()=>{(0,n.getConfigValues)(["missions.grid.minCols","missions.grid.maxCols","missions.grid.minRows","missions.grid.maxRows"]).then(a=>{x({minCols:a["missions.grid.minCols"]??1,maxCols:a["missions.grid.maxCols"]??5,minRows:a["missions.grid.minRows"]??1,maxRows:a["missions.grid.maxRows"]??5})})},[]),(0,c.useEffect)(()=>{e&&(t(e.cols),v(e.rows))},[e?.cols,e?.rows]),(0,c.useEffect)(()=>{if(i)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a);function a(a){l.current&&!l.current.contains(a.target)&&k(!1)}},[i]);let y=(a,b,c)=>Math.max(b,Math.min(c,a)),z=m?s:r?.cols??2,A=m?u:r?.rows??2,B=m?`${s}\xd7${u}`:r?.label??"";return(0,b.jsxs)("div",{ref:l,className:"relative",children:[(0,b.jsxs)(j.Button,{variant:"outline",onClick:()=>k(a=>!a),className:"gap-2",children:[(0,b.jsx)(o,{cols:z,rows:A,active:!1}),(0,b.jsx)("span",{children:B}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:"▼"})]}),i&&(0,b.jsxs)("div",{className:"absolute right-0 z-50 mt-1 w-72 rounded-lg border border-border bg-popover shadow-xl p-3",children:[(0,b.jsx)("h5",{className:"text-sm font-semibold text-foreground mb-3",children:g("missions.gridPreset")}),(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[h.map(c=>{let d=c.id===a;return(0,b.jsxs)("button",{onClick:()=>{f(c.id),k(!1)},className:`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-colors ${d?"bg-primary/10":"hover:bg-accent"}`,children:[(0,b.jsx)(o,{cols:c.cols,rows:c.rows,active:d}),(0,b.jsx)("span",{className:`text-sm font-medium flex-1 text-left ${d?"text-primary":"text-foreground"}`,children:c.label}),(0,b.jsx)("span",{className:`text-xs ${d?"text-primary/60":"text-muted-foreground"}`,children:c.desc})]},c.id)}),(0,b.jsxs)("div",{className:"mt-1 border-t border-border pt-2",children:[(0,b.jsxs)("button",{onClick:()=>{m||f(p,{cols:s,rows:u})},className:`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-colors w-full ${m?"bg-primary/10":"hover:bg-accent"}`,children:[(0,b.jsx)(o,{cols:s,rows:u,active:m}),(0,b.jsx)("span",{className:`text-sm font-medium flex-1 text-left ${m?"text-primary":"text-foreground"}`,children:g("missions.gridCustom")}),(0,b.jsxs)("span",{className:`text-xs ${m?"text-primary/60":"text-muted-foreground"}`,children:[s,"×",u]})]}),m&&(0,b.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:g("missions.gridCols")}),(0,b.jsx)("input",{type:"number",min:w.minCols,max:w.maxCols,value:s,onChange:a=>{let b;t(b=y(Number(a.target.value),w.minCols,w.maxCols)),f(p,{cols:b,rows:u})},className:"h-7 w-14 rounded-md border border-border bg-background px-2 text-sm text-center"})]}),(0,b.jsx)("span",{className:"text-muted-foreground",children:"×"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:g("missions.gridRows")}),(0,b.jsx)("input",{type:"number",min:w.minRows,max:w.maxRows,value:u,onChange:a=>{let b;v(b=y(Number(a.target.value),w.minRows,w.maxRows)),f(p,{cols:s,rows:b})},className:"h-7 w-14 rounded-md border border-border bg-background px-2 text-sm text-center"})]})]})]})]})]})]})}var r=a.i(830383),s=a.i(223982),t=a.i(496752),u=a.i(851033),v=a.i(971605);let w=(0,l.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),x=(0,l.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var y=a.i(17787);let z=(0,l.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);var A=a.i(348160),B=a.i(481030),C=a.i(353252),D=a.i(511153);let E=(0,t.default)(async()=>{},{loadableGenerated:{modules:[7468]},ssr:!1,loading:()=>(0,b.jsx)("div",{className:"h-full w-full bg-[#0a0a0a] animate-pulse"})});function F({execution:a,isRemoving:e,removeReason:f,onStop:g,onSessionEnd:h}){let{t:i}=(0,d.useI18n)(),k=(0,u.useRouter)(),{attributes:l,listeners:m,setNodeRef:n,transform:o,transition:p}=(0,s.useSortable)({id:a.executionId}),q={transform:v.CSS.Transform.toString(o),transition:p,opacity:+!e},[r,t]=(0,c.useState)(()=>a.startedAt?Math.floor((Date.now()-new Date(a.startedAt).getTime())/1e3):0);(0,c.useEffect)(()=>{if(e)return;let b=setInterval(()=>{t(a.startedAt?Math.floor((Date.now()-new Date(a.startedAt).getTime())/1e3):0)},1e3);return()=>clearInterval(b)},[a.startedAt,e]);let G=Math.floor(r/60),H=`${G}m ${r%60}s`;async function I(){if(a.projectLocalPath)try{await (0,C.openInTerminal)(a.projectLocalPath)}catch{D.toast.error(i("preview.terminalError"))}}return(0,b.jsxs)("div",{ref:n,style:q,className:"border border-border rounded-lg overflow-hidden flex flex-col transition-opacity duration-300",...l,children:[(0,b.jsxs)("div",{className:"h-10 px-3 flex items-center gap-1 border-b border-border bg-card shrink-0",children:[(0,b.jsx)("button",{...m,"aria-label":i("missions.dragHandle"),"aria-roledescription":"sortable",className:"cursor-grab text-muted-foreground hover:text-foreground mr-1",children:(0,b.jsx)(w,{className:"h-3.5 w-3.5"})}),(0,b.jsxs)("span",{className:"text-[11px] text-muted-foreground truncate flex-1",children:[a.workspaceName," ›"," ",a.projectAlias||a.projectName," ›"," ",(0,b.jsx)("span",{className:"text-foreground font-semibold",children:a.taskTitle})]}),e?(0,b.jsx)(B.Badge,{variant:"outline",className:"text-[11px] text-muted-foreground bg-muted ml-1 shrink-0",children:"stopped"===f?i("missions.statusStopped"):i("missions.statusCompleted")}):(0,b.jsx)(B.Badge,{variant:"outline",className:"text-[11px] text-primary border-primary/30 bg-primary/10 ml-1 shrink-0",children:i("missions.statusRunning")}),(0,b.jsx)("span",{className:"text-[11px] text-muted-foreground ml-1 shrink-0",children:H}),a.projectLocalPath&&(0,b.jsxs)(A.Tooltip,{children:[(0,b.jsx)(A.TooltipTrigger,{render:(0,b.jsx)(j.Button,{variant:"ghost",size:"icon",className:"ml-1 shrink-0 text-muted-foreground",onClick:I}),children:(0,b.jsx)(z,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(A.TooltipContent,{children:i("missions.openInTerminal")})]}),(0,b.jsxs)(A.Tooltip,{children:[(0,b.jsx)(A.TooltipTrigger,{render:(0,b.jsx)(j.Button,{variant:"ghost",size:"icon",className:"ml-1 shrink-0 text-muted-foreground",onClick:()=>k.push(`/workspaces/${a.workspaceId}/tasks/${a.taskId}`)}),children:(0,b.jsx)(x,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(A.TooltipContent,{children:i("missions.openFullView")})]}),(0,b.jsxs)(A.Tooltip,{children:[(0,b.jsx)(A.TooltipTrigger,{render:(0,b.jsx)(j.Button,{variant:"destructive",size:"icon",className:"ml-1 shrink-0",onClick:()=>g(a.taskId),disabled:e}),children:(0,b.jsx)(y.X,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(A.TooltipContent,{children:i("missions.stopTask")})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,b.jsx)(E,{taskId:a.taskId,worktreePath:a.worktreePath??a.projectLocalPath,onSessionEnd:b=>h?.(a.taskId,b),useCanvasRenderer:!0})})]})}let G=(0,e.createServerReference)("40275ae914558cbf323b3f33269e46948537c6e7c1",e.callServer,void 0,e.findSourceMapURL,"getWorkspacesWithRecentTasks"),H=(0,e.createServerReference)("40135613f92147bd38bf30615005c52f9aeadf11d3",e.callServer,void 0,e.findSourceMapURL,"getProjectTasks");var I=a.i(531084),J=a.i(877929),K=a.i(755811);let L=(0,l.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);var M=a.i(659560),N=a.i(55213);let O={TODO:"TODO",IN_PROGRESS:"Running",IN_REVIEW:"Review"},P={LOW:"Low",MEDIUM:"Med",HIGH:"High",CRITICAL:"Crit"};function Q({status:a}){return(0,b.jsx)("span",{className:`text-[10px] px-1.5 py-0.5 rounded font-medium ${{TODO:"bg-slate-100 text-slate-600 dark:bg-slate-800 dark:text-slate-400",IN_PROGRESS:"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",IN_REVIEW:"bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400"}[a]??"bg-slate-100 text-slate-600"}`,children:O[a]??a})}function R({task:a,isRunning:c,launchingId:d,onLaunchNew:e,onResume:f,t:g}){let h=a.executions?.[0]?.sessionId,i=d===a.id;return(0,b.jsxs)("div",{className:"group/task flex items-center gap-2 px-3 py-1.5 hover:bg-accent/50 cursor-default",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("p",{className:`text-sm truncate ${c?"italic text-muted-foreground":""}`,children:a.title}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mt-0.5",children:[(0,b.jsx)(Q,{status:a.status}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:P[a.priority]??a.priority})]})]}),c?(0,b.jsx)("span",{className:"text-[10px] italic text-muted-foreground shrink-0",children:g("missions.alreadyMonitored")}):(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover/task:opacity-100 transition-opacity shrink-0",children:[h&&(0,b.jsxs)(j.Button,{variant:"outline",className:"h-6 px-2 text-xs",onClick:()=>f(a.id,h),disabled:i,title:g("missions.continueSession"),children:[(0,b.jsx)(M.RotateCcw,{className:"h-3 w-3 mr-1"}),g("missions.continueLabel")]}),(0,b.jsxs)(j.Button,{variant:"outline",className:"h-6 px-2 text-xs",onClick:()=>e(a.id),disabled:i,title:g("missions.launchNew"),children:[(0,b.jsx)(L,{className:"h-3 w-3 mr-1"}),i?"...":g("missions.launchNewLabel")]})]})]})}function S({open:a,onOpenChange:e,onLaunchNew:f,onResume:g,runningTaskIds:h,launchingId:j}){let{t:k}=(0,d.useI18n)(),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)([]);(0,c.useEffect)(()=>{a&&(o(""),q(""),s([]),G(100).then(m).catch(()=>D.toast.error(k("missions.error.launchFailed"))))},[a,k]),(0,c.useEffect)(()=>{p?H(p).then(a=>{s(a.filter(a=>"TODO"===a.status||"IN_PROGRESS"===a.status||"IN_REVIEW"===a.status))}).catch(()=>D.toast.error(k("missions.error.launchFailed"))):s([])},[p,k]);let t=l.find(a=>a.id===n),u=t?.projects??[];return(0,b.jsx)(K.Dialog,{open:a,onOpenChange:e,children:(0,b.jsxs)(K.DialogContent,{className:"max-w-lg max-h-[70vh] flex flex-col",children:[(0,b.jsx)(K.DialogHeader,{children:(0,b.jsx)(K.DialogTitle,{children:k("missions.fullPickerTitle")})}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,b.jsxs)(i.Select,{value:n,onValueChange:a=>{o(a??""),q("")},children:[(0,b.jsx)(i.SelectTrigger,{id:"full-picker-ws",className:"w-48 h-8",children:(0,b.jsx)("span",{className:"truncate",children:l.find(a=>a.id===n)?.name??k("missions.launcher.selectWorkspace")})}),(0,b.jsx)(i.SelectContent,{children:l.map(a=>(0,b.jsx)(i.SelectItem,{value:a.id,children:a.name},a.id))})]}),(0,b.jsxs)(i.Select,{value:p,onValueChange:a=>q(a??""),disabled:!n,children:[(0,b.jsx)(i.SelectTrigger,{id:"full-picker-proj",className:"w-48 h-8",children:(0,b.jsx)("span",{className:"truncate",children:u.find(a=>a.id===p)?.name??k("missions.launcher.selectProject")})}),(0,b.jsx)(i.SelectContent,{children:u.map(a=>(0,b.jsx)(i.SelectItem,{value:a.id,children:a.alias??a.name},a.id))})]})]}),(0,b.jsx)(N.ScrollArea,{className:"flex-1 min-h-0 -mx-2",children:0===r.length&&p?(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center py-8",children:k("missions.launcher.noTasks")}):0===r.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center py-8",children:k("missions.fullPickerHint")}):r.map(a=>(0,b.jsx)(R,{task:a,isRunning:h.has(a.id),launchingId:j,onLaunchNew:f,onResume:g,t:k},a.id))})]})})}function T({open:a,onOpenChange:e,onLaunched:f,runningTaskIds:g=new Set,anchorRef:h}){let{t:i}=(0,d.useI18n)(),k=(0,c.useRef)(null),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null),[r,s]=(0,c.useState)(!1);(0,c.useEffect)(()=>{a&&(o(!0),G(3).then(m).catch(()=>D.toast.error(i("missions.error.launchFailed"))).finally(()=>o(!1)))},[a,i]),(0,c.useEffect)(()=>{if(a)return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b);function b(a){let b=a.target;if(k.current&&!k.current.contains(b)){if(h?.current&&h.current.contains(b))return;e(!1)}}},[a,e,h]);let t=(0,c.useCallback)(async a=>{try{q(a),await (0,I.startPtyExecution)(a,""),f(a),e(!1),s(!1)}catch{D.toast.error(i("missions.error.launchFailed"))}finally{q(null)}},[f,e,i]),u=(0,c.useCallback)(async(a,b)=>{try{q(a),await (0,J.resumePtyExecution)(a,b),f(a),e(!1),s(!1)}catch{D.toast.error(i("missions.error.launchFailed"))}finally{q(null)}},[f,e,i]),v=(0,c.useCallback)(()=>{e(!1),s(!0)},[e]);return a||r?(0,b.jsxs)(b.Fragment,{children:[a&&(0,b.jsxs)("div",{ref:k,className:"absolute right-0 z-50 mt-1 w-96 rounded-lg border border-border bg-popover shadow-xl flex flex-col overflow-hidden",style:{maxHeight:"480px"},children:[(0,b.jsx)("div",{className:"px-3 py-2 border-b border-border shrink-0",children:(0,b.jsx)("p",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide",children:i("missions.pickerTitle")})}),(0,b.jsx)(N.ScrollArea,{className:"flex-1 min-h-0",children:n?(0,b.jsx)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:"Loading..."}):0===l.length?(0,b.jsx)("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:i("missions.noAvailableTasks")}):l.map(a=>(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"sticky top-0 z-10 px-3 py-1.5 bg-popover border-b border-border/50",children:(0,b.jsx)("span",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:a.name})}),a.projects.map(a=>0===a._count.tasks?null:(0,b.jsxs)("div",{className:"mb-1",children:[(0,b.jsx)("div",{className:"px-3 pt-2 pb-0.5",children:(0,b.jsx)("span",{className:"text-xs font-medium text-foreground",children:a.alias??a.name})}),a.tasks.map(a=>(0,b.jsx)(R,{task:a,isRunning:g.has(a.id),launchingId:p,onLaunchNew:t,onResume:u,t:i},a.id))]},a.id))]},a.id))}),(0,b.jsx)("div",{className:"shrink-0 border-t border-border",children:(0,b.jsx)(j.Button,{variant:"ghost",className:"w-full rounded-none text-xs text-primary font-medium",onClick:v,children:i("missions.showMoreTasks")})})]}),(0,b.jsx)(S,{open:r,onOpenChange:s,onLaunchNew:t,onResume:u,runningTaskIds:g,launchingId:p})]}):null}a.s(["MissionsClient",0,function({initialExecutions:a}){let{t:e}=(0,d.useI18n)(),[l,n]=(0,c.useState)(a),[o,p]=(0,c.useState)(()=>"3x2"),[t,u]=(0,c.useState)(()=>({cols:2,rows:2})),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(""),z=(0,c.useRef)(null),[A,B]=(0,c.useState)(new Map),C=(0,c.useRef)(A);(0,c.useEffect)(()=>{C.current=A},[A]);let E=(0,c.useRef)(new Map),G=h.find(a=>a.id===o)??h[2],H="custom"===o?t.cols:G.cols,I="custom"===o?t.rows:G.rows,J=(0,c.useRef)(null),[K,L]=(0,c.useState)("480px");(0,c.useEffect)(()=>{let a=J.current;if(!a)return;let b=()=>{let b=(a.clientHeight-32-16*(I-1))/I;L(`${Math.max(b,200)}px`)};b();let c=new ResizeObserver(b);return c.observe(a),()=>c.disconnect()},[I]);let M=(0,c.useCallback)((a,b)=>{a&&(p(a),localStorage.setItem("missions-grid-preset",a),"custom"===a&&b&&(u(b),localStorage.setItem("missions-grid-custom",JSON.stringify(b))))},[]),N=(0,r.useSensors)((0,r.useSensor)(r.PointerSensor,{activationConstraint:{distance:8}})),O=(0,c.useCallback)(a=>{let{active:b,over:c}=a;c&&b.id!==c.id&&n(a=>{let d=a.findIndex(a=>a.executionId===b.id),e=a.findIndex(a=>a.executionId===c.id);return(0,s.arrayMove)(a,d,e)})},[]),P=(0,c.useCallback)((a,b)=>{if(C.current.has(a))return;B(c=>new Map([...c,[a,b]]));let c=setTimeout(()=>{n(b=>b.filter(b=>b.executionId!==a)),B(b=>{let c=new Map(b);return c.delete(a),c}),E.current.delete(a)},500);E.current.set(a,c)},[]);(0,c.useEffect)(()=>{let a=setInterval(async()=>{try{let a=await f();n(b=>{let c=C.current,{merged:d,goneIds:e}=function({prev:a,fresh:b,removingIds:c}){let d=new Set(b.map(a=>a.executionId)),e=[];a.forEach(a=>{d.has(a.executionId)||c.has(a.executionId)||e.push(a.executionId)});let f=a.filter(a=>d.has(a.executionId)||c.has(a.executionId)),g=new Set(a.map(a=>a.executionId));return{merged:[...f,...b.filter(a=>!g.has(a.executionId))],goneIds:e}}({prev:b,fresh:a,removingIds:new Set(c.keys())});return e.forEach(a=>P(a,"completed")),d})}catch{}},4e3);return()=>clearInterval(a)},[P]),(0,c.useEffect)(()=>{let a=E.current;return()=>{a.forEach(a=>clearTimeout(a))}},[]);let Q=(0,c.useCallback)(async a=>{try{await (0,g.stopPtyExecution)(a),n(b=>{let c=b.find(b=>b.taskId===a);return c&&P(c.executionId,"stopped"),b})}catch{D.toast.error(e("missions.error.stopFailed"))}},[P,e]),R=(0,c.useCallback)((a,b)=>{n(b=>{let c=b.find(b=>b.taskId===a);return c&&P(c.executionId,"completed"),b})},[P]),S=(0,c.useCallback)(a=>{f().then(a=>{n(b=>{let c=new Set(b.map(a=>a.executionId));return[...b,...a.filter(a=>!c.has(a.executionId))]})}).catch(()=>{})},[]),U=Array.from(new Map(l.map(a=>[a.workspaceId,a.workspaceName])).entries()).map(([a,b])=>({id:a,name:b})),V=x?l.filter(a=>a.workspaceId===x):l,W=new Set(l.map(a=>a.taskId));return(0,b.jsxs)("div",{className:"flex h-full flex-col",children:[(0,b.jsxs)("div",{className:"header-sm shrink-0 px-4 flex items-center gap-3",children:[(0,b.jsx)("h1",{className:"text-base font-semibold",children:e("missions.pageTitle")}),(0,b.jsxs)(i.Select,{value:x,onValueChange:a=>y(a??""),children:[(0,b.jsx)(i.SelectTrigger,{className:"w-36 h-8",children:(0,b.jsx)("span",{className:"truncate",children:x?U.find(a=>a.id===x)?.name??e("missions.filterAll"):e("missions.filterAll")})}),(0,b.jsxs)(i.SelectContent,{children:[(0,b.jsx)(i.SelectItem,{value:"",children:e("missions.filterAll")}),U.map(a=>(0,b.jsx)(i.SelectItem,{value:a.id,children:a.name},a.id))]})]}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsx)(q,{value:o,customValue:t,onChange:M}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(j.Button,{ref:z,onClick:()=>w(a=>!a),children:e("missions.launchTask")}),(0,b.jsx)(T,{open:v,onOpenChange:w,onLaunched:S,runningTaskIds:W,anchorRef:z})]})]}),(0,b.jsx)("div",{ref:J,className:"flex-1 overflow-auto min-h-0 p-4",children:0===V.length&&0===A.size?(0,b.jsx)(k.EmptyState,{icon:m,title:e("missions.emptyTitle"),description:e("missions.emptyDesc"),className:"h-full",action:(0,b.jsx)(j.Button,{onClick:()=>w(!0),children:e("missions.launchTask")})}):(0,b.jsx)(r.DndContext,{id:"missions-dnd",sensors:N,collisionDetection:r.closestCenter,onDragEnd:O,children:(0,b.jsx)(s.SortableContext,{items:V.map(a=>a.executionId),strategy:s.rectSortingStrategy,children:(0,b.jsx)("div",{className:"grid gap-4",style:{gridTemplateColumns:`repeat(${H}, 1fr)`,gridAutoRows:K},children:V.map(a=>(0,b.jsx)(F,{execution:a,isRemoving:A.has(a.executionId),removeReason:A.get(a.executionId),onStop:Q,onSessionEnd:R},a.executionId))})})})})]})}],917691)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=tower_src_app_missions_missions-client_tsx_0a9vjyr._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[585664,a=>{"use strict";var b=a.i(348273),c=a.i(399424),d=a.i(851033),e=a.i(706193),f=a.i(422917),g=a.i(524513),h=a.i(560874),i=a.i(707466);function j({className:a,size:c="default",...d}){return(0,b.jsx)("div",{"data-slot":"card","data-size":c,className:(0,i.cn)("group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",a),...d})}function k({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,i.cn)("px-4 group-data-[size=sm]/card:px-3",a),...c})}var l=a.i(348754),m=a.i(235022),n=a.i(17787),o=a.i(737316),p=a.i(136913),q=a.i(526116),r=a.i(282980);function s({adapterType:a,adapterLabel:d,onResult:e}){let[g,h]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),{t:v}=(0,r.useI18n)();async function w(){if(!g){h(!0),u(null);try{let b=await fetch("/api/adapters/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adapterType:a})}),c=await b.json();u(c),e?.(c)}catch{let a={ok:!1,checks:[{name:"network_error",passed:!1,message:"Network request failed"}]};u(a),e?.(a)}finally{h(!1)}}}return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"rounded-lg bg-emerald-100 dark:bg-emerald-900/30 p-2",children:(0,b.jsx)(o.Terminal,{className:"h-5 w-5 text-emerald-600 dark:text-emerald-400"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"font-semibold",children:v("settings.aiTools.cliVerification")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:v("settings.aiTools.cliVerificationDesc")})]})]}),(0,b.jsx)(j,{children:(0,b.jsxs)(k,{className:"p-6 space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{children:d&&(0,b.jsx)("p",{className:"font-medium",children:d})}),(0,b.jsx)(f.Button,{onClick:w,disabled:g,variant:"outline",children:g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Loader2,{className:"h-4 w-4 animate-spin mr-2"}),v("settings.aiTools.testing")]}):v("settings.aiTools.testConnection")})]}),t&&(0,b.jsxs)("div",{className:(0,i.cn)("rounded-lg border p-4 space-y-3",t.ok?"bg-green-50 border-green-200 dark:bg-green-950/20 dark:border-green-800":"bg-red-50 border-red-200 dark:bg-red-950/20 dark:border-red-800"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[t.ok?(0,b.jsx)(p.CheckCircle2,{className:"h-4 w-4 text-green-600 dark:text-green-400"}):(0,b.jsx)(q.XCircle,{className:"h-4 w-4 text-red-600 dark:text-red-400"}),(0,b.jsx)("span",{className:(0,i.cn)("text-sm font-medium",t.ok?"text-green-700 dark:text-green-300":"text-red-700 dark:text-red-300"),children:v(t.ok?"settings.aiTools.testPassed":"settings.aiTools.testFailed")})]}),(0,b.jsx)("div",{className:"space-y-2",children:t.checks.map(c=>(0,b.jsxs)("div",{className:"flex items-start gap-2 text-sm",children:[c.passed?(0,b.jsx)(m.Check,{className:"h-4 w-4 text-green-500 mt-0.5 shrink-0"}):(0,b.jsx)(n.X,{className:"h-4 w-4 text-red-500 mt-0.5 shrink-0"}),(0,b.jsx)("span",{className:(0,i.cn)(c.passed?"text-green-700 dark:text-green-300":"text-red-700 dark:text-red-300"),children:c.message})]},`${a}-${c.name}`))})]})]})})]})}var t=a.i(441388);let u=(0,t.createServerReference)("40df2ebb30174c80ce20f8ebf38fad10c969c0e97f",t.callServer,void 0,t.findSourceMapURL,"completeOnboarding");var v=a.i(520237),w=a.i(173250);let x=(0,w.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);var y=a.i(280844),z=a.i(148997),A=a.i(772253),B=a.i(538186),C=a.i(167727);let D=(0,w.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),E=(0,w.default)("languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);var F=a.i(709222),G=a.i(657673);function H({step:a}){let c=[x,o.Terminal,y.GitBranch][a-1]??x,d=["Profile","Connect","Configure"][a-1]??"";return(0,b.jsxs)("div",{className:"relative h-full w-full overflow-hidden",children:[(0,b.jsx)("div",{className:"absolute inset-0 opacity-[0.07] text-white",style:{backgroundImage:"radial-gradient(circle, currentColor 1px, transparent 1px)",backgroundSize:"24px 24px"}}),(0,b.jsx)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full",style:{width:"380px",height:"380px",background:"radial-gradient(circle, oklch(0.80 0.14 75 / 0.25) 0%, oklch(0.80 0.14 75 / 0.08) 45%, transparent 70%)",animation:"ob-pulse 6s ease-in-out infinite"}}),(0,b.jsx)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-amber-400/25",style:{width:"260px",height:"260px",animation:"ob-spin 20s linear infinite"},children:(0,b.jsx)("div",{className:"absolute -top-1.5 left-1/2 -translate-x-1/2 h-3 w-3 rounded-full bg-amber-400",style:{boxShadow:"0 0 16px oklch(0.80 0.14 75 / 0.7)"}})}),(0,b.jsxs)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-amber-400/15",style:{width:"380px",height:"380px",animation:"ob-spin 30s linear infinite reverse"},children:[(0,b.jsx)("div",{className:"absolute -top-1 left-1/2 -translate-x-1/2 h-2 w-2 rounded-full bg-amber-400/70"}),(0,b.jsx)("div",{className:"absolute -bottom-1 left-1/2 -translate-x-1/2 h-1.5 w-1.5 rounded-full bg-amber-400/50"})]}),(0,b.jsx)("svg",{className:"absolute",style:{top:"18%",right:"22%",animation:"ob-float 8s ease-in-out infinite"},width:"44",height:"50",viewBox:"0 0 40 46",fill:"none",children:(0,b.jsx)("path",{d:"M20 1 L38 12 L38 34 L20 45 L2 34 L2 12 Z",stroke:"oklch(0.80 0.14 75 / 0.4)",strokeWidth:"1.5",fill:"oklch(0.80 0.14 75 / 0.06)"})}),(0,b.jsx)("svg",{className:"absolute",style:{bottom:"22%",left:"18%",animation:"ob-float 10s ease-in-out 2s infinite"},width:"32",height:"36",viewBox:"0 0 40 46",fill:"none",children:(0,b.jsx)("path",{d:"M20 1 L38 12 L38 34 L20 45 L2 34 L2 12 Z",stroke:"oklch(0.80 0.14 75 / 0.3)",strokeWidth:"1.5",fill:"oklch(0.80 0.14 75 / 0.05)"})}),(0,b.jsx)("div",{className:"absolute h-3.5 w-3.5 rounded-full bg-amber-400/40",style:{top:"30%",left:"28%",animation:"ob-float 7s ease-in-out 1s infinite"}}),(0,b.jsx)("div",{className:"absolute h-2.5 w-2.5 rounded-full bg-amber-400/30",style:{top:"65%",right:"30%",animation:"ob-float 9s ease-in-out 3s infinite"}}),(0,b.jsx)("div",{className:"absolute h-2 w-2 rounded-full bg-amber-400/20",style:{top:"45%",right:"15%",animation:"ob-float 6s ease-in-out 0.5s infinite"}}),(0,b.jsxs)("svg",{className:"absolute inset-0 h-full w-full text-white opacity-[0.12]",children:[(0,b.jsx)("line",{x1:"30%",y1:"25%",x2:"70%",y2:"45%",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"4 6",style:{animation:"ob-dash 12s linear infinite"}}),(0,b.jsx)("line",{x1:"65%",y1:"30%",x2:"35%",y2:"70%",stroke:"currentColor",strokeWidth:"1",strokeDasharray:"4 6",style:{animation:"ob-dash 15s linear infinite reverse"}})]}),(0,b.jsx)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 flex items-center justify-center",children:(0,b.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl border border-amber-400/35 bg-amber-500/10 backdrop-blur-sm transition-all duration-700",style:{boxShadow:"0 0 50px oklch(0.80 0.14 75 / 0.2)"},children:(0,b.jsx)(c,{className:"h-7 w-7 text-amber-400"})})}),(0,b.jsx)("div",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 translate-y-12 text-center",children:(0,b.jsx)("p",{className:"text-[11px] font-medium tracking-widest uppercase text-amber-400/60",children:d})})]})}let I={host:"",ownerMatch:"*",localPathTemplate:""};a.s(["default",0,function(){let a,i,j,k=(0,d.useRouter)(),{t:l,locale:n,setLocale:p}=(0,r.useI18n)(),{theme:q,setTheme:t}=(0,e.useTheme)(),[w,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(1),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(null),[Q,R]=(0,c.useState)([]),[S,T]=(0,c.useState)({...I}),[U,V]=(0,c.useState)(!0),[W,X]=(0,c.useState)(0),[Y,Z]=(0,c.useState)(!1),[$,_]=(0,c.useState)(!1);(0,c.useEffect)(()=>J(!0),[]);let aa=[{value:"light",label:(0,b.jsx)(B.Sun,{className:"h-4 w-4"})},{value:"dark",label:(0,b.jsx)(C.Moon,{className:"h-4 w-4"})},{value:"system",label:(0,b.jsx)(D,{className:"h-4 w-4"})}];function ab(){L(a=>a+1)}function ac(){L(a=>Math.max(1,a-1))}async function ad(){_(!0);try{Q.length>0&&await (0,v.setConfigValue)("git.pathMappingRules",Q),await u(M.trim()),k.replace("/workspaces")}catch{_(!1)}}let ae=[{icon:x,label:l("onboarding.step1.title")},{icon:o.Terminal,label:l("onboarding.step2.title")},{icon:y.GitBranch,label:l("onboarding.step3.title")}];return(0,b.jsxs)("div",{className:"flex h-screen bg-background",children:[(0,b.jsx)("div",{className:"hidden xl:block xl:w-3/5 border-r border-border/50 bg-[oklch(0.13_0.006_260)]",children:(0,b.jsx)(H,{step:K})}),(0,b.jsx)("div",{className:"flex w-full flex-col items-center px-8 pt-[10vh] pb-10 xl:w-2/5 xl:px-16 overflow-y-auto",children:(0,b.jsxs)("div",{className:"w-full max-w-lg space-y-6",children:[(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.jsx)("img",{src:"/logo.png",alt:"Tower",className:"h-8 w-8 rounded-lg"}),(0,b.jsx)("span",{className:"text-lg font-semibold tracking-tight",children:"Tower"})]}),(0,b.jsx)("div",{className:"flex items-center gap-1.5",children:ae.map((a,c)=>{let d=c+1,e=d===K,f=d<K,g=a.icon;return(0,b.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[c>0&&(0,b.jsx)("div",{className:`h-px w-4 transition-colors duration-500 ${f?"bg-primary":"bg-border"}`}),(0,b.jsxs)("div",{className:`flex items-center gap-1 shrink-0 rounded-full px-2 py-1 text-[11px] font-medium whitespace-nowrap transition-all duration-500 ${e?"bg-primary text-primary-foreground shadow-sm":f?"bg-primary/10 text-primary":"bg-muted text-muted-foreground"}`,children:[f?(0,b.jsx)(m.Check,{className:"h-3 w-3 shrink-0"}):(0,b.jsx)(g,{className:"h-3 w-3 shrink-0"}),(0,b.jsx)("span",{children:a.label})]})]},c)})})]}),(0,b.jsxs)("div",{children:[1===K&&(0,b.jsxs)("div",{className:"space-y-7 animate-in fade-in slide-in-from-left-4 duration-500",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:l("onboarding.step1.title")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground leading-relaxed",children:l("onboarding.step1.desc")})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"onboarding-username",className:"text-sm font-medium",children:l("onboarding.step1.usernameLabel")}),(0,b.jsx)("input",{id:"onboarding-username",type:"text",value:M,onChange:a=>N(a.target.value),placeholder:l("onboarding.step1.usernamePlaceholder"),className:"flex h-10 w-full rounded-lg border border-input bg-transparent px-3 py-2 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",maxLength:64,autoFocus:!0,autoComplete:"username"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(E,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,b.jsx)("label",{className:"text-sm font-medium",children:l("settings.language")})]}),(0,b.jsx)(h.SegmentedControl,{options:[{value:"zh",label:"中文"},{value:"en",label:"English"}].map(a=>({value:a.value,label:a.label})),value:n,onChange:a=>p(a)})]}),(0,b.jsxs)("div",{className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(B.Sun,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,b.jsx)("label",{className:"text-sm font-medium",children:l("settings.theme")})]}),w?(0,b.jsx)(h.SegmentedControl,{options:aa.map(a=>({value:a.value,label:a.label})),value:q??"system",onChange:a=>t(a)}):(0,b.jsx)("div",{className:"inline-flex h-8 rounded-md border border-border bg-muted p-1 gap-1 w-[120px]"})]})]}),(0,b.jsx)("div",{className:"flex justify-end pt-3",children:(0,b.jsxs)(f.Button,{onClick:ab,disabled:0===M.trim().length,className:"px-5",children:[l("onboarding.step1.next"),(0,b.jsx)(A.ChevronRight,{className:"h-4 w-4 ml-1"})]})})]}),2===K&&(0,b.jsxs)("div",{className:"space-y-7 animate-in fade-in slide-in-from-left-4 duration-500",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:l("onboarding.step2.title")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground leading-relaxed",children:l("onboarding.step2.desc")})]}),(0,b.jsx)(s,{adapterType:"claude_code",adapterLabel:"Claude CLI",onResult:P}),(0,b.jsxs)("div",{className:"flex items-center justify-between pt-3",children:[(0,b.jsxs)(f.Button,{variant:"ghost",className:"text-muted-foreground",onClick:ac,children:[(0,b.jsx)(z.ChevronLeft,{className:"h-4 w-4 mr-1"}),l("onboarding.back")]}),(0,b.jsxs)(f.Button,{onClick:ab,disabled:!O?.ok,className:"px-5",children:[l("onboarding.step1.next"),(0,b.jsx)(A.ChevronRight,{className:"h-4 w-4 ml-1"})]})]})]}),3===K&&(0,b.jsxs)("div",{className:"space-y-5 animate-in fade-in slide-in-from-left-4 duration-500",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:l("onboarding.step3.title")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground leading-relaxed",children:l("onboarding.step3.desc")})]}),Q.length>0&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:l("onboarding.step3.added").replace("{count}",String(Q.length))}),Q.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-border bg-muted/30 px-3 py-2",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("p",{className:"text-sm font-medium truncate",children:[a.host,(0,b.jsx)("span",{className:"text-muted-foreground",children:"*"!==a.ownerMatch?` / ${a.ownerMatch}`:""})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground font-mono truncate",children:a.localPathTemplate})]}),(0,b.jsx)(f.Button,{variant:"ghost",size:"icon",className:"shrink-0 text-muted-foreground hover:text-destructive",onClick:()=>{var b;return b=a.id,void R(a=>a.filter(a=>a.id!==b))},children:(0,b.jsx)(G.Trash2,{className:"h-3.5 w-3.5"})})]},a.id))]}),U?(0,b.jsxs)("div",{className:"space-y-3 rounded-lg border border-border p-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:l("onboarding.step3.hostLabel")}),(0,b.jsx)(g.Input,{value:S.host,onChange:a=>T(b=>({...b,host:a.target.value})),placeholder:l("onboarding.step3.hostPlaceholder"),className:"h-9",autoFocus:!0})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:l("onboarding.step3.ownerLabel")}),(0,b.jsx)(g.Input,{value:S.ownerMatch,onChange:a=>T(b=>({...b,ownerMatch:a.target.value})),placeholder:l("onboarding.step3.ownerPlaceholder"),className:"h-9"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:l("onboarding.step3.pathLabel")}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(g.Input,{value:S.localPathTemplate,onChange:a=>T(b=>({...b,localPathTemplate:a.target.value})),placeholder:l("onboarding.step3.pathPlaceholder"),className:"h-9 font-mono text-xs flex-1"}),(0,b.jsx)("button",{type:"button",onClick:()=>{Z(a=>(a||X(2),!a))},className:`shrink-0 rounded-full px-2.5 py-1 text-[11px] font-mono font-medium transition-colors ${Y?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"{path}"})]}),(0,b.jsx)("p",{className:"text-[11px] text-muted-foreground",children:l(Y?"onboarding.step3.pathHintFull":"onboarding.step3.pathHintRepo")})]}),S.localPathTemplate&&(a=S.localPathTemplate.trim().replace(/\/+$/,""),i=Y?`${a}/{path}`:a,j=[{label:"GitHub SSH",url:"git@github.com:user/my-app.git"},{label:"GitHub HTTPS",url:"https://github.com/user/my-app.git"},{label:"GitLab Subgroup",url:"https://gitlab.com/org/team/sub/my-api.git"}],(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:l("onboarding.step3.previewLabel")}),(0,b.jsx)("div",{className:"flex gap-1 flex-wrap",children:j.map((a,c)=>(0,b.jsx)("button",{type:"button",onClick:()=>X(c),className:`rounded-md px-2 py-1 text-[11px] font-medium transition-colors ${W===c?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.label},c))}),(0,b.jsxs)("div",{className:"rounded-md bg-muted/50 px-3 py-2 space-y-1",children:[(0,b.jsx)("p",{className:"font-mono text-[11px] text-muted-foreground truncate",children:j[W].url}),(0,b.jsxs)("p",{className:"font-mono text-xs",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"→ "}),(0,b.jsx)("span",{className:"text-primary",children:function(a,b){if(!a||!b)return"";let c=b.trim(),d=[],e=c.match(/^git@[^:]+:(.+)$/);if(e)d=e[1].replace(/\.git\/?$/,"").split("/").filter(Boolean);else try{let a=new URL(c);d=decodeURIComponent(a.pathname).replace(/\.git\/?$/,"").split("/").filter(Boolean)}catch{return""}if(!d.length)return"";let f=d[0],g=d[d.length-1],h=d.join("/");if(a.includes("{path}"))return a.replace("{path}",h).replace("{owner}",f).replace("{repo}",g).replace(/\/+$/,"");let i=a.replace("{owner}",f).replace("{repo}","").replace(/\/+$/,"");return`${i}/${g}`}(i,j[W].url)})]})]})]})),(0,b.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[Q.length>0&&(0,b.jsx)(f.Button,{variant:"ghost",onClick:()=>V(!1),children:l("settings.config.git.cancel")}),(0,b.jsxs)(f.Button,{onClick:function(){if(!S.host.trim()||!S.localPathTemplate.trim())return;let a=S.localPathTemplate.trim().replace(/\/+$/,""),b=Y?`${a}/{path}`:a,c={id:crypto.randomUUID(),host:S.host.trim(),ownerMatch:S.ownerMatch.trim()||"*",localPathTemplate:b,priority:Q.length};R(a=>[...a,c]),T({...I}),Z(!1),V(!1)},disabled:!S.host.trim()||!S.localPathTemplate.trim(),children:[(0,b.jsx)(m.Check,{className:"h-4 w-4 mr-1"}),l("settings.config.git.save")]})]})]}):(0,b.jsxs)(f.Button,{variant:"outline",onClick:()=>{T({...I}),V(!0)},children:[(0,b.jsx)(F.Plus,{className:"h-4 w-4 mr-1"}),l("settings.config.git.addRule")]}),(0,b.jsxs)("div",{className:"flex items-center justify-between pt-3",children:[(0,b.jsxs)(f.Button,{variant:"ghost",className:"text-muted-foreground",onClick:ac,children:[(0,b.jsx)(z.ChevronLeft,{className:"h-4 w-4 mr-1"}),l("onboarding.back")]}),(0,b.jsxs)(f.Button,{onClick:ad,disabled:$,className:"px-5",children:[l("onboarding.complete"),(0,b.jsx)(m.Check,{className:"h-4 w-4 ml-1"})]})]})]})]}),(0,b.jsx)("div",{className:"pt-6 text-xs text-muted-foreground",children:l("onboarding.stepIndicator").replace("{current}",String(K)).replace("{total}",String(3))})]})})]})}],585664)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=tower_src_app_onboarding_page_tsx_0_3krz1._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[3476,a=>{"use strict";var b=a.i(348273),c=a.i(399424),d=a.i(851033),e=a.i(706193),f=a.i(282980),g=a.i(422917),h=a.i(524513),i=a.i(302512),j=a.i(648667),k=a.i(481030),l=a.i(661964),m=a.i(755811),n=a.i(707466),o=a.i(885950),p=a.i(173250);let q=(0,p.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);var r=a.i(529917);let s=(0,p.default)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);var t=a.i(737316),u=a.i(901927),v=a.i(17787),w=a.i(709222);let x=(0,p.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var y=a.i(657673);let z=(0,p.default)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]),A=(0,p.default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);var B=a.i(348754),C=a.i(235022),D=a.i(136913),E=a.i(526116),F=a.i(731921),G=a.i(520237),H=a.i(432174),I=a.i(441388);let J=(0,I.createServerReference)("00462e606ef0995a71213cdee750c9d3c29e7fc9c1",I.callServer,void 0,I.findSourceMapURL,"getAvailableTerminalApps");var K=a.i(611055);let L=(0,I.createServerReference)("40fd4dbd0ec33a0db611a73e8fb6b26b34b592bff7",I.callServer,void 0,I.findSourceMapURL,"createPrompt"),M=(0,I.createServerReference)("60ca22a89eface4a0c7877ca1b4d39b476a3113ae5",I.callServer,void 0,I.findSourceMapURL,"updatePrompt"),N=(0,I.createServerReference)("400e93570ba0b5c0f939726dd5adb9f3c9e9c76a89",I.callServer,void 0,I.findSourceMapURL,"deletePrompt"),O=(0,I.createServerReference)("60e86c155919f10693c34322b2e240f8e7d92a59e5",I.callServer,void 0,I.findSourceMapURL,"setDefaultPrompt"),P=(0,I.createServerReference)("008b6430cac78363e0f9e7c439111e548f503dbc5c",I.callServer,void 0,I.findSourceMapURL,"getDefaultCliProfile"),Q=(0,I.createServerReference)("60377fce3b671fedaeb616be51a9988c1e8a0b5602",I.callServer,void 0,I.findSourceMapURL,"updateCliProfile");function R({options:a,value:c,onChange:d}){return(0,b.jsx)("div",{className:"inline-flex rounded-lg border border-border/50 bg-muted/30 p-1 gap-0.5",children:a.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>d(a.value),className:(0,n.cn)("rounded-md px-3.5 py-1.5 text-sm font-medium transition-all duration-200 cursor-pointer",c===a.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:a.label},a.value))})}function S({label:a,description:c,children:d,className:e}){return(0,b.jsxs)("div",{className:(0,n.cn)("flex items-center justify-between py-4 border-b border-border/50 last:border-0",e),children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1 pr-4",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:a}),c&&(0,b.jsx)("div",{className:"text-xs text-muted-foreground mt-0.5",children:c})]}),(0,b.jsx)("div",{className:"shrink-0",children:d})]})}let T=[{id:"general",labelKey:"settings.general",descKey:"settings.generalDesc",icon:o.Settings,accent:"blue"},{id:"ai-tools",labelKey:"settings.aiTools.title",descKey:"settings.aiTools.cliVerificationDesc",icon:q,accent:"emerald"},{id:"prompts",labelKey:"settings.prompts",descKey:"settings.promptsDesc",icon:r.FileText,accent:"violet"},{id:"config",labelKey:"settings.config",descKey:"settings.configDesc",icon:s,accent:"amber"},{id:"cli-profile",labelKey:"settings.cliProfile.title",descKey:"settings.cliProfile.navDesc",icon:t.Terminal,accent:"cyan"},{id:"notifications",labelKey:"settings.notifications.title",descKey:"settings.notifications.navDesc",icon:u.Bell,accent:"rose"}],U={blue:{bg:"bg-accent",text:"text-foreground",ring:"ring-border",indicator:"bg-foreground"},emerald:{bg:"bg-accent",text:"text-foreground",ring:"ring-border",indicator:"bg-foreground"},violet:{bg:"bg-accent",text:"text-foreground",ring:"ring-border",indicator:"bg-foreground"},amber:{bg:"bg-accent",text:"text-foreground",ring:"ring-border",indicator:"bg-foreground"},cyan:{bg:"bg-accent",text:"text-foreground",ring:"ring-border",indicator:"bg-foreground"},rose:{bg:"bg-accent",text:"text-foreground",ring:"ring-border",indicator:"bg-foreground"}},V="ai-manager:default-cli-adapter",W=[{type:"claude_local",label:"Claude Code",source:"builtin"}],X={host:"",ownerMatch:"*",localPathTemplate:"",priority:0};function Y(){let a=(0,d.useRouter)(),{t:o}=(0,f.useI18n)(),{theme:p,setTheme:q}=(0,e.useTheme)(),{locale:r,setLocale:s}=(0,f.useI18n)(),[t,u]=(0,c.useState)("general"),I=(0,c.useRef)(null),[Y,Z]=(0,c.useState)({left:0,width:0}),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)("Terminal"),[ac,ad]=(0,c.useState)([]),[ae,af]=(0,c.useState)(180),[ag,ah]=(0,c.useState)("claude_local"),[ai,aj]=(0,c.useState)(null),[ak,al]=(0,c.useState)({}),[am,an]=(0,c.useState)([]),[ao,ap]=(0,c.useState)(!1),[aq,ar]=(0,c.useState)(null),[as,at]=(0,c.useState)(null),[au,av]=(0,c.useState)(""),[aw,ax]=(0,c.useState)(""),[ay,az]=(0,c.useState)(""),[aA,aB]=(0,c.useState)([]),[aC,aD]=(0,c.useState)(null),[aE,aF]=(0,c.useState)({...X}),[aG,aH]=(0,c.useState)(!1),[aI,aJ]=(0,c.useState)({...X}),[aK,aL]=(0,c.useState)(!1),[aM,aN]=(0,c.useState)(0),[aO,aP]=(0,c.useState)(null),[aQ,aR]=(0,c.useState)({maxUploadMb:50,maxConcurrent:3}),[aS,aT]=(0,c.useState)({timeoutSec:30}),[aU,aV]=(0,c.useState)({resultLimit:20,allModeCap:5,debounceMs:250,snippetLength:80}),[aW,aX]=(0,c.useState)({minCols:1,maxCols:5,minRows:1,maxRows:5}),[aY,aZ]=(0,c.useState)(null),[a$,a_]=(0,c.useState)(!1),[a0,a1]=(0,c.useState)(""),[a2,a3]=(0,c.useState)(null),[a4,a5]=(0,c.useState)(""),[a6,a7]=(0,c.useState)(""),[a8,a9]=(0,c.useState)(""),[ba,bb]=(0,c.useState)(""),[bc,bd]=(0,c.useState)(!0),[be,bf]=(0,c.useState)(!0);(0,c.useEffect)(()=>_(!0),[]),(0,c.useEffect)(()=>{(0,F.getConfigValue)("terminal.app","Terminal").then(ab),(0,F.getConfigValue)("terminal.idleTimeoutSec",180).then(af),J().then(ad)},[]),(0,c.useEffect)(()=>{let a=localStorage.getItem(V);a&&ah(a)},[]),(0,c.useEffect)(()=>{(0,K.getPrompts)().then(an)},[]);let bg=async()=>{try{let a=await fetch("/api/internal/hooks/install");if(a.ok){let b=await a.json();aZ(b)}}catch{}};async function bh(){await (0,G.setConfigValue)("terminal.app",aa)}async function bi(){let a=Math.max(180,ae);af(a),await (0,G.setConfigValue)("terminal.idleTimeoutSec",a)}async function bj(a){if(!ai){aj(a),al(b=>{let c={...b};return delete c[a],c});try{let b=await fetch("/api/adapters/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({adapterType:a})}),c=await b.json();al(b=>({...b,[a]:c}))}catch{al(b=>({...b,[a]:{ok:!1,checks:[{name:"network_error",passed:!1,message:"Network request failed"}]}}))}finally{aj(null)}}}(0,c.useEffect)(()=>{(0,F.getConfigValue)("git.pathMappingRules",[]).then(aB),(0,F.getConfigValue)("hooks.autoUploadTypes",["png","jpg","jpeg","gif","webp","svg","pdf","md","txt","json"]).then(a=>{a1(a.join(", "))}),bg(),(0,H.getConfigValues)(["system.maxUploadBytes","system.maxConcurrentExecutions","git.timeoutSec","search.resultLimit","search.allModeCap","search.debounceMs","search.snippetLength","missions.grid.minCols","missions.grid.maxCols","missions.grid.minRows","missions.grid.maxRows"]).then(a=>{aR({maxUploadMb:Math.round((a["system.maxUploadBytes"]??0x3200000)/1024/1024),maxConcurrent:a["system.maxConcurrentExecutions"]??3}),aT({timeoutSec:a["git.timeoutSec"]??30}),aV({resultLimit:a["search.resultLimit"]??20,allModeCap:a["search.allModeCap"]??5,debounceMs:a["search.debounceMs"]??250,snippetLength:a["search.snippetLength"]??80}),aX({minCols:a["missions.grid.minCols"]??1,maxCols:a["missions.grid.maxCols"]??5,minRows:a["missions.grid.minRows"]??1,maxRows:a["missions.grid.maxRows"]??5})})},[]),(0,c.useEffect)(()=>{P().then(a=>{a&&(a3(a),a5(a.command),a7(function(a){try{let b=JSON.parse(a);return Array.isArray(b)?b.join("\n"):""}catch{return""}}(a.baseArgs)),a9(function(a){try{let b=JSON.parse(a);if("object"!=typeof b||Array.isArray(b)||null===b)return"";return Object.entries(b).map(([a,b])=>`${a}=${b}`).join("\n")}catch{return""}}(a.envVars))),bd(!1)})},[]),(0,c.useEffect)(()=>{(0,F.getConfigValue)("notification.enabled",!0).then(bf)},[]);let bk=(0,c.useCallback)(()=>{ar(null),av(""),ax(""),az(""),ap(!0)},[]),bl=(0,c.useCallback)(a=>{ar(a),av(a.name),ax(a.description??""),az(a.content),ap(!0)},[]),bm=(0,c.useCallback)(async()=>{au.trim()&&ay.trim()&&(aq?await M(aq.id,{name:au.trim(),description:aw.trim()||void 0,content:ay.trim()}):await L({name:au.trim(),description:aw.trim()||void 0,content:ay.trim()}),ap(!1),an(await (0,K.getPrompts)()),a.refresh())},[au,aw,ay,aq,a]),bn=(0,c.useCallback)(async()=>{as&&(await N(as),at(null),an(await (0,K.getPrompts)()),a.refresh())},[as,a]),bo=(0,c.useCallback)(async b=>{await O(b),an(await (0,K.getPrompts)()),a.refresh()},[a]),bp=async()=>{await (0,G.setConfigValue)("system.maxUploadBytes",1024*aQ.maxUploadMb*1024),await (0,G.setConfigValue)("system.maxConcurrentExecutions",aQ.maxConcurrent)},bq=async()=>{await (0,G.setConfigValue)("git.timeoutSec",aS.timeoutSec)},br=async()=>{await (0,G.setConfigValue)("search.resultLimit",aU.resultLimit),await (0,G.setConfigValue)("search.allModeCap",aU.allModeCap),await (0,G.setConfigValue)("search.debounceMs",aU.debounceMs),await (0,G.setConfigValue)("search.snippetLength",aU.snippetLength)},bs=async()=>{let a=Math.min(aW.minCols,aW.maxCols),b=Math.max(aW.minCols,aW.maxCols),c=Math.min(aW.minRows,aW.maxRows),d=Math.max(aW.minRows,aW.maxRows);aX({minCols:a,maxCols:b,minRows:c,maxRows:d}),await (0,G.setConfigValue)("missions.grid.minCols",a),await (0,G.setConfigValue)("missions.grid.maxCols",b),await (0,G.setConfigValue)("missions.grid.minRows",c),await (0,G.setConfigValue)("missions.grid.maxRows",d)},bt=async()=>{let a=a0.split(",").map(a=>a.trim()).filter(Boolean);await (0,G.setConfigValue)("hooks.autoUploadTypes",a)},bu=async()=>{if(aY){a_(!0);try{let a=aY.installed?"DELETE":"POST";await fetch("/api/internal/hooks/install",{method:a}),await bg()}finally{a_(!1)}}},bv=async()=>{if(!aI.host.trim()||!aI.localPathTemplate.trim())return;let a=aI.localPathTemplate.trim().replace(/\/+$/,""),b=aK?`${a}/{path}`:a,c=[...aA,{id:crypto.randomUUID(),host:aI.host.trim(),ownerMatch:aI.ownerMatch.trim()||"*",localPathTemplate:b,priority:aI.priority}];await (0,G.setConfigValue)("git.pathMappingRules",c),aB(c),aJ({...X}),aL(!1),aH(!1)},bw=async a=>{if(!aE.host.trim()||!aE.localPathTemplate.trim())return;let b=aA.map(b=>b.id===a?{...b,host:aE.host.trim(),ownerMatch:aE.ownerMatch.trim()||"*",localPathTemplate:aE.localPathTemplate.trim(),priority:aE.priority}:b);await (0,G.setConfigValue)("git.pathMappingRules",b),aB(b),aD(null)},bx=async a=>{let b=aA.filter(b=>b.id!==a);await (0,G.setConfigValue)("git.pathMappingRules",b),aB(b),aP(null)},by=(0,c.useCallback)(async()=>{if(a2){try{let a=JSON.stringify(a6.split("\n").map(a=>a.trim()).filter(Boolean)),b={};a8.split("\n").map(a=>a.trim()).filter(Boolean).forEach(a=>{let c=a.indexOf("=");if(c>0){let d=a.slice(0,c).trim(),e=a.slice(c+1).trim();b[d]=e}});let c=JSON.stringify(b);await Q(a2.id,{command:a4,baseArgs:a,envVars:c}),bb("saved")}catch{bb("error")}setTimeout(()=>bb(""),2e3)}},[a2,a4,a6,a8]);async function bz(){let a=!be;bf(a),await (0,G.setConfigValue)("notification.enabled",a)}let bA=(0,c.useCallback)(()=>{a.back()},[a]);(0,c.useEffect)(()=>{let a=I.current;if(!a)return;let b=a.querySelector(`[data-section="${t}"]`);if(!b)return;let c=a.getBoundingClientRect(),d=b.getBoundingClientRect();Z({left:d.left-c.left,width:d.width})},[t]);let bB=T.find(a=>a.id===t),bC=bB?U[bB.accent]:U.blue;return(0,b.jsxs)("div",{className:"flex h-full flex-col bg-background",children:[(0,b.jsx)("div",{className:"flex-shrink-0 border-b bg-card/50 backdrop-blur-sm",children:(0,b.jsxs)("div",{className:"mx-auto max-w-5xl px-6",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between pb-3 pt-5",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:o("settings.title")}),(0,b.jsx)("p",{className:"mt-0.5 text-sm text-muted-foreground",children:o("settings.configDesc")})]}),(0,b.jsxs)(g.Button,{variant:"outline",onClick:bA,className:"gap-1.5 bg-card shadow-sm cursor-pointer",children:[(0,b.jsx)(v.X,{className:"h-3.5 w-3.5"}),"ESC"]})]}),(0,b.jsxs)("div",{ref:I,className:"relative flex gap-1 overflow-x-auto",children:[T.map(a=>{let c=a.icon,d=t===a.id,e=U[a.accent];return(0,b.jsxs)("button",{"data-section":a.id,onClick:()=>u(a.id),className:(0,n.cn)("relative flex items-center gap-2 rounded-t-lg px-4 py-2.5","text-sm font-medium whitespace-nowrap cursor-pointer","transition-colors duration-200","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",d?`${e.text} bg-background`:"text-muted-foreground hover:text-foreground hover:bg-muted/50"),children:[(0,b.jsx)("span",{className:(0,n.cn)("flex h-6 w-6 items-center justify-center rounded-md","transition-colors duration-200",d?e.bg:"bg-transparent"),children:(0,b.jsx)(c,{className:"h-3.5 w-3.5"})}),(0,b.jsx)("span",{children:o(a.labelKey)})]},a.id)}),(0,b.jsx)("div",{className:(0,n.cn)("absolute bottom-0 h-0.5 rounded-full","transition-all duration-250 ease-out",bC.indicator),style:{left:Y.left,width:Y.width}})]})]})}),(0,b.jsx)("div",{className:"flex-1 overflow-auto",children:(0,b.jsxs)("div",{className:"mx-auto max-w-4xl px-6 py-8",children:[bB&&(0,b.jsxs)("div",{className:"mb-6 flex items-start gap-4",children:[(0,b.jsx)("div",{className:(0,n.cn)("flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-xl","ring-1",bC.bg,bC.text,bC.ring),children:(0,b.jsx)(bB.icon,{className:"h-5 w-5"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:o(bB.labelKey)}),(0,b.jsx)("p",{className:"mt-0.5 text-sm text-muted-foreground",children:o(bB.descKey)})]})]}),(0,b.jsx)("div",{className:"mb-6 border-t"}),function(){switch(t){case"general":let a;return a=[{value:"light",label:o("settings.themeLight")},{value:"dark",label:o("settings.themeDark")},{value:"system",label:o("settings.themeSystem")}],(0,b.jsxs)("div",{className:"divide-y divide-border/50",children:[(0,b.jsx)(S,{label:o("settings.theme"),description:o("settings.themeDesc"),children:$?(0,b.jsx)(R,{options:a,value:p??"system",onChange:a=>q(a)}):(0,b.jsx)("div",{className:"inline-flex h-9 rounded-lg border border-border/50 bg-muted/30 p-1 w-[200px]"})}),(0,b.jsx)(S,{label:o("settings.language"),description:o("settings.languageDesc"),children:(0,b.jsx)(R,{options:[{value:"zh",label:"中文"},{value:"en",label:"English"}],value:r,onChange:a=>s(a)})}),(0,b.jsxs)("div",{className:"py-4 border-b border-border/50",children:[(0,b.jsx)("div",{className:"flex items-center justify-between",children:(0,b.jsxs)("div",{className:"min-w-0 flex-1 pr-4",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:o("settings.terminal.label")}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground mt-0.5",children:o("settings.terminal.desc")})]})}),(0,b.jsxs)("div",{className:"mt-3 flex flex-col gap-2",children:[ac.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:ac.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>{ab(a.value),(0,G.setConfigValue)("terminal.app",a.value)},className:(0,n.cn)("rounded-lg border px-3.5 py-1.5 text-xs font-medium transition-all duration-200 cursor-pointer",aa===a.value?"border-foreground bg-accent text-foreground font-medium":"border-border text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:a.name},a.value))}),(0,b.jsx)("input",{type:"text",value:aa,onChange:a=>ab(a.target.value),onBlur:bh,placeholder:o("settings.terminal.placeholder"),className:"h-9 w-64 rounded-lg border border-border/50 bg-muted/30 px-3 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500/30"})]})]}),(0,b.jsx)(S,{label:o("settings.terminal.idleTimeout"),description:o("settings.terminal.idleTimeoutDesc"),children:(0,b.jsx)("input",{type:"number",value:ae,onChange:a=>af(Number(a.target.value)),onBlur:bi,min:180,className:"h-9 w-28 rounded-lg border border-border/50 bg-muted/30 px-3 text-sm text-right focus:outline-none focus:ring-2 focus:ring-blue-500/30"})})]});case"ai-tools":return(0,b.jsx)("ul",{className:"divide-y rounded-xl border border-border bg-card",children:W.map(a=>{let c=ag===a.type,d=ai===a.type,e=ak[a.type];return(0,b.jsx)("li",{children:(0,b.jsxs)("div",{className:"px-5 py-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:a.label}),(0,b.jsx)(k.Badge,{variant:"outline",children:o("label.builtin")}),c&&(0,b.jsxs)(k.Badge,{variant:"secondary",className:"shrink-0",children:[(0,b.jsx)(x,{className:"h-3 w-3 mr-1 fill-yellow-400 text-yellow-400"}),o("settings.prompts.default")]}),e&&(0,b.jsx)(k.Badge,{variant:e.ok?"secondary":"destructive",className:(0,n.cn)("shrink-0",e.ok&&"bg-green-600 text-white hover:bg-green-700"),children:e.ok?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(D.CheckCircle2,{className:"h-3 w-3 mr-1"}),o("settings.aiTools.testPassed")]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(E.XCircle,{className:"h-3 w-3 mr-1"}),o("settings.aiTools.testFailed")]})})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:a.type})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[!c&&(0,b.jsxs)(g.Button,{variant:"outline",size:"sm",onClick:()=>{var b;ah(b=a.type),localStorage.setItem(V,b)},children:[(0,b.jsx)(x,{className:"h-3.5 w-3.5 mr-1.5 text-muted-foreground"}),o("settings.prompts.setDefault")]}),(0,b.jsx)(g.Button,{variant:"outline",size:"sm",onClick:()=>bj(a.type),disabled:d,children:d?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(B.Loader2,{className:"h-3.5 w-3.5 animate-spin mr-1.5"}),o("settings.aiTools.testing")]}):o("settings.aiTools.testConnection")}),"external"===a.source&&(0,b.jsx)(g.Button,{variant:"outline",size:"icon-sm",className:"h-8 w-8 text-destructive hover:text-destructive",title:o("common.delete"),children:(0,b.jsx)(y.Trash2,{className:"h-4 w-4"})})]})]}),e&&(0,b.jsx)("div",{className:"mt-3 rounded-md border border-border bg-muted/30 px-4 py-3",children:(0,b.jsx)("div",{className:"space-y-1.5",children:e.checks.map(c=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("span",{className:(0,n.cn)("w-1.5 h-1.5 rounded-full shrink-0",c.passed?"bg-green-500":"bg-red-500")}),(0,b.jsx)("span",{className:(0,n.cn)(c.passed?"text-foreground":"text-red-700 dark:text-red-300"),children:c.message})]},`${a.type}-${c.name}`))})})]})},a.type)})});case"prompts":return $?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsxs)(g.Button,{onClick:bk,variant:"default",children:[(0,b.jsx)(w.Plus,{className:"h-4 w-4 mr-2"}),o("settings.prompts.newPrompt")]})}),0===am.length?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-center rounded-lg border border-dashed border-border/50",children:[(0,b.jsx)("p",{className:"text-muted-foreground",children:o("settings.prompts.empty")}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:o("settings.prompts.emptyHint")})]}):(0,b.jsx)("div",{className:"rounded-xl border border-border/50 divide-y divide-border/50",children:am.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3.5 hover:bg-muted/30 transition-colors",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("h4",{className:"text-sm font-medium truncate",children:a.name}),a.isDefault&&(0,b.jsxs)(k.Badge,{variant:"secondary",className:"shrink-0 rounded-full text-xs",children:[(0,b.jsx)(x,{className:"h-3 w-3 mr-1 fill-yellow-400 text-yellow-400"}),o("settings.prompts.default")]})]}),a.description&&(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground truncate",children:a.description})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 shrink-0 ml-4",children:[(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:()=>bo(a.id),title:o("settings.prompts.setDefault"),children:(0,b.jsx)(x,{className:(0,n.cn)("h-4 w-4",a.isDefault?"fill-yellow-400 text-yellow-400":"text-muted-foreground")})}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:()=>bl(a),title:o("settings.prompts.editPrompt"),children:(0,b.jsx)(z,{className:"h-4 w-4"})}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:()=>at(a.id),className:"text-destructive",title:o("settings.prompts.delete"),children:(0,b.jsx)(y.Trash2,{className:"h-4 w-4"})})]})]},a.id))}),(0,b.jsx)(m.Dialog,{open:ao,onOpenChange:ap,children:(0,b.jsxs)(m.DialogContent,{children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsx)(m.DialogTitle,{children:aq?o("settings.prompts.editPrompt"):o("settings.prompts.newPrompt")}),(0,b.jsx)(m.DialogDescription,{children:aq?o("settings.prompts.editPrompt"):o("settings.prompts.newPrompt")})]}),(0,b.jsxs)("div",{className:"space-y-4 py-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(j.Label,{htmlFor:"prompt-name",children:o("settings.prompts.promptName")}),(0,b.jsx)(h.Input,{id:"prompt-name",value:au,onChange:a=>av(a.target.value),placeholder:o("settings.prompts.promptNamePlaceholder"),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)(j.Label,{htmlFor:"prompt-description",children:o("settings.prompts.promptDescription")}),(0,b.jsx)(h.Input,{id:"prompt-description",value:aw,onChange:a=>ax(a.target.value),placeholder:o("settings.prompts.promptDescriptionPlaceholder"),className:"mt-1.5"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)(j.Label,{htmlFor:"prompt-content",children:o("settings.prompts.promptContent")}),(0,b.jsx)(i.Textarea,{id:"prompt-content",value:ay,onChange:a=>az(a.target.value),placeholder:o("settings.prompts.promptContentPlaceholder"),rows:8,className:"mt-1.5 font-mono text-sm"})]})]}),(0,b.jsxs)(m.DialogFooter,{children:[(0,b.jsx)(g.Button,{variant:"outline",onClick:()=>ap(!1),children:o("settings.prompts.cancel")}),(0,b.jsx)(g.Button,{onClick:bm,disabled:!au.trim()||!ay.trim(),children:o("settings.prompts.save")})]})]})}),(0,b.jsx)(m.Dialog,{open:!!as,onOpenChange:a=>!a&&at(null),children:(0,b.jsxs)(m.DialogContent,{children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsx)(m.DialogTitle,{children:o("settings.prompts.deleteConfirmTitle")}),(0,b.jsx)(m.DialogDescription,{children:o("settings.prompts.deleteConfirmMessage")})]}),(0,b.jsxs)(m.DialogFooter,{children:[(0,b.jsx)(g.Button,{variant:"outline",onClick:()=>at(null),children:o("settings.prompts.cancel")}),(0,b.jsx)(g.Button,{variant:"destructive",onClick:bn,children:o("settings.prompts.delete")})]})]})})]}):(0,b.jsx)("div",{className:"h-32 rounded-lg bg-muted animate-pulse"});case"config":let c,d,e;return(0,b.jsxs)("div",{className:"space-y-8",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:o("settings.config.git.title")}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:o("settings.config.git.desc")})]}),(0,b.jsxs)(g.Button,{onClick:()=>{aJ({...X}),aH(!0)},children:[(0,b.jsx)(w.Plus,{className:"mr-2 h-4 w-4"}),o("settings.config.git.addRule")]})]}),(0,b.jsxs)("div",{className:"space-y-3",children:[0!==aA.length||aG?(0,b.jsx)("ul",{className:"divide-y rounded-xl border border-border bg-card",children:aA.map(a=>aC===a.id?(0,b.jsxs)("li",{className:"px-5 py-4 bg-muted/20",children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:o("settings.config.git.host")}),(0,b.jsx)(h.Input,{value:aE.host,onChange:a=>aF(b=>({...b,host:a.target.value})),placeholder:o("settings.config.git.hostPlaceholder"),className:"text-sm"})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:o("settings.config.git.ownerMatch")}),(0,b.jsx)(h.Input,{value:aE.ownerMatch,onChange:a=>aF(b=>({...b,ownerMatch:a.target.value})),placeholder:o("settings.config.git.ownerMatchPlaceholder"),className:"text-sm"})]}),(0,b.jsxs)("div",{className:"space-y-1 col-span-2",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:o("settings.config.git.localPathTemplate")}),(0,b.jsx)(h.Input,{value:aE.localPathTemplate,onChange:a=>aF(b=>({...b,localPathTemplate:a.target.value})),placeholder:o("settings.config.git.localPathTemplatePlaceholder"),className:"text-sm font-mono"})]}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground",children:o("settings.config.git.priority")}),(0,b.jsx)(h.Input,{type:"number",value:aE.priority,onChange:a=>aF(b=>({...b,priority:Number(a.target.value)})),className:"text-sm w-24"})]})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 mt-3",children:[(0,b.jsx)(g.Button,{variant:"ghost",size:"sm",onClick:()=>aD(null),children:o("settings.config.git.cancel")}),(0,b.jsx)(g.Button,{size:"sm",onClick:()=>bw(a.id),children:o("settings.config.git.save")})]})]},a.id):(0,b.jsx)("li",{className:"group px-5 py-4 hover:bg-muted/20 transition-colors",children:(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium text-sm",children:a.host}),"*"!==a.ownerMatch&&(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["/ ",a.ownerMatch]}),(0,b.jsxs)(k.Badge,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:[o("settings.config.git.priority")," ",a.priority]})]}),(0,b.jsx)("p",{className:"mt-0.5 font-mono text-xs text-muted-foreground truncate",children:a.localPathTemplate})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:()=>{aD(a.id),aF({host:a.host,ownerMatch:a.ownerMatch,localPathTemplate:a.localPathTemplate,priority:a.priority})},title:o("settings.config.git.edit"),children:(0,b.jsx)(z,{className:"h-4 w-4"})}),(0,b.jsx)(g.Button,{variant:"ghost",size:"icon-sm",onClick:()=>aP(a.id),className:"text-destructive",title:o("settings.config.git.delete"),children:(0,b.jsx)(y.Trash2,{className:"h-4 w-4"})})]})]})},a.id))}):(0,b.jsx)("div",{className:"rounded-xl border border-dashed border-border p-8 text-center",children:(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:o("settings.config.git.noRules")})}),aG&&(0,b.jsxs)("div",{className:"rounded-xl border border-border bg-muted/20 p-5 space-y-4",children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:o("settings.config.git.host")}),(0,b.jsx)(h.Input,{value:aI.host,onChange:a=>aJ(b=>({...b,host:a.target.value})),placeholder:o("settings.config.git.hostPlaceholder"),className:"text-sm",autoFocus:!0})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:o("settings.config.git.ownerMatch")}),(0,b.jsx)(h.Input,{value:aI.ownerMatch,onChange:a=>aJ(b=>({...b,ownerMatch:a.target.value})),placeholder:o("settings.config.git.ownerMatchPlaceholder"),className:"text-sm"})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:o("settings.config.git.localPathTemplate")}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(h.Input,{value:aI.localPathTemplate,onChange:a=>aJ(b=>({...b,localPathTemplate:a.target.value})),placeholder:o("settings.config.git.localPathTemplatePlaceholder"),className:"text-sm font-mono flex-1"}),(0,b.jsx)("button",{type:"button",onClick:()=>aL(a=>!a),className:(0,n.cn)("shrink-0 rounded-full px-2.5 py-1 text-[11px] font-mono font-medium transition-colors cursor-pointer",aK?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:"{path}"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:aK?o("onboarding.step3.pathHintFull"):o("onboarding.step3.pathHintRepo")})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium",children:o("settings.config.git.priority")}),(0,b.jsx)(h.Input,{type:"number",value:aI.priority,onChange:a=>aJ(b=>({...b,priority:Number(a.target.value)})),className:"text-sm w-24"})]}),aI.localPathTemplate&&(c=aI.localPathTemplate.trim().replace(/\/+$/,""),d=aK?`${c}/{path}`:c,e=[{label:"GitHub SSH",url:"git@github.com:user/my-app.git"},{label:"GitHub HTTPS",url:"https://github.com/user/my-app.git"},{label:"GitLab Subgroup",url:"https://gitlab.com/org/team/sub/my-api.git"}],(0,b.jsxs)("div",{className:"rounded-lg bg-muted/40 border border-border px-4 py-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:o("onboarding.step3.previewLabel")}),(0,b.jsx)("div",{className:"flex gap-1",children:e.map((a,c)=>(0,b.jsx)("button",{type:"button",onClick:()=>aN(c),className:(0,n.cn)("rounded-md px-2 py-0.5 text-[11px] font-medium transition-colors cursor-pointer",aM===c?"bg-foreground text-background":"bg-muted text-muted-foreground hover:text-foreground"),children:a.label},c))})]}),(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)("p",{className:"font-mono text-[11px] text-muted-foreground truncate",children:e[aM].url}),(0,b.jsxs)("p",{className:"font-mono text-sm",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"→ "}),(0,b.jsx)("span",{className:"text-foreground font-medium",children:function(a,b){if(!a||!b)return"";let c=b.trim(),d=[],e=c.match(/^git@[^:]+:(.+)$/);if(e)d=e[1].replace(/\.git\/?$/,"").split("/").filter(Boolean);else try{let a=new URL(c);d=decodeURIComponent(a.pathname).replace(/\.git\/?$/,"").split("/").filter(Boolean)}catch{return""}if(!d.length)return"";let f=d[0],g=d[d.length-1],h=d.join("/");if(a.includes("{path}"))return a.replace("{path}",h).replace("{owner}",f).replace("{repo}",g).replace(/\/+$/,"");let i=a.replace("{owner}",f).replace("{repo}","").replace(/\/+$/,"");return`${i}/${g}`}(d,e[aM].url)})]})]})]})),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(g.Button,{variant:"ghost",size:"sm",onClick:()=>aH(!1),children:o("settings.config.git.cancel")}),(0,b.jsxs)(g.Button,{size:"sm",onClick:bv,disabled:!aI.host.trim()||!aI.localPathTemplate.trim(),children:[(0,b.jsx)(A,{className:"h-3.5 w-3.5 mr-1.5"}),o("settings.config.git.save")]})]})]})]})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-border bg-muted/50 p-5 space-y-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:o("settings.config.system.title")}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:o("settings.config.system.desc")})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.config.system.maxUpload")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.system.maxUploadHint")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(h.Input,{type:"number",min:1,max:500,value:aQ.maxUploadMb,onChange:a=>aR(b=>({...b,maxUploadMb:Number(a.target.value)})),className:"w-24 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"}),(0,b.jsx)("span",{className:"text-sm text-muted-foreground",children:"MB"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.config.system.maxConcurrent")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.system.maxConcurrentHint")})]}),(0,b.jsx)(h.Input,{type:"number",min:1,max:10,value:aQ.maxConcurrent,onChange:a=>aR(b=>({...b,maxConcurrent:Number(a.target.value)})),className:"w-24 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]})]}),(0,b.jsx)(g.Button,{onClick:bp,className:"rounded-lg",children:o("common.save")})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-border bg-muted/50 p-5 space-y-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:o("settings.config.gitParams.title")}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:o("settings.config.gitParams.desc")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.config.gitParams.timeout")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.gitParams.timeoutHint")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(h.Input,{type:"number",min:5,max:300,value:aS.timeoutSec,onChange:a=>aT(b=>({...b,timeoutSec:Number(a.target.value)})),className:"w-24 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"}),(0,b.jsx)("span",{className:"text-sm text-muted-foreground",children:"s"})]})]}),(0,b.jsx)(g.Button,{onClick:bq,className:"rounded-lg",children:o("common.save")})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-border bg-muted/50 p-5 space-y-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:o("settings.config.search.title")}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:o("settings.config.search.desc")})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.config.search.resultLimit")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.search.resultLimitHint")})]}),(0,b.jsx)(h.Input,{type:"number",min:5,max:100,value:aU.resultLimit,onChange:a=>aV(b=>({...b,resultLimit:Number(a.target.value)})),className:"w-24 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.config.search.allModeCap")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.search.allModeCapHint")})]}),(0,b.jsx)(h.Input,{type:"number",min:1,max:20,value:aU.allModeCap,onChange:a=>aV(b=>({...b,allModeCap:Number(a.target.value)})),className:"w-24 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.config.search.debounceMs")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.search.debounceMsHint")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(h.Input,{type:"number",min:50,max:1e3,value:aU.debounceMs,onChange:a=>aV(b=>({...b,debounceMs:Number(a.target.value)})),className:"w-24 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"}),(0,b.jsx)("span",{className:"text-sm text-muted-foreground",children:"ms"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.config.search.snippetLength")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.search.snippetLengthHint")})]}),(0,b.jsx)(h.Input,{type:"number",min:20,max:500,value:aU.snippetLength,onChange:a=>aV(b=>({...b,snippetLength:Number(a.target.value)})),className:"w-24 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]})]}),(0,b.jsx)(g.Button,{onClick:br,className:"rounded-lg",children:o("common.save")})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-border bg-muted/50 p-5 space-y-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:o("settings.config.missions.title")}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:o("settings.config.missions.desc")})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("label",{className:"text-sm font-medium flex-1",children:o("settings.config.missions.minCols")}),(0,b.jsx)(h.Input,{type:"number",min:1,max:10,value:aW.minCols,onChange:a=>aX(b=>({...b,minCols:Number(a.target.value)})),className:"w-20 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("label",{className:"text-sm font-medium flex-1",children:o("settings.config.missions.maxCols")}),(0,b.jsx)(h.Input,{type:"number",min:1,max:10,value:aW.maxCols,onChange:a=>aX(b=>({...b,maxCols:Number(a.target.value)})),className:"w-20 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("label",{className:"text-sm font-medium flex-1",children:o("settings.config.missions.minRows")}),(0,b.jsx)(h.Input,{type:"number",min:1,max:10,value:aW.minRows,onChange:a=>aX(b=>({...b,minRows:Number(a.target.value)})),className:"w-20 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("label",{className:"text-sm font-medium flex-1",children:o("settings.config.missions.maxRows")}),(0,b.jsx)(h.Input,{type:"number",min:1,max:10,value:aW.maxRows,onChange:a=>aX(b=>({...b,maxRows:Number(a.target.value)})),className:"w-20 text-right rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]})]}),(0,b.jsx)(g.Button,{onClick:bs,className:"rounded-lg",children:o("common.save")})]}),(0,b.jsxs)("div",{className:"rounded-xl border border-border bg-muted/50 p-5 space-y-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-semibold",children:o("settings.config.hooks.title")}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:o("settings.config.hooks.desc")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.config.hooks.autoUploadTypes")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.hooks.autoUploadTypesHint")})]}),(0,b.jsx)(h.Input,{value:a0,onChange:a=>a1(a.target.value),placeholder:"png, jpg, jpeg, gif, webp, svg, pdf",className:"w-80 rounded-lg border-border/50 bg-muted/30 focus:ring-2 focus:ring-amber-500/30"})]}),(0,b.jsx)(g.Button,{onClick:bt,className:"rounded-lg",children:o("common.save")}),(0,b.jsxs)("div",{className:"flex items-center gap-4 pt-4 border-t border-border/50",children:[(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:aY?.installed?o("settings.config.hooks.installed"):o("settings.config.hooks.notInstalled")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:o("settings.config.hooks.installHint")})]}),(0,b.jsx)(g.Button,{variant:aY?.installed?"destructive":"default",onClick:bu,disabled:a$||!aY,className:"rounded-lg",children:aY?.installed?o("settings.config.hooks.uninstall"):o("settings.config.hooks.install")})]})]}),(0,b.jsx)(m.Dialog,{open:!!aO,onOpenChange:a=>!a&&aP(null),children:(0,b.jsxs)(m.DialogContent,{children:[(0,b.jsxs)(m.DialogHeader,{children:[(0,b.jsx)(m.DialogTitle,{children:o("settings.config.git.deleteConfirm")}),(0,b.jsx)(m.DialogDescription,{children:o("settings.config.git.deleteConfirmMessage")})]}),(0,b.jsxs)(m.DialogFooter,{children:[(0,b.jsx)(g.Button,{variant:"outline",onClick:()=>aP(null),children:o("settings.config.git.cancel")}),(0,b.jsx)(g.Button,{variant:"destructive",onClick:()=>aO&&bx(aO),children:o("settings.config.git.delete")})]})]})})]});case"cli-profile":return bc?(0,b.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,b.jsx)(B.Loader2,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):a2?(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"flex items-center gap-2 mb-2",children:(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.cliProfile.command")})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mb-2",children:o("settings.cliProfile.commandHint")}),(0,b.jsx)(h.Input,{type:"text",value:a4,onChange:a=>a5(a.target.value),placeholder:o("settings.cliProfile.commandPlaceholder"),className:"w-full rounded-lg border-border/50 bg-zinc-900 dark:bg-zinc-950 text-cyan-400 font-mono text-sm px-4 py-2.5 focus:ring-2 focus:ring-cyan-500/30 placeholder:text-zinc-600"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.cliProfile.baseArgs")}),(0,b.jsx)(k.Badge,{variant:"secondary",className:"text-xs rounded-full px-2 py-0",children:"one per line"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mb-2",children:o("settings.cliProfile.baseArgsHint")}),(0,b.jsx)(i.Textarea,{value:a6,onChange:a=>a7(a.target.value),placeholder:o("settings.cliProfile.baseArgsPlaceholder"),rows:4,className:"w-full rounded-lg border-border/50 bg-zinc-900 dark:bg-zinc-950 text-cyan-400 font-mono text-sm px-4 py-3 leading-relaxed focus:ring-2 focus:ring-cyan-500/30 placeholder:text-zinc-600 resize-none"})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:o("settings.cliProfile.envVars")}),(0,b.jsx)(k.Badge,{variant:"secondary",className:"text-xs rounded-full px-2 py-0",children:"KEY=VALUE per line"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mb-2",children:o("settings.cliProfile.envVarsHint")}),(0,b.jsx)(i.Textarea,{value:a8,onChange:a=>a9(a.target.value),placeholder:o("settings.cliProfile.envVarsPlaceholder"),rows:4,className:"w-full rounded-lg border-border/50 bg-zinc-900 dark:bg-zinc-950 text-cyan-400 font-mono text-sm px-4 py-3 leading-relaxed focus:ring-2 focus:ring-cyan-500/30 placeholder:text-zinc-600 resize-none"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)(g.Button,{onClick:by,className:"rounded-lg",children:[(0,b.jsx)(A,{className:"h-4 w-4 mr-2"}),o("common.save")]}),"saved"===ba&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-emerald-600 dark:text-emerald-400 animate-in fade-in duration-300",children:[(0,b.jsx)(C.Check,{className:"h-4 w-4"}),o("settings.cliProfile.saved")]}),"error"===ba&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-red-600 dark:text-red-400 animate-in fade-in duration-300",children:[(0,b.jsx)(E.XCircle,{className:"h-4 w-4"}),o("settings.cliProfile.saveError")]})]})]}):(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:o("settings.cliProfile.noProfile")});case"notifications":return(0,b.jsx)("div",{className:"divide-y divide-border/50",children:(0,b.jsxs)("div",{className:"flex items-center justify-between py-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:o("settings.notifications.enable")}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground mt-0.5",children:o("settings.notifications.enableDesc")})]}),(0,b.jsx)(l.Switch,{checked:be,onCheckedChange:bz})]})})}}()]})})]})}a.s(["default",0,function(){return(0,b.jsx)(Y,{})}],3476)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=tower_src_app_settings_page_tsx_0vo5e-o._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[68482,a=>{"use strict";var b=a.i(348273),c=a.i(399424),d=a.i(348754),e=a.i(134999),f=a.i(282980),g=a.i(388265),h=a.i(441388);let i=(0,h.createServerReference)("40349e38d6148d1d9f418ad6a47af9f9e45688a580",h.callServer,void 0,h.findSourceMapURL,"getProjectAssets");var j=a.i(522849),k=a.i(580283),l=a.i(529917),m=a.i(593677),n=a.i(657673),o=a.i(422917);function p(a){let b=a.match(/(?:^|\/)(?:storage|data)\/assets\/([^/]+)\/([^/]+)$/);return b?`/api/files/assets/${b[1]}/${b[2]}`:a}function q({asset:a,onPreview:c,onReveal:d,onDelete:e,onTaskClick:g}){var h;let{t:i}=(0,f.useI18n)(),k=p(a.path),r=a.mimeType?.startsWith("image/");return(0,b.jsxs)("div",{className:"flex items-center gap-4 rounded-lg border border-border bg-card px-4 py-3 transition-colors hover:bg-accent/20",children:[(0,b.jsx)(o.Button,{variant:"ghost",onClick:()=>c(a),className:"flex-shrink-0 cursor-pointer p-0 h-auto",children:r?(0,b.jsx)("img",{src:k,alt:a.filename,className:"h-12 w-12 rounded object-cover border border-border"}):(0,b.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded border border-border bg-muted",children:(0,b.jsx)(l.FileText,{className:"h-6 w-6 text-muted-foreground"})})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-foreground",children:a.filename}),a.taskTitle&&a.taskId&&(0,b.jsx)(o.Button,{variant:"ghost",onClick:b=>{b.stopPropagation(),g?.(a.taskId)},className:"flex-shrink-0 bg-blue-500/10 text-blue-600 dark:text-blue-400 text-xs px-1.5 py-0.5 rounded cursor-pointer hover:bg-blue-500/20 transition-colors h-auto",children:a.taskTitle.length>20?`[任务: ${a.taskTitle.slice(0,20)}...]`:`[任务: ${a.taskTitle}]`})]}),a.description&&(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground truncate",children:a.description}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-3 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{children:null===(h=a.size)?"-":h<1024?`${h} B`:h<1048576?`${(h/1024).toFixed(1)} KB`:h<0x40000000?`${(h/1048576).toFixed(1)} MB`:`${(h/0x40000000).toFixed(1)} GB`}),(0,b.jsx)("span",{children:new Date(a.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[(0,b.jsx)(o.Button,{variant:"ghost",size:"icon",onClick:()=>c(a),className:"text-muted-foreground","aria-label":i("assets.preview"),children:(0,b.jsx)(m.Eye,{className:"h-4 w-4"})}),(0,b.jsx)(o.Button,{variant:"ghost",size:"icon",onClick:()=>d(a),className:"text-muted-foreground","aria-label":i("assets.revealInFinder"),children:(0,b.jsx)(j.FolderOpen,{className:"h-4 w-4"})}),(0,b.jsx)(o.Button,{variant:"ghost",size:"icon",onClick:()=>e(a.id),className:"text-muted-foreground hover:text-rose-400","aria-label":i("assets.delete"),children:(0,b.jsx)(n.Trash2,{className:"h-4 w-4"})})]})]})}function r({assets:a,onPreview:c,onReveal:d,onDelete:e,onTaskClick:g}){let{t:h}=(0,f.useI18n)();return 0===a.length?(0,b.jsx)(k.EmptyState,{icon:j.FolderOpen,title:h("assets.empty"),description:h("assets.emptyHint")}):(0,b.jsx)("div",{className:"flex flex-col gap-3",children:a.map(a=>(0,b.jsx)(q,{asset:a,onPreview:c,onReveal:d,onDelete:e,onTaskClick:g},a.id))})}var s=a.i(262392),t=a.i(17787),u=a.i(54803),v=a.i(302512),w=a.i(344838);function x({allWorkspaces:a,initialWsId:d,initialProjectId:e,onUploaded:g}){let h,{t:i}=(0,f.useI18n)(),j=(0,c.useRef)(null),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null),[r,y]=(0,c.useState)(d),[z,A]=(0,c.useState)(e),[B,C]=(0,c.useState)(""),D=a.find(a=>a.id===r),E=D?.projects??[],F=()=>{l(!1),q(null),j.current&&(j.current.value="")},G=async()=>{if(p&&z){n(!0);try{let a=new FormData;a.append("file",p),a.append("projectId",z),a.append("description",B.trim()),await (0,u.uploadAsset)(a),g(z),F()}finally{n(!1)}}};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(o.Button,{onClick:()=>{y(d),A(e),q(null),C(""),l(!0)},className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:[(0,b.jsx)(s.Upload,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:i("assets.upload")})]}),k&&(0,b.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,b.jsx)("div",{className:"absolute inset-0 bg-black/50",onClick:F}),(0,b.jsxs)("div",{className:"relative w-full max-w-md rounded-lg border border-border bg-card p-6 shadow-lg",children:[(0,b.jsx)(o.Button,{variant:"ghost",size:"icon-xs",onClick:F,className:"absolute right-3 top-3 text-muted-foreground",children:(0,b.jsx)(t.X,{className:"h-4 w-4"})}),(0,b.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-4",children:i("assets.uploadTitle")}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground w-16 shrink-0",children:i("assets.workspace")}),(0,b.jsxs)(w.Select,{value:r,onValueChange:b=>{var c;let d;return y(c=b??""),d=a.find(a=>a.id===c),void A(d?.projects[0]?.id??null)},children:[(0,b.jsx)(w.SelectTrigger,{className:"flex-1 text-xs",children:(0,b.jsx)("span",{className:"truncate",children:D?.name??r})}),(0,b.jsx)(w.SelectContent,{children:a.map(a=>(0,b.jsx)(w.SelectItem,{value:a.id,children:a.name},a.id))})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground w-16 shrink-0",children:i("assets.project")}),E.length>0?(0,b.jsxs)(w.Select,{value:z??"",onValueChange:a=>A(a??""),children:[(0,b.jsx)(w.SelectTrigger,{className:"flex-1 text-xs",children:(0,b.jsx)("span",{className:"truncate",children:(h=E.find(a=>a.id===z))?h.alias?`${h.name} (${h.alias})`:h.name:z})}),(0,b.jsx)(w.SelectContent,{children:E.map(a=>{let c=a.alias?`${a.name} (${a.alias})`:a.name;return(0,b.jsx)(w.SelectItem,{value:a.id,children:c},a.id)})})]}):(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:i("assets.noProject")})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground w-16 shrink-0",children:i("assets.file")}),(0,b.jsx)("input",{type:"file",ref:j,onChange:a=>{q(a.target.files?.[0]??null)},className:"hidden"}),(0,b.jsx)(o.Button,{variant:"outline",onClick:()=>{j.current?.click()},className:"flex-1 border-dashed bg-background px-3 py-2 text-xs text-muted-foreground hover:border-primary/50 hover:text-foreground transition-colors text-left justify-start",children:p?p.name:i("assets.selectFile")})]}),(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("label",{className:"text-xs text-muted-foreground w-16 shrink-0 pt-1.5",children:i("assets.description")}),(0,b.jsx)(v.Textarea,{value:B,onChange:a=>C(a.target.value),placeholder:i("assets.descriptionPlaceholder"),className:"flex-1 rounded-md border border-border bg-background px-3 py-2 text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring resize-none h-20"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 justify-end mt-6",children:[(0,b.jsx)(o.Button,{variant:"outline",onClick:F,children:i("notes.cancel")}),(0,b.jsx)(o.Button,{onClick:G,disabled:!p||!z||!B.trim()||m,className:"bg-primary/10 text-primary ring-1 ring-primary/20 hover:bg-primary/15",children:i(m?"assets.uploading":"assets.upload")})]})]})]})]})}var y=a.i(755811);function z({imageUrl:a,filename:d,open:e,onOpenChange:f}){let[g,h]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{h(!1)},[e]),(0,b.jsx)(y.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(y.DialogContent,{showCloseButton:!1,className:"max-w-[90vw] max-h-[90vh] p-0 overflow-hidden bg-black/90 ring-0",children:[(0,b.jsx)(y.DialogClose,{render:(0,b.jsx)(o.Button,{variant:"ghost",className:"absolute top-2 right-2 z-10 h-8 w-8 p-0 text-white hover:bg-white/20 hover:text-white"}),"aria-label":"Close",children:(0,b.jsx)(t.X,{className:"h-4 w-4"})}),a&&(0,b.jsx)(b.Fragment,{children:g?(0,b.jsx)("div",{className:"overflow-auto max-w-[90vw] max-h-[90vh]",children:(0,b.jsx)("img",{src:a,alt:d,onClick:()=>h(!1),className:"w-auto h-auto max-w-none cursor-zoom-out"})}):(0,b.jsx)("img",{src:a,alt:d,onClick:()=>h(!0),className:"max-w-full max-h-[85vh] object-contain cursor-zoom-in mx-auto"})}),(0,b.jsx)("span",{className:"absolute bottom-2 left-3 text-xs text-white/70 truncate max-w-[60%]",children:d})]})})}var A=a.i(93387),B=a.i(348041);function C({url:a,filename:e,open:g,onOpenChange:h}){let{t:i}=(0,f.useI18n)(),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!g||!a){k(null),o(null);return}let b=!1;return m(!0),o(null),k(null),fetch(a).then(a=>{let b=a.headers.get("content-length");if(b&&parseInt(b,10)>1048576)throw Error("FILE_TOO_LARGE");return a.text()}).then(a=>{if(a.length>1048576)throw Error("FILE_TOO_LARGE");b||(k(a),m(!1))}).catch(a=>{b||(a instanceof Error&&"FILE_TOO_LARGE"===a.message?o(i("assets.fileTooLarge")):o(i("assets.previewError")),m(!1))}),()=>{b=!0}},[g,a,i]);let p=e.split(".").pop()?.toLowerCase();return(0,b.jsx)(y.Dialog,{open:g,onOpenChange:h,children:(0,b.jsxs)(y.DialogContent,{className:"max-w-3xl max-h-[80vh] flex flex-col",children:[(0,b.jsx)("h3",{className:"text-sm font-medium truncate px-4 pt-4",children:e}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-4 pb-4 pt-2",children:(()=>{if(l)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2",children:[(0,b.jsx)(d.Loader2,{className:"size-5 animate-spin text-muted-foreground"}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:i("assets.loadingPreview")})]});if(n)return(0,b.jsx)("p",{className:"text-sm text-destructive",children:n});if(null===j)return null;if("md"===p)return(0,b.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:(0,b.jsx)(A.default,{remarkPlugins:[B.default],children:j})});if("json"===p){let a;try{a=JSON.stringify(JSON.parse(j),null,2)}catch{a=j}return(0,b.jsx)("pre",{className:"font-mono text-xs whitespace-pre-wrap text-foreground",children:a})}return(0,b.jsx)("pre",{className:"font-mono text-sm whitespace-pre-wrap text-foreground",children:j})})()})]})})}var D=a.i(717833),E=a.i(707466),F=a.i(730659);function G({...a}){return(0,b.jsx)(D.Dialog.Root,{"data-slot":"sheet",...a})}function H({...a}){return(0,b.jsx)(D.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function I({className:a,...c}){return(0,b.jsx)(D.Dialog.Backdrop,{"data-slot":"sheet-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",a),...c})}function J({className:a,children:c,side:d="right",showCloseButton:e=!0,...f}){return(0,b.jsxs)(H,{children:[(0,b.jsx)(I,{}),(0,b.jsxs)(D.Dialog.Popup,{"data-slot":"sheet-content","data-side":d,className:(0,E.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",a),...f,children:[c,e&&(0,b.jsxs)(D.Dialog.Close,{"data-slot":"sheet-close",render:(0,b.jsx)(o.Button,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,b.jsx)(F.XIcon,{}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function K({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,E.cn)("flex flex-col gap-0.5 p-4",a),...c})}function L({className:a,...c}){return(0,b.jsx)(D.Dialog.Title,{"data-slot":"sheet-title",className:(0,E.cn)("font-heading text-base font-medium text-foreground",a),...c})}function M({className:a,...c}){return(0,b.jsx)(D.Dialog.Description,{"data-slot":"sheet-description",className:(0,E.cn)("text-sm text-muted-foreground",a),...c})}var N=a.i(55213),O=a.i(481030);let P=(0,h.createServerReference)("40c2c0c07e368f29ef86c643e2ab5dfe9a145fed22",h.callServer,void 0,h.findSourceMapURL,"getTaskOverview");var Q=a.i(727946),R=a.i(173250);let S=(0,R.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),T=(0,R.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var U=a.i(292441);function V({open:a,onOpenChange:d,taskId:e}){let{t:g}=(0,f.useI18n)(),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useTransition)();(0,c.useEffect)(()=>{e&&a?k(async()=>{let a=await P(e);a&&i(a)}):i(null)},[e,a]);let l=h?Q.BOARD_COLUMNS.find(a=>a.id===h.status):null,m=h?Q.PRIORITY_CONFIG[h.priority]:null,n=h?.executions?.[0]??null;return(0,b.jsx)(G,{open:a,onOpenChange:d,children:(0,b.jsxs)(J,{side:"right",className:"w-[380px] sm:max-w-[380px] p-0",children:[(0,b.jsxs)(K,{className:"px-4 pt-4 pb-3 border-b border-border",children:[(0,b.jsx)(L,{className:"text-base font-semibold leading-tight pr-8",children:h?.title??""}),(0,b.jsx)(M,{className:"sr-only",children:g("taskDrawer.title")}),h&&(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[l&&(0,b.jsxs)(O.Badge,{variant:"secondary",className:"text-xs",children:[(0,b.jsx)("span",{className:`inline-block w-2 h-2 rounded-full mr-1.5 ${l.color}`}),l.label]}),m&&(0,b.jsx)(O.Badge,{variant:"secondary",className:`text-xs ${m.color}`,children:m.label})]})]}),(0,b.jsx)(N.ScrollArea,{className:"flex-1 h-[calc(100%-80px)]",children:j&&!h?(0,b.jsx)("div",{className:"flex items-center justify-center h-32 text-sm text-muted-foreground",children:g("assets.loading")}):h?(0,b.jsxs)("div",{className:"p-4 space-y-4",children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:g("taskDrawer.description")}),(0,b.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:h.description||g("taskDrawer.noDescription")})]}),h.labels.length>0&&(0,b.jsxs)("section",{children:[(0,b.jsx)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5",children:g("taskDrawer.labels")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.labels.map(a=>(0,b.jsx)(O.Badge,{variant:"secondary",className:"text-xs",style:{backgroundColor:`${a.label.color}20`,color:a.label.color,borderColor:`${a.label.color}40`},children:a.label.name},a.label.id))})]}),(0,b.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(S,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:g("taskDrawer.createdAt")}),(0,b.jsx)("span",{className:"text-foreground",children:new Date(h.createdAt).toLocaleDateString()})]}),(0,b.jsxs)("section",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(T,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:g("taskDrawer.resources")}),(0,b.jsx)("span",{className:"text-foreground",children:h._count.assets})]}),(0,b.jsxs)("section",{children:[(0,b.jsxs)("h4",{className:"text-xs font-medium text-muted-foreground mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(U.PlayCircle,{className:"h-3.5 w-3.5"}),g("taskDrawer.lastExecution")]}),n?(0,b.jsxs)("div",{className:"rounded-md border border-border p-2.5 text-sm",children:[(0,b.jsx)(O.Badge,{variant:"secondary",className:"text-xs mb-1.5",children:n.status}),n.summary&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-4",children:n.summary.slice(0,200)})]}):(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g("taskDrawer.noExecution")})]})]}):null})]})})}var W=a.i(511153);a.s(["AssetsPageClient",0,function({allWorkspaces:a,initialWorkspaceId:h,initialProjectId:j,initialAssets:k}){let l,{t:m}=(0,f.useI18n)(),[n,o]=(0,c.useTransition)(),[q,s]=(0,c.useState)(h),[t,u]=(0,c.useState)(j),[v,y]=(0,c.useState)(k),[A,B]=(0,c.useState)(null),D=a.find(a=>a.id===q),E=D?.projects??[],F=(0,c.useCallback)(a=>{a?o(async()=>{y(await i(a))}):y([])},[o]),[G,H]=(0,c.useState)(null),I=G?G.mimeType?.startsWith("image/")?"image":/\.(txt|md|json)$/i.test(G.filename)?"text":null:null,J=async a=>{try{let b=await fetch("/api/internal/assets/reveal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a.path})});if(!b.ok){let a=await b.json().catch(()=>({}));W.toast.error(a.error||"Failed to reveal file")}}catch{W.toast.error("Failed to reveal file")}},K=async a=>{let b=v.find(b=>b.id===a);confirm(m("assets.deleteConfirm",{filename:b?.filename??a}))&&(await (0,g.deleteAsset)(a),F(t))};return(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsx)(e.SubPageNav,{workspaceId:q}),(0,b.jsxs)("div",{className:"header-sm flex items-center gap-3 px-6 py-2",children:[(0,b.jsxs)(w.Select,{value:q,onValueChange:b=>b&&(b=>{if(b===q)return;s(b);let c=a.find(a=>a.id===b),d=c?.projects[0]??null;u(d?.id??null),F(d?.id??null)})(b),children:[(0,b.jsx)(w.SelectTrigger,{className:"h-8 w-auto min-w-[120px]",children:(0,b.jsx)("span",{className:"truncate",children:a.find(a=>a.id===q)?.name??q})}),(0,b.jsx)(w.SelectContent,{children:a.map(a=>(0,b.jsx)(w.SelectItem,{value:a.id,children:a.name},a.id))})]}),E.length>0&&(0,b.jsxs)(w.Select,{value:t??"",onValueChange:a=>a&&void(a!==t&&(u(a),F(a))),children:[(0,b.jsx)(w.SelectTrigger,{className:"h-8 w-auto min-w-[140px]",children:(0,b.jsx)("span",{className:"truncate",children:(l=E.find(a=>a.id===t))?l.alias?`${l.name} (${l.alias})`:l.name:""})}),(0,b.jsx)(w.SelectContent,{children:E.map(a=>(0,b.jsxs)(w.SelectItem,{value:a.id,children:[a.name,a.alias?` (${a.alias})`:""]},a.id))})]}),(0,b.jsx)("div",{className:"ml-auto",children:(0,b.jsx)(x,{allWorkspaces:a,initialWsId:q,initialProjectId:t,onUploaded:a=>{a===t&&F(t)}})})]}),(0,b.jsx)("div",{className:"flex-1 overflow-auto px-6 py-4",children:(0,b.jsxs)("div",{className:`relative ${n?"opacity-40 pointer-events-none":""} transition-opacity`,children:[n&&(0,b.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:(0,b.jsx)(d.Loader2,{className:"size-5 animate-spin text-muted-foreground"})}),0===E.length?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 py-16 text-center",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:m("assets.noProject")}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/60",children:m("assets.noProjectHint")})]}):(0,b.jsx)(r,{assets:v.map(a=>({...a,taskId:a.task?.id??null,taskTitle:a.task?.title??null})),onPreview:a=>{let b=a.mimeType?.startsWith("image/"),c=/\.(txt|md|json)$/i.test(a.filename);(b||c)&&H(a)},onReveal:J,onDelete:K,onTaskClick:B})]})}),(0,b.jsx)(z,{imageUrl:"image"===I&&G?p(G.path):null,filename:G?.filename??"",open:"image"===I,onOpenChange:a=>{a||H(null)}}),(0,b.jsx)(C,{url:"text"===I&&G?p(G.path):null,filename:G?.filename??"",open:"text"===I,onOpenChange:a=>{a||H(null)}}),(0,b.jsx)(V,{open:!!A,onOpenChange:a=>{a||B(null)},taskId:A})]})}],68482)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=tower_src_app_workspaces_%5BworkspaceId%5D_assets_assets-page-client_tsx_0zfgzhi._.js.map
|