tower-studio 0.2.15 → 0.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +56 -140
- package/.next/standalone/.next/server/app/_not-found/page.js +8 -10
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/adapters/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/browse-fs/route.js +1 -1
- package/.next/standalone/.next/server/app/api/browse-fs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/files/assets/[projectId]/[filename]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/git/route.js +1 -1
- package/.next/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assets/[projectId]/[filename]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assets/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/attachments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/assistant/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/backup/import/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/backup/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/cache/[...segments]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/install/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/stop/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/hooks/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/monaco/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/buffer/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/input/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js +1 -1
- package/.next/standalone/.next/server/app/api/internal/terminal/[taskId]/start/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/diff-patch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[taskId]/merge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/missions/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/missions/page/server-reference-manifest.json +116 -188
- package/.next/standalone/.next/server/app/missions/page.js +10 -11
- package/.next/standalone/.next/server/app/missions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/missions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page/server-reference-manifest.json +56 -140
- package/.next/standalone/.next/server/app/onboarding/page.js +8 -10
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +1 -1
- package/.next/standalone/.next/server/app/onboarding.rsc +17 -17
- package/.next/standalone/.next/server/app/onboarding.segments/_full.segment.rsc +17 -17
- package/.next/standalone/.next/server/app/onboarding.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/onboarding.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/onboarding.segments/onboarding.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +56 -140
- package/.next/standalone/.next/server/app/page.js +8 -10
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +92 -140
- package/.next/standalone/.next/server/app/settings/page.js +9 -11
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +17 -17
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +17 -17
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page/server-reference-manifest.json +190 -226
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js +9 -11
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/archive/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page/server-reference-manifest.json +194 -182
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js +9 -11
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/assets/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page/server-reference-manifest.json +106 -190
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js +8 -10
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/notes/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page/server-reference-manifest.json +162 -198
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js +9 -11
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page/server-reference-manifest.json +56 -140
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js +9 -11
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page/server-reference-manifest.json +158 -194
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js +9 -11
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/projects/[projectId]/versions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page/server-reference-manifest.json +174 -222
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js +11 -12
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/[workspaceId]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/workspaces/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/page/server-reference-manifest.json +84 -168
- package/.next/standalone/.next/server/app/workspaces/page.js +8 -10
- package/.next/standalone/.next/server/app/workspaces/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/workspaces/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/0se9_next_dist_esm_build_templates_app-route_0hrprmi.js +2 -2
- package/.next/standalone/.next/server/chunks/[externals]__0m5smhl._.js +3 -0
- package/.next/standalone/.next/server/chunks/[externals]__0m6hc.0._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-0gs-6._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03j20vp._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05se6yk._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05~g1fm._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06m1r8x._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09p152b._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_6swdz._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b-ib~7._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0gmwjkc._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0sfk~2k._.js → [root-of-the-server]__0hc9vir._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ag-i9m._.js → [root-of-the-server]__0j8xb6s._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0jf72nm._.js → [root-of-the-server]__0o3ggen._.js} +3 -3
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__124i0i-._.js → [root-of-the-server]__0qdvear._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0g2lv9x._.js → [root-of-the-server]__0r9mscb._.js} +2 -2
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0.0.jeg._.js → [root-of-the-server]__0sy6lau._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wuzc5o._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__12c9noi._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_0bkvm8c._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_0weytpz._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_0aowbzy._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/0iu._[workspaceId]_projects_[projectId]_versions_version-timeline-client_tsx_07o_kyi._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{0se9_next_0agnfwf._.js → 0se9_next_11h0sx_._.js} +4 -3
- package/.next/standalone/.next/server/chunks/ssr/{0ws9_lucide-react_dist_esm_icons_0dv2bel._.js → 0ws9_lucide-react_dist_esm_icons_0odx0ph._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0l-ci5f._.js → 0yzm_fuse_js_dist_fuse_mjs_0t4upxy._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__06ci01x._.js → [root-of-the-server]__01vzmbg._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06.muv_._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0b7rna9._.js → [root-of-the-server]__06lecy.._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__083ia54._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ss.-i7._.js → [root-of-the-server]__0_0box3._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ad6qqx._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0b8cn~b._.js → [root-of-the-server]__0b~c--d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cylhkc._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0edxb4j._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0eql-bn._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__04nht4_._.js → [root-of-the-server]__0fvk61p._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hv-2bi._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hvqdy.._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0iaw1ms._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0jg4u05._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0clm.cb._.js → [root-of-the-server]__0jvh8f3._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0k.hmw2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__08icsmr._.js → [root-of-the-server]__0lxcgi4._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__098yytg._.js → [root-of-the-server]__0p4-t7d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0-pcbjc._.js → [root-of-the-server]__0p_3kgh._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0x81w9c._.js → [root-of-the-server]__0t46zla._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ugi0gk._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y.2qv_._.js +5 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z50.82._.js +30 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0pj4ghy._.js → [root-of-the-server]__0zhkbm~._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__10t-oa1._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11_h9vs._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11zjs~k._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12so59v._.js +30 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0of7fy7._.js → _0-m6pij._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0-sia69._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_0.3p35c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{src_0j_1~da._.js → _00vtpb1._.js} +4 -4
- package/.next/standalone/.next/server/chunks/ssr/{_05_bfrg._.js → _059-b~p._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_05qfznq._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/_0_z.pz4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0acdkk1._.js +4 -0
- package/.next/standalone/.next/server/chunks/ssr/_0cj9a7y._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0yp1dzk._.js → _0f2quba._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_102gd3m._.js → _0gy-1oc._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{_06gydyh._.js → _0j7t3m6._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_0jg.s-g._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0lgx4c3._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/_0lwcwkm._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0m2o_3.._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0rk3o8h._.js → _0mg_44.._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{0t0b_zod_v4_classic_external_129tmhb.js → _0ng0eku._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0q6ax60._.js → _0r2el9k._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_0ze9ezr._.js → _0rb.w9u._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/_0rdyrfd._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_09gfkbi._.js → _0s58zbp._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0tr1l6m._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0ueyys5._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0uj61lm._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0unw1fq._.js +6 -0
- package/.next/standalone/.next/server/chunks/ssr/_0wk5s-y._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/_0y3bnq6._.js +47 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0qxei2o._.js → _0yt~8-p._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/{_00-v8~4._.js → _0~dc49z._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_112.xs5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_0eufeyj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_actions_agent-actions_ts_0~wc.sy._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_actions_file-actions_ts_0gcvqwm._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_missions_missions-client_tsx_11429lj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_onboarding_page_tsx_0xf7hpz._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_settings_page_tsx_0h9v7dr._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_assets_assets-page-client_tsx_0wyzpam._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_board-page-client_tsx_0gips66._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_workspaces_[workspaceId]_tasks_[taskId]_task-page-client_tsx_02t7blt._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_02~8o7n._.js → src_lib_0.e1lk4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0d6br1r._.js → src_lib_08rw1cx._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_05._ry~._.js → src_lib_0a3sg-k._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{src_lib_0d7-dyi._.js → src_lib_0hddinr._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0hysyqq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0mre0hs._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0nokg1l._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0occbql._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0q1is-3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0s.1_50._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0uof9w0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0y99vkm._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_119inue._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_lib_open-targets_ts_12a-_~u._.js +3 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1018 -1396
- package/.next/standalone/.next/static/chunks/{0caf_e5zdgl2s.js → 0-7jzlr9x_qsk.js} +2 -2
- package/.next/standalone/.next/static/chunks/0.rmtqo0qf0kf.js +1 -0
- package/.next/standalone/.next/static/chunks/00nc85hwc2xj-.js +1 -0
- package/.next/standalone/.next/static/chunks/02rmsyvjctps8.js +1 -0
- package/.next/standalone/.next/static/chunks/{0_8g669_.94gk.js → 03pleaq9wzi71.js} +1 -1
- package/.next/standalone/.next/static/chunks/053~sxv8~uet5.js +1 -0
- package/.next/standalone/.next/static/chunks/0_._lea4kj-kf.js +1 -0
- package/.next/standalone/.next/static/chunks/{0lve_d~~~n7y4.js → 0_we-0tskn.or.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0dbel03y5wo85.js → 0gs_-avkejs0n.js} +1 -1
- package/.next/standalone/.next/static/chunks/0k65.io~ia9.a.js +2 -0
- package/.next/standalone/.next/static/chunks/{040v3khsfu0lz.js → 0m-4oc7p23~5d.js} +2 -2
- package/.next/standalone/.next/static/chunks/0o11wn9vopcqg.js +1 -0
- package/.next/standalone/.next/static/chunks/0qc~i8~pr2lr_.js +2 -0
- package/.next/standalone/.next/static/chunks/0v_-pz~6z5kwy.js +1 -0
- package/.next/standalone/.next/static/chunks/0y42pxoc9pqth.js +1 -0
- package/.next/standalone/.next/static/chunks/0z.p-s6d729o-.js +1 -0
- package/.next/standalone/.next/static/chunks/0~8mebeyo5uub.css +1 -0
- package/.next/standalone/.next/static/chunks/10_jn899omgp~.js +1 -0
- package/.next/standalone/.next/static/chunks/{0nsoo.df~w7ez.js → 142u31.7x80ux.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0m7mzooex9.cp.js → 14ffa1fe.zktf.js} +2 -2
- package/.next/standalone/.next/static/chunks/{078tkiwi_e..w.js → 15ugy0vmnfdus.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0j94ru7oloqhp.js → 1634ulzz-40pw.js} +1 -1
- package/.next/standalone/.next/static/chunks/187ga_8mny0dq.js +1 -0
- package/.next/standalone/package.json +1 -3
- package/dist/mcp-server.cjs +62 -7
- package/package.json +1 -3
- package/.next/standalone/.next/server/chunks/[externals]__12any6r._.js +0 -3
- package/.next/standalone/.next/server/chunks/[externals]__12mj_bs._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d1dj18._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ge1~qa._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pg9aea._.js +0 -4
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s__pv8._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[externals]__0u-vzb1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.bvw5b._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06zyaub._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f6jg2_._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gaiasa._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gzi6v8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n-4zp8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oht3x8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ps55l6._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0snkwkk._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vk3eou._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vqar.7._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xg37gu._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0yr--da._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z1phoe._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~8i4lj._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__10yxmur._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11einlk._.js +0 -30
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13wezd4._.js +0 -30
- package/.next/standalone/.next/server/chunks/ssr/_0-anjz4._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/_05h.8a~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_065qc4e._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_06sgp6h._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0_l8.dg._.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/_0h~yckx._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0i4__mf._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0kkxrcc._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0ov6bwe._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0tb98gb._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0v53yq7._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0wvv86n._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0xrgx~o._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0~80adm._.js +0 -8
- package/.next/standalone/.next/server/chunks/ssr/_10dvolb._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_12o7r.n._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_13jha60._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_actions_search-code-actions_ts_0k9u5d~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0iq4x_.._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0me8mly._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0ngr9__._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0qu3epc._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0r2kk28._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0v-t4im._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0v244ym._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_0y0c60a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_lib_13f4e5p._.js +0 -3
- package/.next/standalone/.next/static/chunks/05mx9brj-f8gw.js +0 -1
- package/.next/standalone/.next/static/chunks/0600r~b6rdg~2.js +0 -1
- package/.next/standalone/.next/static/chunks/0666bg18.a5h8.js +0 -1
- package/.next/standalone/.next/static/chunks/09nbrak~rje1..js +0 -2
- package/.next/standalone/.next/static/chunks/0c.9g9ugtt_fi.js +0 -2
- package/.next/standalone/.next/static/chunks/0g62a2i4hk0pj.js +0 -1
- package/.next/standalone/.next/static/chunks/0i84hdhbjwxv3.js +0 -1
- package/.next/standalone/.next/static/chunks/0k02g-ep3ca11.js +0 -1
- package/.next/standalone/.next/static/chunks/0kqksl8_mibg1.js +0 -1
- package/.next/standalone/.next/static/chunks/0my~5x9vknsv2.js +0 -1
- package/.next/standalone/.next/static/chunks/0o~~t9_9pm-0e.css +0 -1
- package/.next/standalone/.next/static/chunks/0r6_if_1hvz-u.js +0 -1
- package/.next/standalone/.next/static/chunks/0unk0vfgdc4b1.js +0 -1
- package/.next/standalone/.next/static/chunks/0xfk375kd_~b3.js +0 -1
- /package/.next/standalone/.next/static/{9NXMylL5Ks4ehg3RIDVt3 → dUfkElN2NF1kYx7TqxHtX}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{9NXMylL5Ks4ehg3RIDVt3 → dUfkElN2NF1kYx7TqxHtX}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{9NXMylL5Ks4ehg3RIDVt3 → dUfkElN2NF1kYx7TqxHtX}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[769310,e=>{"use strict";var t=e.i(902157),r=e.i(874533),s=e.i(750227);function o(e=process.platform){return"win32"===e}function n(e){let t=e.replace(/\r\n|\r|\n/g," ");if(!t.length)return'""';let r=t.replace(/"/g,'""');return/[\s"&<>|^()]/.test(r)?`"${r}"`:r}let i=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function a(e,t={}){let r=t.cwd??process.cwd(),n=t.env??process.env,i=t.platform??process.platform;if(e.includes("/")||e.includes("\\")){let t=s.default.isAbsolute(e)?e:s.default.resolve(r,e);return await d(t,i)?t:null}let l=n.PATH??n.Path??"",c=o(i)?";":":",m=l.split(c).filter(Boolean),u=o(i)?(n.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],h=o(i)&&s.default.extname(e).length>0;for(let t of m)for(let r of o(i)?h?[s.default.join(t,e)]:u.map(r=>s.default.join(t,`${e}${r}`)):[s.default.join(t,e)])if(await d(r,i))return r;return null}let l=e=>(0,r.execSync)(e,{encoding:"utf-8",timeout:5e3});function c(e,t=process.platform,n=l){if(s.default.extname(e)||e.includes("/")||e.includes("\\"))return e;if(!o(t)){try{let t=(0,r.execFileSync)("which",[e],{encoding:"utf-8",timeout:5e3}).trim();if(t)return t}catch{}return e}try{let t=n(`where ${e}`).trim().split("\n").map(e=>e.trim()).filter(Boolean),r=t.find(e=>/\.(cmd|bat|exe)$/i.test(e));if(r)return r;if(t.length>0)return t[0]}catch{}return e}async function m(e,t,r={}){let s=r.env??process.env,o=r.platform??process.platform;return u(await a(e,r)??e,t,s,o)}function u(e,t,r,i){if(!o(i))return{command:e,args:t};let a=s.default.extname(e).toLowerCase();return".cmd"===a||".bat"===a||".com"===a?{command:r.ComSpec||"cmd.exe",args:["/d","/s","/c",[n(e),...t.map(n)].join(" ")]}:{command:e,args:t}}async function d(e,r=process.platform){try{return await t.promises.access(e,o(r)?t.constants.F_OK:t.constants.X_OK),!0}catch{return!1}}async function h(e=process.platform){return o(e)?f():p()}async function p(){try{let e=await t.promises.readFile("/etc/shells","utf-8"),r=[],o=new Map;for(let t of e.split("\n")){let e=t.replace(/#.*/,"").trim();if(!e||!e.startsWith("/")||!await d(e))continue;let n=s.default.basename(e),i=o.get(n)??0;o.set(n,i+1),i>0&&(n=`${n} (${i+1})`),r.push({name:n,path:e})}return r}catch{let e=[];for(let t of["/bin/zsh","/bin/bash","/bin/sh"])await d(t)&&e.push({name:s.default.basename(t),path:t});return e}}async function f(){let e=[],t=[],r=await a("git",{platform:"win32"});if(r){let e=s.default.resolve(s.default.dirname(r),"..","..");t.push(s.default.join(e,"bin","bash.exe"),s.default.join(e,"usr","bin","bash.exe"))}for(let e of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?s.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))t.push(s.default.join(e,"Git","bin","bash.exe"),s.default.join(e,"Git","usr","bin","bash.exe"));let o=process.env.USERPROFILE??"";for(let r of(o&&t.push(s.default.join(o,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&t.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),t))if(await d(r,"win32")){e.push({name:"Git Bash",path:r});break}let n=await a("pwsh",{platform:"win32"});n&&e.push({name:"PowerShell",path:n});let i=process.env.windir??"C:\\WINDOWS",l=s.default.join(i,"System32","WindowsPowerShell","v1.0","powershell.exe");await d(l,"win32")&&e.push({name:"Windows PowerShell",path:l});let c=process.env.ComSpec??s.default.join(i,"System32","cmd.exe");return await d(c,"win32")&&e.push({name:"Command Prompt",path:c}),e}let g=[{name:"Terminal",bundleName:"Terminal"},{name:"iTerm2",bundleName:"iTerm"},{name:"Warp",bundleName:"Warp"},{name:"Alacritty",bundleName:"Alacritty"},{name:"WezTerm",bundleName:"WezTerm"},{name:"kitty",bundleName:"kitty"},{name:"Hyper",bundleName:"Hyper"}];async function k(e=process.platform){if("darwin"===e){let t=[];for(let r of g)await d(`/Applications/${r.bundleName}.app`,e)&&t.push({name:r.name,value:r.bundleName});return t}if(o(e)){let t=[],r=await a("wt",{platform:e});return r&&t.push({name:"Windows Terminal",value:r}),t}return[]}e.s(["detectShells",0,h,"detectTerminalApps",0,k,"ensurePathInEnv",0,function(e,t=process.platform){let r=o(t)?"Path":"PATH";return(e.PATH??e.Path??"").length>0?e:{...e,[r]:function(e=process.platform){return o(e)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(t)}},"resolveCommandPath",0,a,"resolveCommandPathSync",0,c,"resolveSpawnTarget",0,m,"resolveSpawnTargetSync",0,function(e,t,r=process.platform,s){return u(c(e,r,s),t,process.env,r)},"stripClaudeNestingEnv",0,function(e){let t={...e};for(let e of i)delete t[e];return t}])},53674,e=>{"use strict";e.s(["getPackageRoot",0,function(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}])},472129,e=>{"use strict";var t=e.i(902157),r=e.i(660526),s=e.i(750227),o=e.i(769310),n=e.i(53674);let i=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];e.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(e){let t=["--dangerously-skip-permissions"];e.extraArgs?.length&&t.push(...e.extraArgs),e.resumeSessionId?t.push("--resume",e.resumeSessionId):e.continueLatest?t.push("--continue"):e.prompt&&t.push(e.prompt);let r={...e.envOverrides??{}};return{command:this.resolveCommand(),args:t,env:r}}buildEnvOverrides(e){let t={TOWER_TASK_ID:e.taskId,TOWER_TASK_TITLE:e.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:e.apiUrl};return e.callbackUrl&&(t.CALLBACK_URL=e.callbackUrl),t}async installHooks(e){try{let e=this.readSettings(),t=e.hooks??{},r=(0,n.getPackageRoot)().replace(/\\/g,"/"),o=s.join(r,"scripts","session-start-hook.js").replace(/\\/g,"/"),i=s.join(r,"scripts","post-tool-hook.js").replace(/\\/g,"/"),a=s.join(r,"scripts","stop-hook.js").replace(/\\/g,"/"),l=!1;return l=this.upsertHook(t,"SessionStart","session-start-hook.js",{hooks:[{command:`node "${o}"`,timeout:5,type:"command"}]})||l,l=this.upsertHook(t,"PostToolUse","post-tool-hook.js",{hooks:[{command:`node "${i}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"})||l,(l=this.upsertHook(t,"Stop","stop-hook.js",{hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]})||l)&&(e.hooks=t,this.writeSettings(e)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(e){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:e instanceof Error?e.message:String(e)}}}async repairHookPaths(){try{let e=this.readSettings(),t=e.hooks??{},r=(0,n.getPackageRoot)().replace(/\\/g,"/"),o=!1;for(let[e,n]of[["SessionStart","session-start-hook.js"],["PostToolUse","post-tool-hook.js"],["Stop","stop-hook.js"]]){let i=this.getHookArray(t,e),a=i.findIndex(e=>e?.hooks?.some?.(e=>e.command?.includes(n)));if(a<0)continue;let l=s.join(r,"scripts",n).replace(/\\/g,"/"),c=`node "${l}"`,m=i[a]?.hooks?.[0];m&&m.command!==c&&(m.command=c,t[e]=i,o=!0)}o&&(e.hooks=t,this.writeSettings(e))}catch{}}upsertHook(e,t,r,s){let o=this.getHookArray(e,t),n=s?.hooks?.[0]?.command,i=o.findIndex(e=>e?.hooks?.some?.(e=>e.command?.includes(r)));if(i>=0){if(o[i]?.hooks?.[0]?.command===n)return!1;o.splice(i,1)}return o.push(s),e[t]=o,!0}async uninstallHooks(){try{let e=this.readSettings(),t=e.hooks??{},r=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let e of["SessionStart","PostToolUse","Stop"]){let s=this.getHookArray(t,e);t[e]=s.filter(e=>!e.hooks?.some(e=>r.some(t=>e.command?.includes(t))))}return e.hooks=t,this.writeSettings(e),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(e){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:e instanceof Error?e.message:String(e)}}}async isHooksInstalled(){let e=this.readSettings().hooks??{},t=this.getHookArray(e,"PostToolUse");return this.hasHook(t,"post-tool-hook.js")}async installMcp(e,t={}){let r=t.scope??"user",s={command:e.command,args:e.args};e.env&&Object.keys(e.env).length>0&&(s.env=e.env);let o=this.resolveCommand(),n=["mcp","add-json","-s",r,e.name,JSON.stringify(s)];try{return await this.runCli(o,["mcp","remove","-s",r,e.name],t.cwd).catch(()=>{}),await this.runCli(o,n,t.cwd),{ok:!0,method:"cli",detail:`${o} ${n.join(" ")}`}}catch(e){return{ok:!1,method:"cli",detail:`${o} ${n.join(" ")}`,error:e instanceof Error?e.message:String(e)}}}async uninstallMcp(e,t={}){let r=t.scope??"user",s=this.resolveCommand(),o=["mcp","remove","-s",r,e];try{return await this.runCli(s,o,t.cwd),{ok:!0,method:"cli",detail:`${s} ${o.join(" ")}`}}catch(e){return{ok:!1,method:"cli",detail:`${s} ${o.join(" ")}`,error:e instanceof Error?e.message:String(e)}}}async isMcpInstalled(e,t={}){let r=this.resolveCommand();try{return await this.runCli(r,["mcp","get",e],t.cwd,5e3),!0}catch{return!1}}async installSkill(e,r){let o=s.join(this.getConfigDir(),"skills",e);try{if(!t.existsSync(r))return{ok:!1,method:"symlink",detail:o,error:`Source skill dir does not exist: ${r}`};t.mkdirSync(s.dirname(o),{recursive:!0});let e=await t.promises.lstat(o).catch(()=>null);if(e)if(!(e.isSymbolicLink()||"win32"===process.platform&&e.isDirectory()))return{ok:!1,method:"symlink",detail:o,error:`Refusing to overwrite non-symlink at ${o}`};else try{let e=await t.promises.readlink(o);if(s.resolve(e)===s.resolve(r))return{ok:!0,method:"symlink",detail:`${o} → ${r} (already)`};await t.promises.unlink(o)}catch{if(!e.isSymbolicLink())return{ok:!1,method:"symlink",detail:o,error:`Refusing to overwrite non-symlink at ${o}`}}return await t.promises.symlink(r,o,"dir"),{ok:!0,method:"symlink",detail:`${o} → ${r}`}}catch(e){return{ok:!1,method:"symlink",detail:o,error:e instanceof Error?e.message:String(e)}}}async uninstallSkill(e){let r=s.join(this.getConfigDir(),"skills",e);try{let e=await t.promises.lstat(r).catch(()=>null);if(!e)return{ok:!0,method:"symlink",detail:`${r} (already absent)`};if(!e.isSymbolicLink())return{ok:!1,method:"symlink",detail:r,error:`Refusing to remove non-symlink at ${r}`};return await t.promises.unlink(r),{ok:!0,method:"symlink",detail:r}}catch(e){return{ok:!1,method:"symlink",detail:r,error:e instanceof Error?e.message:String(e)}}}async isSkillInstalled(e,r){let o=s.join(this.getConfigDir(),"skills",e);try{if(!(await t.promises.lstat(o)).isSymbolicLink())return!1;if(!r)return!0;let e=await t.promises.readlink(o),n=s.isAbsolute(e)?e:s.resolve(s.dirname(o),e);return s.resolve(n)===s.resolve(r)}catch{return!1}}async runCli(t,r,s,o=1e4){let{execFile:n}=await e.A(482848),{promisify:i}=await e.A(268548),a=i(n),{stdout:l}=await a(t,r,{cwd:s,timeout:o});return l}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:t}=await e.A(144264),{promisify:r}=await e.A(534777),{resolveSpawnTarget:s}=await e.A(200628),o=r(t),n=await s(this.resolveCommand(),["--version"]),{stdout:i}=await o(n.command,n.args,{timeout:5e3});return i.trim()||null}catch{return null}}async getModels(){return i}getConfigDir(){return s.join(r.homedir(),".claude")}getSettingsPath(){return s.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return s.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(e){return{command:this.resolveCommand(),args:["--print",e,"--output-format","stream-json","--verbose"]}}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,o.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(t.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(e){let r=this.getConfigDir();t.existsSync(r)||t.mkdirSync(r,{recursive:!0}),t.writeFileSync(this.getSettingsPath(),JSON.stringify(e,null,2),"utf-8")}getHookArray(e,t){let r=e[t];return Array.isArray(r)?r:[]}hasHook(e,t){return e.some(e=>e.hooks?.some(e=>e.command?.includes(t)))}}])}];
|
|
1
|
+
module.exports=[769310,e=>{"use strict";var t=e.i(902157),r=e.i(874533),n=e.i(750227);function o(e=process.platform){return"win32"===e}function s(e){let t=e.replace(/\r\n|\r|\n/g," ");if(!t.length)return'""';let r=t.replace(/"/g,'""');return/[\s"&<>|^()]/.test(r)?`"${r}"`:r}let i=["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE_SESSION","CLAUDE_CODE_PARENT_SESSION"];async function a(e,t={}){let r=t.cwd??process.cwd(),s=t.env??process.env,i=t.platform??process.platform;if(e.includes("/")||e.includes("\\")){let t=n.default.isAbsolute(e)?e:n.default.resolve(r,e);return await d(t,i)?t:null}let l=s.PATH??s.Path??"",m=o(i)?";":":",c=l.split(m).filter(Boolean),u=o(i)?(s.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";").filter(Boolean):[""],h=o(i)&&n.default.extname(e).length>0;for(let t of c)for(let r of o(i)?h?[n.default.join(t,e)]:u.map(r=>n.default.join(t,`${e}${r}`)):[n.default.join(t,e)])if(await d(r,i))return r;return null}let l=e=>(0,r.execSync)(e,{encoding:"utf-8",timeout:5e3});function m(e,t=process.platform,s=l){if(n.default.extname(e)||e.includes("/")||e.includes("\\"))return e;if(!o(t)){try{let t=(0,r.execFileSync)("which",[e],{encoding:"utf-8",timeout:5e3}).trim();if(t)return t}catch{}return e}try{let t=s(`where ${e}`).trim().split("\n").map(e=>e.trim()).filter(Boolean),r=t.find(e=>/\.(cmd|bat|exe)$/i.test(e));if(r)return r;if(t.length>0)return t[0]}catch{}return e}async function c(e,t,r={}){let n=r.env??process.env,o=r.platform??process.platform;return u(await a(e,r)??e,t,n,o)}function u(e,t,r,i){if(!o(i))return{command:e,args:t};let a=n.default.extname(e).toLowerCase();return".cmd"===a||".bat"===a||".com"===a?{command:r.ComSpec||"cmd.exe",args:["/d","/s","/c",[s(e),...t.map(s)].join(" ")]}:{command:e,args:t}}async function d(e,r=process.platform){try{return await t.promises.access(e,o(r)?t.constants.F_OK:t.constants.X_OK),!0}catch{return!1}}async function h(e=process.platform){return o(e)?f():p()}async function p(){try{let e=await t.promises.readFile("/etc/shells","utf-8"),r=[],o=new Map;for(let t of e.split("\n")){let e=t.replace(/#.*/,"").trim();if(!e||!e.startsWith("/")||!await d(e))continue;let s=n.default.basename(e),i=o.get(s)??0;o.set(s,i+1),i>0&&(s=`${s} (${i+1})`),r.push({name:s,path:e})}return r}catch{let e=[];for(let t of["/bin/zsh","/bin/bash","/bin/sh"])await d(t)&&e.push({name:n.default.basename(t),path:t});return e}}async function f(){let e=[],t=[],r=await a("git",{platform:"win32"});if(r){let e=n.default.resolve(n.default.dirname(r),"..","..");t.push(n.default.join(e,"bin","bash.exe"),n.default.join(e,"usr","bin","bash.exe"))}for(let e of[process.env.ProgramW6432,process.env.ProgramFiles,process.env["ProgramFiles(x86)"],process.env.LocalAppData?n.default.join(process.env.LocalAppData,"Programs"):null].filter(Boolean))t.push(n.default.join(e,"Git","bin","bash.exe"),n.default.join(e,"Git","usr","bin","bash.exe"));let o=process.env.USERPROFILE??"";for(let r of(o&&t.push(n.default.join(o,"scoop","apps","git","current","bin","bash.exe")),process.env.CLAUDE_CODE_GIT_BASH_PATH&&t.unshift(process.env.CLAUDE_CODE_GIT_BASH_PATH),t))if(await d(r,"win32")){e.push({name:"Git Bash",path:r});break}let s=await a("pwsh",{platform:"win32"});s&&e.push({name:"PowerShell",path:s});let i=process.env.windir??"C:\\WINDOWS",l=n.default.join(i,"System32","WindowsPowerShell","v1.0","powershell.exe");await d(l,"win32")&&e.push({name:"Windows PowerShell",path:l});let m=process.env.ComSpec??n.default.join(i,"System32","cmd.exe");return await d(m,"win32")&&e.push({name:"Command Prompt",path:m}),e}let g=[{name:"Terminal",bundleName:"Terminal"},{name:"iTerm2",bundleName:"iTerm"},{name:"Warp",bundleName:"Warp"},{name:"Alacritty",bundleName:"Alacritty"},{name:"WezTerm",bundleName:"WezTerm"},{name:"kitty",bundleName:"kitty"},{name:"Hyper",bundleName:"Hyper"}];async function k(e=process.platform){if("darwin"===e){let t=[];for(let r of g)await d(`/Applications/${r.bundleName}.app`,e)&&t.push({name:r.name,value:r.bundleName});return t}if(o(e)){let t=[],r=await a("wt",{platform:e});return r&&t.push({name:"Windows Terminal",value:r}),t}return[]}let y=[{name:"VS Code",command:"code"},{name:"VS Code Insiders",command:"code-insiders"},{name:"Cursor",command:"cursor"},{name:"Windsurf",command:"windsurf"},{name:"Zed",command:"zed"},{name:"Sublime Text",command:"subl"},{name:"IntelliJ IDEA",command:"idea"},{name:"WebStorm",command:"webstorm"},{name:"PyCharm",command:"pycharm"},{name:"GoLand",command:"goland"},{name:"RubyMine",command:"rubymine"},{name:"PhpStorm",command:"phpstorm"},{name:"CLion",command:"clion"},{name:"Rider",command:"rider"}];async function S(e=process.platform){let t=[];for(let r of y)await a(r.command,{platform:e})&&t.push({name:r.name,command:r.command});return t}e.s(["detectEditors",0,S,"detectShells",0,h,"detectTerminalApps",0,k,"ensurePathInEnv",0,function(e,t=process.platform){let r=o(t)?"Path":"PATH";return(e.PATH??e.Path??"").length>0?e:{...e,[r]:function(e=process.platform){return o(e)?"C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem":"/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin"}(t)}},"resolveCommandPath",0,a,"resolveCommandPathSync",0,m,"resolveSpawnTarget",0,c,"resolveSpawnTargetSync",0,function(e,t,r=process.platform,n){return u(m(e,r,n),t,process.env,r)},"stripClaudeNestingEnv",0,function(e){let t={...e};for(let e of i)delete t[e];return t}])},53674,e=>{"use strict";e.s(["getPackageRoot",0,function(){return process.env.TOWER_PACKAGE_ROOT||process.cwd()}])},472129,e=>{"use strict";var t=e.i(902157),r=e.i(660526),n=e.i(750227),o=e.i(769310),s=e.i(53674);let i=["sonnet","opus","haiku","claude-sonnet-4-6","claude-opus-4-6","claude-haiku-4-5-20251001"];e.s(["ClaudeCliAdapter",0,class{buildSpawnArgs(e){let t=["--dangerously-skip-permissions"];e.extraArgs?.length&&t.push(...e.extraArgs),e.resumeSessionId?t.push("--resume",e.resumeSessionId):e.continueLatest?t.push("--continue"):e.prompt&&t.push(e.prompt);let r={...e.envOverrides??{}};return{command:this.resolveCommand(),args:t,env:r}}buildEnvOverrides(e){let t={TOWER_TASK_ID:e.taskId,TOWER_TASK_TITLE:e.taskTitle,TOWER_STARTED_AT:new Date().toISOString(),TOWER_API_URL:e.apiUrl};return e.callbackUrl&&(t.CALLBACK_URL=e.callbackUrl),t}async installHooks(e){try{let e=this.readSettings(),t=e.hooks??{},r=(0,s.getPackageRoot)().replace(/\\/g,"/"),o=n.join(r,"scripts","session-start-hook.js").replace(/\\/g,"/"),i=n.join(r,"scripts","post-tool-hook.js").replace(/\\/g,"/"),a=n.join(r,"scripts","stop-hook.js").replace(/\\/g,"/"),l=!1;return l=this.upsertHook(t,"SessionStart","session-start-hook.js",{hooks:[{command:`node "${o}"`,timeout:5,type:"command"}]})||l,l=this.upsertHook(t,"PostToolUse","post-tool-hook.js",{hooks:[{command:`node "${i}"`,timeout:10,type:"command"}],matcher:"Write|Edit|MultiEdit"})||l,(l=this.upsertHook(t,"Stop","stop-hook.js",{hooks:[{command:`node "${a}"`,timeout:5,type:"command"}]})||l)&&(e.hooks=t,this.writeSettings(e)),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(e){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:e instanceof Error?e.message:String(e)}}}async repairHookPaths(){try{let e=this.readSettings(),t=e.hooks??{},r=(0,s.getPackageRoot)().replace(/\\/g,"/"),o=!1;for(let[e,s]of[["SessionStart","session-start-hook.js"],["PostToolUse","post-tool-hook.js"],["Stop","stop-hook.js"]]){let i=this.getHookArray(t,e),a=i.findIndex(e=>e?.hooks?.some?.(e=>e.command?.includes(s)));if(a<0)continue;let l=n.join(r,"scripts",s).replace(/\\/g,"/"),m=`node "${l}"`,c=i[a]?.hooks?.[0];c&&c.command!==m&&(c.command=m,t[e]=i,o=!0)}o&&(e.hooks=t,this.writeSettings(e))}catch{}}upsertHook(e,t,r,n){let o=this.getHookArray(e,t),s=n?.hooks?.[0]?.command,i=o.findIndex(e=>e?.hooks?.some?.(e=>e.command?.includes(r)));if(i>=0){if(o[i]?.hooks?.[0]?.command===s)return!1;o.splice(i,1)}return o.push(n),e[t]=o,!0}async uninstallHooks(){try{let e=this.readSettings(),t=e.hooks??{},r=["session-start-hook.js","post-tool-hook.js","stop-hook.js"];for(let e of["SessionStart","PostToolUse","Stop"]){let n=this.getHookArray(t,e);t[e]=n.filter(e=>!e.hooks?.some(e=>r.some(t=>e.command?.includes(t))))}return e.hooks=t,this.writeSettings(e),{ok:!0,method:"file",detail:this.getSettingsPath()}}catch(e){return{ok:!1,method:"file",detail:this.getSettingsPath(),error:e instanceof Error?e.message:String(e)}}}async isHooksInstalled(){let e=this.readSettings().hooks??{},t=this.getHookArray(e,"PostToolUse");return this.hasHook(t,"post-tool-hook.js")}async installMcp(e,t={}){let r=t.scope??"user",n={command:e.command,args:e.args};e.env&&Object.keys(e.env).length>0&&(n.env=e.env);let o=this.resolveCommand(),s=["mcp","add-json","-s",r,e.name,JSON.stringify(n)];try{return await this.runCli(o,["mcp","remove","-s",r,e.name],t.cwd).catch(()=>{}),await this.runCli(o,s,t.cwd),{ok:!0,method:"cli",detail:`${o} ${s.join(" ")}`}}catch(e){return{ok:!1,method:"cli",detail:`${o} ${s.join(" ")}`,error:e instanceof Error?e.message:String(e)}}}async uninstallMcp(e,t={}){let r=t.scope??"user",n=this.resolveCommand(),o=["mcp","remove","-s",r,e];try{return await this.runCli(n,o,t.cwd),{ok:!0,method:"cli",detail:`${n} ${o.join(" ")}`}}catch(e){return{ok:!1,method:"cli",detail:`${n} ${o.join(" ")}`,error:e instanceof Error?e.message:String(e)}}}async isMcpInstalled(e,t={}){let r=this.resolveCommand();try{return await this.runCli(r,["mcp","get",e],t.cwd,5e3),!0}catch{return!1}}async installSkill(e,r){let o=n.join(this.getConfigDir(),"skills",e);try{if(!t.existsSync(r))return{ok:!1,method:"symlink",detail:o,error:`Source skill dir does not exist: ${r}`};t.mkdirSync(n.dirname(o),{recursive:!0});let e=await t.promises.lstat(o).catch(()=>null);if(e)if(!(e.isSymbolicLink()||"win32"===process.platform&&e.isDirectory()))return{ok:!1,method:"symlink",detail:o,error:`Refusing to overwrite non-symlink at ${o}`};else try{let e=await t.promises.readlink(o);if(n.resolve(e)===n.resolve(r))return{ok:!0,method:"symlink",detail:`${o} → ${r} (already)`};await t.promises.unlink(o)}catch{if(!e.isSymbolicLink())return{ok:!1,method:"symlink",detail:o,error:`Refusing to overwrite non-symlink at ${o}`}}return await t.promises.symlink(r,o,"dir"),{ok:!0,method:"symlink",detail:`${o} → ${r}`}}catch(e){return{ok:!1,method:"symlink",detail:o,error:e instanceof Error?e.message:String(e)}}}async uninstallSkill(e){let r=n.join(this.getConfigDir(),"skills",e);try{let e=await t.promises.lstat(r).catch(()=>null);if(!e)return{ok:!0,method:"symlink",detail:`${r} (already absent)`};if(!e.isSymbolicLink())return{ok:!1,method:"symlink",detail:r,error:`Refusing to remove non-symlink at ${r}`};return await t.promises.unlink(r),{ok:!0,method:"symlink",detail:r}}catch(e){return{ok:!1,method:"symlink",detail:r,error:e instanceof Error?e.message:String(e)}}}async isSkillInstalled(e,r){let o=n.join(this.getConfigDir(),"skills",e);try{if(!(await t.promises.lstat(o)).isSymbolicLink())return!1;if(!r)return!0;let e=await t.promises.readlink(o),s=n.isAbsolute(e)?e:n.resolve(n.dirname(o),e);return n.resolve(s)===n.resolve(r)}catch{return!1}}async runCli(t,r,n,o=1e4){let{execFile:s}=await e.A(482848),{promisify:i}=await e.A(268548),a=i(s),{stdout:l}=await a(t,r,{cwd:n,timeout:o});return l}async isAvailable(){return null!==await this.getVersion()}async getVersion(){try{let{execFile:t}=await e.A(144264),{promisify:r}=await e.A(534777),{resolveSpawnTarget:n}=await e.A(200628),o=r(t),s=await n(this.resolveCommand(),["--version"]),{stdout:i}=await o(s.command,s.args,{timeout:5e3});return i.trim()||null}catch{return null}}async getModels(){return i}getConfigDir(){return n.join(r.homedir(),".claude")}getSettingsPath(){return n.join(this.getConfigDir(),"settings.json")}getSessionsDir(){return n.join(this.getConfigDir(),"projects")}getApiKeyInfo(){return{envVar:"ANTHROPIC_API_KEY",required:!1}}buildHelloProbeArgs(e){return{command:this.resolveCommand(),args:["--print",e,"--output-format","stream-json","--verbose"]}}resolveCommand(){return process.env.CLAUDE_CODE_PATH?process.env.CLAUDE_CODE_PATH:(0,o.resolveCommandPathSync)("claude")}readSettings(){try{return JSON.parse(t.readFileSync(this.getSettingsPath(),"utf-8"))}catch{return{}}}writeSettings(e){let r=this.getConfigDir();t.existsSync(r)||t.mkdirSync(r,{recursive:!0}),t.writeFileSync(this.getSettingsPath(),JSON.stringify(e,null,2),"utf-8")}getHookArray(e,t){let r=e[t];return Array.isArray(r)?r:[]}hasHook(e,t){return e.some(e=>e.hooks?.some(e=>e.command?.includes(t)))}}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_lib_0aowbzy._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[144016,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(553798),e=a.i(634910),f=a.i(774881),g=a.i(607219),h=a.i(10390),i=a.i(269280),j=a.i(711796);let k=(0,j.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var l=a.i(699570),m=a.i(269876),n=a.i(157551),o=a.i(577565),p=a.i(207339),q=a.i(881107),r=a.i(394869),s=a.i(347165),t=a.i(350739);let u=(0,j.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var v=a.i(690251);let w=(0,j.default)("package-check",[["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m16 17 2 2 4-4",key:"uh5qu3"}],["path",{d:"M21 11.127V8a2 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.729l7 4a2 2 0 0 0 2 .001l1.32-.753",key:"kpkbpo"}],["path",{d:"M3.29 7 12 12l8.71-5",key:"19ckod"}],["path",{d:"m7.5 4.27 8.997 5.148",key:"9yrvtv"}]]),x=(0,j.default)("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);var y=a.i(785259),z=a.i(521007),A=a.i(951192);let B=["bg-sky-500/20 text-sky-300 border border-sky-500/30","bg-amber-500/20 text-amber-300 border border-amber-500/30","bg-violet-500/20 text-violet-300 border border-violet-500/30","bg-emerald-500/20 text-emerald-300 border border-emerald-500/30","bg-rose-500/20 text-rose-300 border border-rose-500/30","bg-cyan-500/20 text-cyan-300 border border-cyan-500/30","bg-indigo-500/20 text-indigo-300 border border-indigo-500/30"];function C(a){return B[function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;return b}(a)%B.length]}let D={PLANNED:"bg-slate-500/20 text-slate-300 border border-slate-500/30",ACTIVE:"bg-emerald-500/20 text-emerald-300 border border-emerald-500/30",RELEASED:"bg-zinc-500/20 text-zinc-400 border border-zinc-500/30"};function E({name:a}){let{t:c}=(0,A.useI18n)();return a?(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${C(a)}`,children:a}):(0,b.jsx)("span",{className:"inline-flex items-center rounded-full border border-border bg-muted/40 px-2 py-0.5 text-xs font-medium text-muted-foreground",children:c("version.type.uncategorized")})}function F({status:a}){let{t:c}=(0,A.useI18n)();return(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${D[a]}`,children:c(`version.status.${a}`)})}function G(a){if(!a)return"";let b="string"==typeof a?new Date(a):a;if(isNaN(b.getTime()))return"";let c=String(b.getMonth()+1).padStart(2,"0"),d=String(b.getDate()).padStart(2,"0");return`${c}-${d}`}let H=Object.fromEntries(z.BOARD_COLUMNS.map(a=>[a.id,a.color]));function I({children:a,className:c}){return(0,b.jsx)("span",{className:`inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/40 px-2 py-0.5 text-xs text-muted-foreground ${c??""}`,children:a})}function J({task:a,onOpenDetail:d}){let{t:e}=(0,A.useI18n)(),[f,g]=(0,c.useState)(!1),i="CANCELLED"===a.status?"text-muted-foreground line-through decoration-muted-foreground/40":"DONE"===a.status?"text-muted-foreground":"text-foreground";return(0,b.jsxs)("div",{className:"rounded-[10px]",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>g(a=>!a),className:"flex w-full items-center gap-2.5 rounded-[10px] px-2.5 py-2.5 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,b.jsx)(h.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${f?"rotate-90":""}`}),(0,b.jsx)("span",{className:`h-2 w-2 flex-none rounded-full ${H[a.status]??"bg-slate-400"}`}),(0,b.jsx)("span",{className:`text-[13.5px] font-medium ${i}`,children:a.title}),a.labels.map(({label:a})=>(0,b.jsx)("span",{className:"rounded-full border border-border px-1.5 py-px text-[10.5px] text-muted-foreground",style:a.color?{borderColor:a.color+"55",color:a.color}:void 0,children:a.name},a.id)),(0,b.jsx)("span",{className:"flex-1"}),(0,b.jsx)("span",{className:"flex w-16 flex-none justify-center",children:(0,b.jsx)("span",{className:`rounded-[5px] px-1.5 py-px text-[10.5px] font-bold ${z.PRIORITY_CONFIG[a.priority]?.color??z.PRIORITY_CONFIG.LOW.color}`,children:a.priority})}),(0,b.jsx)("span",{className:"h-3 w-px bg-border flex-none"}),(0,b.jsxs)("span",{className:"flex w-[72px] flex-none items-center gap-1.5",children:[(0,b.jsx)("span",{className:`h-1.5 w-1.5 flex-none rounded-full ${H[a.status]??"bg-slate-400"}`}),(0,b.jsx)("span",{className:"truncate text-[10.5px] text-muted-foreground",children:e(`version.taskStatus.${a.status}`)})]}),(0,b.jsx)("span",{className:"h-3 w-px bg-border flex-none"}),(0,b.jsx)("span",{className:"flex w-6 flex-none justify-center",children:d&&(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 text-muted-foreground",onClick:b=>{b.stopPropagation(),d(a.id)}}),children:(0,b.jsx)(x,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(y.TooltipContent,{children:e("version.detail")})]})})]}),f&&(0,b.jsxs)("div",{className:"flex flex-col gap-2.5 pb-3 pl-[30px] pr-3 pt-1",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(s.FolderOpen,{className:"h-3 w-3 text-muted-foreground/60"}),(0,b.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wide text-muted-foreground/60",children:e("version.resources")})]}),0===a.assets.length?(0,b.jsx)("p",{className:"text-[12px] italic text-muted-foreground/60",children:e("version.empty.resources")}):(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:a.assets.map(a=>{var c;let d=a.mimeType?.startsWith("image/");return(0,b.jsxs)("span",{className:"inline-flex cursor-pointer items-center gap-1.5 rounded-lg border border-border bg-background px-2.5 py-1.5 text-[12px] text-foreground shadow-sm transition-colors hover:border-primary/50",children:[d?(0,b.jsx)(u,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,b.jsx)(t.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,b.jsx)("span",{children:a.filename}),null!=a.size&&(0,b.jsx)("span",{className:"text-[11px] text-muted-foreground/60",children:(c=a.size)<1024?`${c} B`:c<1048576?`${Math.round(c/1024)} KB`:`${(c/1048576).toFixed(1)} MB`})]},a.id)})})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(t.FileText,{className:"h-3 w-3 text-muted-foreground/60"}),(0,b.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wide text-muted-foreground/60",children:e("version.notes")})]}),0===a.notes.length?(0,b.jsx)("p",{className:"text-[12px] italic text-muted-foreground/60",children:e("version.empty.notes")}):(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:a.notes.map(a=>(0,b.jsx)("div",{className:"rounded-lg border border-border border-l-violet-500/50 bg-background px-2.5 py-2 shadow-sm [border-left-width:3px]",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[12.5px] font-semibold text-foreground",children:a.title}),a.category&&(0,b.jsx)("span",{className:"rounded-[5px] border border-violet-500/30 bg-violet-500/15 px-1.5 py-px text-[10px] font-bold text-violet-300",children:a.category})]})},a.id))})]})]})]})}function K({version:a,diffStat:d,onEdit:e,onRelease:f,onViewDiff:g,onOpenTaskDetail:i}){var j;let k,{t:m}=(0,A.useI18n)(),[s,t]=(0,c.useState)(a.isCurrent),u="RELEASED"===a.status,x="ACTIVE"===a.status,z=a.tasks.length,B=a.tasks.filter(a=>"DONE"===a.status).length,C=!!(a.releaseCommit||d),D=(k=`${z} ${m("version.tasksCount")}`,B>0&&B<z?`${k} \xb7 ${B} ${m("version.doneCount")}`:B>0&&B===z?`${k} \xb7 ${m("version.allDone")}`:k);return(0,b.jsxs)("div",{className:["overflow-hidden rounded-[14px] border bg-card shadow-sm transition-shadow duration-150 hover:shadow-md",a.isCurrent?"border-border border-l-2 border-l-primary ring-1 ring-primary/20":"border-border",u?"opacity-[.96]":""].filter(Boolean).join(" "),children:[(0,b.jsx)("button",{type:"button",onClick:()=>t(a=>!a),className:"w-full text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,b.jsxs)("div",{className:"px-4 py-3.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(h.ChevronRight,{className:`h-4 w-4 flex-none text-muted-foreground/60 transition-transform duration-150 ${s?"rotate-90":""}`}),(0,b.jsx)("span",{className:"font-mono text-[14.5px] font-bold text-foreground",children:a.number}),(0,b.jsx)("span",{className:"text-[14.5px] font-semibold text-foreground",children:a.name}),(0,b.jsx)(E,{name:a.type?.name??null}),(0,b.jsx)(F,{status:a.status}),a.isCurrent&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-primary/30 bg-primary/15 px-2.5 py-0.5 text-[11px] font-bold text-primary shadow-sm",children:[(0,b.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-primary opacity-90"}),m("version.current")]}),(0,b.jsx)("span",{className:"flex-1"}),z>0&&(0,b.jsx)("span",{className:"text-[11.5px] text-muted-foreground",children:D}),(0,b.jsxs)("span",{className:"flex items-center gap-1",onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),children:[e&&(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground",onClick:()=>e(a.id)}),children:(0,b.jsx)(v.Pencil,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(y.TooltipContent,{children:m("version.edit")})]}),x&&f&&(0,b.jsxs)(l.Button,{variant:"outline",className:"h-7 px-2 text-xs font-semibold",onClick:()=>f(a.id),children:[(0,b.jsx)(w,{className:"h-3.5 w-3.5"}),m("version.release")]})]})]}),(0,b.jsxs)("div",{className:"mt-2.5 flex flex-wrap items-center gap-2",children:[u&&a.releasedAt?(0,b.jsxs)(I,{children:[(0,b.jsx)(n.Calendar,{className:"h-3 w-3"}),m("version.releasedAt"),(0,b.jsx)("strong",{className:"text-foreground",children:G(a.releasedAt)})]}):a.startDate||a.targetDate?(0,b.jsxs)(I,{children:[(0,b.jsx)(n.Calendar,{className:"h-3 w-3"}),a.startDate?G(a.startDate):"—"," → ",a.targetDate?(0,b.jsx)("strong",{className:"text-foreground",children:G(a.targetDate)}):"—"]}):null,a.baseBranch&&(0,b.jsxs)(I,{children:[(0,b.jsx)(o.GitBranch,{className:"h-3 w-3"}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:a.baseBranch})]}),a.baseCommit&&(0,b.jsxs)(I,{children:[(0,b.jsx)(p.GitCommitHorizontal,{className:"h-3 w-3"}),m("version.field.baseCommit"),(0,b.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:(j=a.baseCommit)?j.slice(0,7):""})]}),u&&(0,b.jsxs)(I,{children:[(0,b.jsx)(q.Tag,{className:"h-3 w-3"}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:a.number})]}),d&&(0,b.jsxs)(I,{children:[(0,b.jsx)(r.GitCompare,{className:"h-3 w-3"}),!u&&(0,b.jsx)("span",{className:"text-muted-foreground",children:m("version.diff.live")}),(0,b.jsxs)("span",{className:"font-bold text-emerald-400",children:["+",d.additions.toLocaleString()]}),(0,b.jsxs)("span",{className:"font-bold text-rose-400",children:["−",d.deletions.toLocaleString()]}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:["· ",d.files," ",m("version.diff.files")]})]}),C&&g&&(0,b.jsxs)(l.Button,{variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs text-muted-foreground",onClick:b=>{b.stopPropagation(),g(a.id)},children:[(0,b.jsx)(r.GitCompare,{className:"h-3 w-3"}),m("version.diff.view")," →"]})]}),a.description&&(0,b.jsx)("p",{className:"mt-2 text-[13px] text-muted-foreground",children:a.description})]})}),s&&z>0&&(0,b.jsx)("div",{className:"border-t border-dashed border-border bg-muted/40 px-2 pb-2 pt-1.5",children:a.tasks.map(a=>(0,b.jsx)(J,{task:a,onOpenDetail:i},a.id))})]})}var L=a.i(952313),M=a.i(668116),N=a.i(113047),O=a.i(814574),P=a.i(866718),Q=a.i(412783),R=a.i(580701),S=a.i(599209),T=a.i(419622),U=a.i(563658),V=a.i(429246),W=a.i(780410);let X=(0,W.createServerReference)("40f0d5d01cf02de795a062e641ec47d20ca993f263",W.callServer,void 0,W.findSourceMapURL,"createVersion"),Y=(0,W.createServerReference)("60a99da11015e14df253fc9490f2c079a6f5f4163c",W.callServer,void 0,W.findSourceMapURL,"updateVersion"),Z=(0,W.createServerReference)("4096cd0b3018d28408acad3d35093bc9457cec9296",W.callServer,void 0,W.findSourceMapURL,"getVersionTypes");var $=a.i(430413),_=a.i(262085),aa=a.i(975231);let ab=(0,W.createServerReference)("40344cb71cb5bfd721362b380be009d60ee1f3dbad",W.callServer,void 0,W.findSourceMapURL,"createVersionType"),ac=(0,W.createServerReference)("608215a2abcf647e4fd12626b0b2c02469217bd94c",W.callServer,void 0,W.findSourceMapURL,"updateVersionType"),ad=(0,W.createServerReference)("40fa7bb4ee247a90c2b24e07639075dc0a335baf20",W.callServer,void 0,W.findSourceMapURL,"deleteVersionType");function ae({open:a,onOpenChange:d,workspaceId:e,onChanged:f}){let{t:g}=(0,A.useI18n)(),[h,i]=(0,c.useState)([]),[j,k]=(0,c.useState)(""),[m,n]=(0,c.useState)({}),[o,p]=(0,c.useTransition)(),q=async()=>{let a=await Z(e);i(a),n(b=>{let c={};return a.forEach(a=>{c[a.id]=a.id in b?b[a.id]:a.name}),c})};(0,c.useEffect)(()=>{a&&(q(),k(""))},[a,e]);let r=()=>{let a=j.trim();a&&p(async()=>{try{await ab({workspaceId:e,name:a}),k(""),await q(),f?.(),L.toast.success(g("version.type.add"))}catch(a){L.toast.error(a instanceof Error?a.message:String(a))}})};return(0,b.jsx)(O.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(O.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(O.DialogHeader,{children:(0,b.jsx)(O.DialogTitle,{children:g("version.manageTypes")})}),(0,b.jsxs)("div",{className:"flex flex-col gap-4 py-2",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(P.Input,{value:j,onChange:a=>k(a.target.value),placeholder:g("version.type.namePlaceholder"),disabled:o,onKeyDown:a=>{"Enter"===a.key&&r()},className:"flex-1"}),(0,b.jsx)(l.Button,{onClick:r,disabled:o||!j.trim(),children:g("version.type.add")})]}),0===h.length?(0,b.jsx)("p",{className:"text-center text-sm text-muted-foreground py-4",children:g("version.type.empty")}):(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:h.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-3 py-2",children:[(0,b.jsx)("span",{className:`inline-flex h-2.5 w-2.5 flex-none rounded-full ${C(m[a.id]??a.name).split(" ").filter(a=>a.startsWith("bg-"))[0]??"bg-muted"}`}),(0,b.jsx)(P.Input,{value:m[a.id]??a.name,onChange:b=>n(c=>({...c,[a.id]:b.target.value})),onBlur:()=>(a=>{let b=(m[a]??"").trim();if(!b)return;let c=h.find(b=>b.id===a);c?.name!==b&&p(async()=>{try{await ac(a,{name:b}),await q(),f?.()}catch(b){L.toast.error(b instanceof Error?b.message:String(b)),n(b=>({...b,[a]:c?.name??""}))}})})(a.id),onKeyDown:a=>{"Enter"===a.key&&a.target.blur()},disabled:o,className:"h-7 flex-1 border-transparent bg-transparent shadow-none focus-visible:border-input focus-visible:bg-background focus-visible:shadow-sm"}),(0,b.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 flex-none text-muted-foreground hover:text-destructive",onClick:()=>{var b;return b=a.id,void(window.confirm(g("version.type.deleteConfirm"))&&p(async()=>{try{await ad(b),await q(),f?.()}catch(a){L.toast.error(a instanceof Error?a.message:String(a))}}))},disabled:o,children:(0,b.jsx)(aa.Trash2,{className:"h-3.5 w-3.5"})})]},a.id))})]})]})})}function af(a){if(!a)return"";let b="string"==typeof a?new Date(a):a;if(isNaN(b.getTime()))return"";let c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}function ag(a){if(!a)return;let b=new Date(a);return isNaN(b.getTime())?void 0:b}function ah({open:a,onOpenChange:d,projectId:e,workspaceId:f,editVersion:g,defaultBaseBranch:h,projectLocalPath:i,onSuccess:j}){let{t:k}=(0,A.useI18n)(),m=!!g,[n,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)([]),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(""),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)(""),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)([]),[W,aa]=(0,c.useState)(!1),[ab,ac]=(0,c.useState)(!1),ad=!!i,[ai,aj]=(0,c.useTransition)();return(0,c.useEffect)(()=>{a&&(g?(p(g.number),r(g.name),t(g.typeId??""),z(g.baseBranch??""),C(af(g.startDate)),E(af(g.targetDate)),G(g.description??"")):(p(""),r(""),t(""),z(h??""),C(""),E(""),G("")),I(!1))},[a,g,h]),(0,c.useEffect)(()=>{a&&Z(f).then(v).catch(()=>v([]))},[a,f]),(0,c.useEffect)(()=>{a&&ad?(aa(!0),(0,$.getProjectBranches)(i).then(K).catch(()=>K([])).finally(()=>aa(!1)),(0,_.fetchRemoteBranches)(i).then(()=>(0,$.getProjectBranches)(i).then(K)).catch(()=>{})):K([])},[a,ad,i]),(0,b.jsxs)(O.Dialog,{open:a,onOpenChange:d,children:[(0,b.jsxs)(O.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(O.DialogHeader,{children:(0,b.jsx)(O.DialogTitle,{children:m?k("version.edit"):k("version.new")})}),(0,b.jsxs)("div",{className:"grid gap-4 py-2",children:[(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsxs)(Q.Label,{htmlFor:"version-number",children:[k("version.field.number"),(0,b.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),(0,b.jsx)(P.Input,{id:"version-number",value:n,onChange:a=>p(a.target.value),placeholder:k("version.placeholder.number"),disabled:ai})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsxs)(Q.Label,{htmlFor:"version-name",children:[k("version.field.name"),(0,b.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),(0,b.jsx)(P.Input,{id:"version-name",value:q,onChange:a=>r(a.target.value),placeholder:k("version.placeholder.name"),disabled:ai})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{children:k("version.field.type")}),(0,b.jsxs)(R.Select,{value:s||"__none__",onValueChange:a=>{t(a&&"__none__"!==a?a:"")},children:[(0,b.jsx)(R.SelectTrigger,{className:"w-full",disabled:ai,children:(0,b.jsx)("span",{className:"truncate",children:s?u.find(a=>a.id===s)?.name??k("version.type.uncategorized"):k("version.type.uncategorized")})}),(0,b.jsxs)(R.SelectContent,{children:[(0,b.jsx)(R.SelectItem,{value:"__none__",children:k("version.type.uncategorized")}),u.map(a=>(0,b.jsx)(R.SelectItem,{value:a.id,children:a.name},a.id))]})]}),(0,b.jsxs)(l.Button,{type:"button",variant:"ghost",size:"sm",className:"h-auto justify-start px-0 py-0.5 text-xs text-muted-foreground hover:text-foreground",onClick:()=>x(!0),disabled:ai,children:["+ ",k("version.manageTypes")]})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{children:k("version.field.baseBranch")}),W?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:k("task.branchLoading")}):ad&&J.length>0?(0,b.jsxs)(S.Popover,{open:ab,onOpenChange:ac,children:[(0,b.jsxs)(S.PopoverTrigger,{className:"flex h-8 w-full items-center gap-2 rounded-lg border border-input bg-transparent px-3 text-sm transition-colors hover:bg-accent focus:outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:opacity-50",disabled:ai,"data-testid":"version-branch-selector",children:[(0,b.jsx)(o.GitBranch,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:`flex-1 truncate text-left text-xs ${y?"font-mono":"text-muted-foreground"}`,children:y||k("version.field.noBranch")}),(0,b.jsx)(N.ChevronsUpDown,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,b.jsx)(S.PopoverContent,{className:"p-0",align:"start",children:(0,b.jsxs)(T.Command,{children:[(0,b.jsx)(T.CommandInput,{placeholder:k("task.branchSearch")}),(0,b.jsxs)(T.CommandList,{children:[(0,b.jsx)(T.CommandEmpty,{children:k("task.branchNone")}),(0,b.jsxs)(T.CommandGroup,{children:[(0,b.jsxs)(T.CommandItem,{value:"__none__",onSelect:()=>{z(""),ac(!1)},children:[(0,b.jsx)("span",{className:"flex-1 truncate text-muted-foreground",children:k("version.field.noBranch")}),!y&&(0,b.jsx)(M.Check,{className:"ml-auto h-3 w-3 shrink-0 text-primary"})]}),J.map(a=>(0,b.jsxs)(T.CommandItem,{value:a,onSelect:()=>{z(a),ac(!1)},children:[(0,b.jsx)(o.GitBranch,{className:"mr-2 h-3 w-3 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"flex-1 truncate font-mono",children:a}),a===y&&(0,b.jsx)(M.Check,{className:"ml-auto h-3 w-3 shrink-0 text-primary"})]},a))]})]})]})})]}):(0,b.jsx)(P.Input,{id:"version-base-branch",value:y,onChange:a=>z(a.target.value),placeholder:"main",disabled:ai})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{htmlFor:"version-start-date",children:k("version.field.startDate")}),(0,b.jsx)("input",{id:"version-start-date",type:"date",value:B,onChange:a=>C(a.target.value),disabled:ai,className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{htmlFor:"version-target-date",children:k("version.field.targetDate")}),(0,b.jsx)("input",{id:"version-target-date",type:"date",value:D,onChange:a=>E(a.target.value),disabled:ai,className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"})]})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{htmlFor:"version-description",children:k("version.field.description")}),(0,b.jsx)(V.Textarea,{id:"version-description",value:F,onChange:a=>G(a.target.value),rows:3,disabled:ai})]}),!m&&(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(U.Switch,{id:"version-set-current",checked:H,onCheckedChange:I,disabled:ai}),(0,b.jsx)(Q.Label,{htmlFor:"version-set-current",className:"cursor-pointer",children:k("version.field.setCurrent")})]})]}),(0,b.jsxs)(O.DialogFooter,{children:[(0,b.jsx)(l.Button,{variant:"outline",onClick:()=>d(!1),disabled:ai,children:k("common.cancel")}),(0,b.jsx)(l.Button,{onClick:()=>{n.trim()&&q.trim()&&aj(async()=>{try{m&&g?await Y(g.id,{number:n.trim(),name:q.trim(),typeId:s||null,baseBranch:y.trim()||null,startDate:ag(B)??null,targetDate:ag(D)??null,description:F.trim()||null}):await X({projectId:e,number:n.trim(),name:q.trim(),typeId:s||void 0,baseBranch:y.trim()||void 0,startDate:ag(B),targetDate:ag(D),description:F.trim()||void 0,setCurrent:H}),L.toast.success(m?k("version.edit"):k("version.new")),d(!1),j?.()}catch(a){L.toast.error(a instanceof Error?a.message:String(a))}})},disabled:ai||!n.trim()||!q.trim(),children:m?k("common.save"):k("common.create")})]})]}),(0,b.jsx)(ae,{open:w,onOpenChange:x,workspaceId:f,onChanged:()=>Z(f).then(v)})]})}let ai=(0,W.createServerReference)("602d4cab95e66fa74cc2fc270026471ae5f78c4995",W.callServer,void 0,W.findSourceMapURL,"releaseVersion");function aj({open:a,onOpenChange:d,version:e,candidates:f,onSuccess:g}){let{t:h}=(0,A.useI18n)(),[i,j]=(0,c.useState)(""),[k,m]=(0,c.useTransition)();(0,c.useEffect)(()=>{a&&j("")},[a,e]);let n=f.find(a=>a.id===i),o=f.length>0,p=o&&!!i&&!k;return(0,b.jsx)(O.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(O.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(O.DialogHeader,{children:(0,b.jsx)(O.DialogTitle,{children:h("version.releaseAction")})}),(0,b.jsxs)("div",{className:"grid gap-4 py-2",children:[e&&(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:[e.number," · ",e.name]}),(0,b.jsxs)("div",{className:"text-sm",children:[(0,b.jsx)("span",{children:h("version.release.rolloverHint")}),e?.unfinishedCount!==void 0&&e.unfinishedCount>0&&(0,b.jsxs)("span",{className:"ml-1 font-medium text-foreground",children:["(",e.unfinishedCount,")"]})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:h("version.release.nextVersion")}),o?(0,b.jsxs)(R.Select,{value:i,onValueChange:a=>{a&&j(a)},disabled:k,children:[(0,b.jsx)(R.SelectTrigger,{className:"w-full",children:(0,b.jsx)("span",{className:"truncate",children:n?`${n.number} \xb7 ${n.name}`:""})}),(0,b.jsx)(R.SelectContent,{children:f.map(a=>(0,b.jsxs)(R.SelectItem,{value:a.id,children:[a.number," · ",a.name]},a.id))})]}):(0,b.jsx)("p",{className:"text-xs text-destructive",children:h("version.release.noCandidates")})]})]}),(0,b.jsxs)(O.DialogFooter,{children:[(0,b.jsx)(l.Button,{variant:"outline",onClick:()=>d(!1),disabled:k,children:h("common.cancel")}),(0,b.jsx)(l.Button,{onClick:()=>{e&&i&&m(async()=>{try{await ai(e.id,i),L.toast.success(h("version.release")),d(!1),g?.()}catch(a){L.toast.error(a instanceof Error?a.message:String(a))}})},disabled:!p,children:h("version.release")})]})]})})}var ak=a.i(704494);let al=(0,W.createServerReference)("4091383fe8ed934b311696024ca02a4ae075628780",W.callServer,void 0,W.findSourceMapURL,"getVersionDiff");var am=a.i(514872);function an({file:a}){let{t:d}=(0,A.useI18n)(),[e,f]=(0,c.useState)(!0),g=a.to&&"/dev/null"!==a.to?a.to:a.from??"",i=a.additions??0,j=a.deletions??0,k=[];for(let b of a.chunks)for(let a of(k.push({type:"normal",content:b.content,chunkHeader:b.content}),b.changes))k.push({type:a.type,content:a.content});let l=k.length>500,m=l?k.slice(0,500):k;return(0,b.jsxs)("div",{className:"overflow-hidden rounded-[10px] border border-border",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>f(a=>!a),className:"flex w-full items-center gap-2 bg-muted/40 px-3 py-2 text-left transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,b.jsx)(h.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${e?"rotate-90":""}`}),(0,b.jsx)("span",{className:"flex-1 truncate font-mono text-[12px] font-medium text-foreground",children:g}),(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] font-bold text-emerald-400",children:["+",i]}),(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] font-bold text-rose-400",children:["−",j]})]}),e&&(0,b.jsxs)("div",{className:"overflow-x-auto",children:[(0,b.jsx)("pre",{className:"m-0 p-0",children:m.map((a,c)=>void 0!==a.chunkHeader?(0,b.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-muted-foreground bg-muted/40",children:a.content},c):"add"===a.type?(0,b.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-emerald-300 bg-emerald-500/10",children:a.content},c):"del"===a.type?(0,b.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-rose-300 bg-rose-500/10",children:a.content},c):(0,b.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-muted-foreground",children:a.content},c))}),l&&(0,b.jsx)("p",{className:"border-t border-border px-3 py-2 text-[11px] text-muted-foreground/70 italic",children:d("version.diff.truncated")})]})]})}function ao({open:a,onOpenChange:d,versionId:e,versionLabel:f}){let{t:g}=(0,A.useI18n)(),[h,i]=(0,c.useTransition)(),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{a&&e&&(k(null),m(!1),i(async()=>{let a=await al(e);if(!a)return void m(!0);let b=(0,am.parseUnifiedDiff)(a.patch);0===b.length||""===a.patch?m(!0):k(b)}))},[a,e]),(0,b.jsx)(O.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(O.DialogContent,{className:"sm:max-w-3xl max-h-[80vh] overflow-auto",children:[(0,b.jsx)(O.DialogHeader,{children:(0,b.jsxs)(O.DialogTitle,{children:[g("version.diff.title"),f?` — ${f}`:""]})}),h&&(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2 py-12 text-muted-foreground",children:[(0,b.jsx)(ak.Loader2,{className:"h-5 w-5 animate-spin"}),(0,b.jsx)("span",{className:"text-sm",children:g("version.diff.loading")})]}),!h&&l&&(0,b.jsx)("p",{className:"py-10 text-center text-sm text-muted-foreground",children:g("version.diff.empty")}),!h&&j&&j.length>0&&(0,b.jsx)("div",{className:"flex flex-col gap-2",children:j.map((a,c)=>(0,b.jsx)(an,{file:a},c))})]})})}var ap=a.i(972420);function aq({version:a,isFirst:c,isLast:d,dashed:e=!1,diffStat:f,onEdit:g,onRelease:h,onViewDiff:i,onOpenTaskDetail:j}){return(0,b.jsxs)("div",{className:"flex gap-4",children:[(0,b.jsxs)("div",{className:"relative flex w-5 flex-none flex-col items-center",children:[(0,b.jsx)("div",{className:["w-px flex-none",c?"h-0":"h-6",e?"bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]":"bg-border"].filter(Boolean).join(" ")}),(0,b.jsx)("div",{className:["z-10 h-3.5 w-3.5 flex-none rounded-full border-2",a.isCurrent?"border-primary bg-primary ring-2 ring-primary/30":"ACTIVE"===a.status?"border-emerald-400 bg-emerald-400":"RELEASED"===a.status?"border-zinc-500 bg-zinc-500":"border-muted-foreground/40 bg-transparent border-dashed"].join(" ")}),!d&&(0,b.jsx)("div",{className:["w-px flex-1",e?"bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]":"bg-border"].join(" ")})]}),(0,b.jsx)("div",{className:"min-w-0 flex-1 pb-5",children:(0,b.jsx)(K,{version:a,diffStat:f??null,onEdit:g,onRelease:h,onViewDiff:i,onOpenTaskDetail:j})})]})}a.s(["VersionTimelineClient",0,function({project:a,workspaceId:j,versions:n,diffStats:o,backlog:p}){let q,{t:r}=(0,A.useI18n)(),s=(0,d.useRouter)(),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(!1),[z,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)(null),[I,K]=(0,c.useState)(!1),L=[...[...n.filter(a=>"RELEASED"!==a.status)].sort((a,b)=>{if(!a.targetDate&&!b.targetDate)return 0;if(!a.targetDate)return 1;if(!b.targetDate)return -1;let c=new Date(b.targetDate).getTime()-new Date(a.targetDate).getTime();return 0!==c?c:new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime()}),...[...n.filter(a=>"RELEASED"===a.status)].sort((a,b)=>a.releasedAt||b.releasedAt?a.releasedAt?b.releasedAt?new Date(b.releasedAt).getTime()-new Date(a.releasedAt).getTime():-1:1:0)],M=a=>{let b=n.find(b=>b.id===a);b&&(w({id:b.id,number:b.number,name:b.name,typeId:b.typeId??null,baseBranch:b.baseBranch,startDate:b.startDate,targetDate:b.targetDate,description:b.description}),u(!0))},N=a=>{let b=n.find(b=>b.id===a);b&&(D(b),B(!0))},O=a=>{F(a)},P=()=>{w(null),u(!0)},Q=()=>{s.refresh()},R=C?n.filter(a=>a.id!==C.id&&("PLANNED"===a.status||"ACTIVE"===a.status)).map(a=>({id:a.id,number:a.number,name:a.name})):[],S=C?C.tasks.filter(a=>"DONE"!==a.status&&"CANCELLED"!==a.status).length:void 0;return(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsxs)("div",{className:"header-xl flex shrink-0 items-center gap-4 border-b px-6",children:[(0,b.jsxs)(e.default,{href:`/workspaces/${j}`,className:"flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground",children:[(0,b.jsx)(i.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:r("archive.backToBoard")})]}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.name}),(0,b.jsx)("span",{children:"/"}),(0,b.jsx)("span",{children:r("version.timeline")})]}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground/70",children:r("version.historyHint")})]}),(0,b.jsxs)(l.Button,{variant:"outline",onClick:()=>y(!0),children:[(0,b.jsx)(k,{className:"h-4 w-4"}),r("version.manageTypes")]}),(0,b.jsxs)(l.Button,{onClick:P,children:[(0,b.jsx)(f.Plus,{className:"h-4 w-4"}),r("version.new")]})]}),(0,b.jsx)(m.ScrollArea,{className:"min-h-0 flex-1",children:(0,b.jsx)("div",{className:"px-6 py-6",children:(0,b.jsxs)("div",{className:"mx-auto max-w-3xl",children:[0===n.length&&0===p.length&&(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4 py-20 text-center text-muted-foreground",children:[(0,b.jsx)("p",{className:"text-sm",children:r("version.empty.list")}),(0,b.jsxs)(l.Button,{variant:"outline",onClick:P,children:[(0,b.jsx)(f.Plus,{className:"h-4 w-4"}),r("version.new")]})]}),L.length>0&&(0,b.jsx)("div",{className:"relative",children:L.map((a,c)=>(0,b.jsx)(aq,{version:a,isFirst:0===c,isLast:c===L.length-1&&0===p.length,diffStat:o[a.id],onEdit:M,onRelease:N,onViewDiff:O,onOpenTaskDetail:H},a.id))}),p.length>0&&(0,b.jsxs)("div",{className:"flex gap-4",children:[(0,b.jsxs)("div",{className:"relative flex w-5 flex-none flex-col items-center",children:[(0,b.jsx)("div",{className:"h-6 w-px bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]"}),(0,b.jsx)("div",{className:"z-10 h-3.5 w-3.5 flex-none rounded-full border-2 border-dashed border-muted-foreground/40 bg-transparent"})]}),(0,b.jsx)("div",{className:"min-w-0 flex-1 pb-5",children:(0,b.jsxs)("div",{className:"overflow-hidden rounded-[14px] border border-dashed bg-muted/40 shadow-sm",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>K(a=>!a),className:"w-full px-4 py-3 text-left transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.jsx)(h.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${I?"rotate-90":""}`}),(0,b.jsx)(g.Archive,{className:"h-4 w-4 flex-none text-muted-foreground/70"}),(0,b.jsx)("span",{className:"text-sm font-semibold text-foreground",children:r("version.history")}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:r("version.historySub")}),(0,b.jsx)("span",{className:"flex-1"}),(0,b.jsxs)("span",{className:"text-[11.5px] text-muted-foreground",children:[p.length," ",r("version.tasksCount")]})]}),(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground/70",children:r("version.historyHint")})]}),I&&(0,b.jsx)("div",{className:"border-t border-dashed border-border px-2 pb-2 pt-1.5",children:p.map(a=>(0,b.jsx)(J,{task:a,onOpenDetail:H},a.id))})]})})]})]})})}),(0,b.jsx)(ah,{open:t,onOpenChange:a=>{u(a),a||w(null)},projectId:a.id,workspaceId:j,editVersion:v,defaultBaseBranch:null,projectLocalPath:a.localPath,onSuccess:Q}),(0,b.jsx)(ae,{open:x,onOpenChange:y,workspaceId:j,onChanged:()=>s.refresh()}),(0,b.jsx)(aj,{open:z,onOpenChange:a=>{B(a),a||D(null)},version:C?{id:C.id,number:C.number,name:C.name,unfinishedCount:S}:null,candidates:R,onSuccess:Q}),(0,b.jsx)(ao,{open:!!E,onOpenChange:a=>{a||F(null)},versionId:E,versionLabel:E&&(q=n.find(a=>a.id===E))?`${q.number} ${q.name}`:void 0}),(0,b.jsx)(ap.TaskOverviewDrawer,{open:!!G,onOpenChange:a=>{a||H(null)},taskId:G})]})}],144016)}];
|
|
1
|
+
module.exports=[144016,a=>{"use strict";var b=a.i(728778),c=a.i(374637),d=a.i(553798),e=a.i(634910),f=a.i(774881),g=a.i(607219),h=a.i(10390),i=a.i(269280),j=a.i(711796);let k=(0,j.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var l=a.i(699570),m=a.i(269876),n=a.i(157551),o=a.i(577565),p=a.i(207339),q=a.i(881107),r=a.i(394869),s=a.i(347165),t=a.i(350739);let u=(0,j.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var v=a.i(690251);let w=(0,j.default)("package-check",[["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m16 17 2 2 4-4",key:"uh5qu3"}],["path",{d:"M21 11.127V8a2 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.729l7 4a2 2 0 0 0 2 .001l1.32-.753",key:"kpkbpo"}],["path",{d:"M3.29 7 12 12l8.71-5",key:"19ckod"}],["path",{d:"m7.5 4.27 8.997 5.148",key:"9yrvtv"}]]),x=(0,j.default)("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);var y=a.i(785259),z=a.i(521007),A=a.i(951192);let B=["bg-sky-500/20 text-sky-300 border border-sky-500/30","bg-amber-500/20 text-amber-300 border border-amber-500/30","bg-violet-500/20 text-violet-300 border border-violet-500/30","bg-emerald-500/20 text-emerald-300 border border-emerald-500/30","bg-rose-500/20 text-rose-300 border border-rose-500/30","bg-cyan-500/20 text-cyan-300 border border-cyan-500/30","bg-indigo-500/20 text-indigo-300 border border-indigo-500/30"];function C(a){return B[function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)>>>0;return b}(a)%B.length]}let D={PLANNED:"bg-slate-500/20 text-slate-300 border border-slate-500/30",ACTIVE:"bg-emerald-500/20 text-emerald-300 border border-emerald-500/30",RELEASED:"bg-zinc-500/20 text-zinc-400 border border-zinc-500/30"};function E({name:a}){let{t:c}=(0,A.useI18n)();return a?(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${C(a)}`,children:a}):(0,b.jsx)("span",{className:"inline-flex items-center rounded-full border border-border bg-muted/40 px-2 py-0.5 text-xs font-medium text-muted-foreground",children:c("version.type.uncategorized")})}function F({status:a}){let{t:c}=(0,A.useI18n)();return(0,b.jsx)("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${D[a]}`,children:c(`version.status.${a}`)})}function G(a){if(!a)return"";let b="string"==typeof a?new Date(a):a;if(isNaN(b.getTime()))return"";let c=String(b.getMonth()+1).padStart(2,"0"),d=String(b.getDate()).padStart(2,"0");return`${c}-${d}`}let H=Object.fromEntries(z.BOARD_COLUMNS.map(a=>[a.id,a.color]));function I({children:a,className:c}){return(0,b.jsx)("span",{className:`inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/40 px-2 py-0.5 text-xs text-muted-foreground ${c??""}`,children:a})}function J({task:a,onOpenDetail:d}){let{t:e}=(0,A.useI18n)(),[f,g]=(0,c.useState)(!1),i="CANCELLED"===a.status?"text-muted-foreground line-through decoration-muted-foreground/40":"DONE"===a.status?"text-muted-foreground":"text-foreground";return(0,b.jsxs)("div",{className:"rounded-[10px]",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>g(a=>!a),className:"flex w-full items-center gap-2.5 rounded-[10px] px-2.5 py-2.5 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,b.jsx)(h.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${f?"rotate-90":""}`}),(0,b.jsx)("span",{className:`h-2 w-2 flex-none rounded-full ${H[a.status]??"bg-slate-400"}`}),(0,b.jsx)("span",{className:`text-[13.5px] font-medium ${i}`,children:a.title}),a.labels.map(({label:a})=>(0,b.jsx)("span",{className:"rounded-full border border-border px-1.5 py-px text-[10.5px] text-muted-foreground",style:a.color?{borderColor:a.color+"55",color:a.color}:void 0,children:a.name},a.id)),(0,b.jsx)("span",{className:"flex-1"}),(0,b.jsx)("span",{className:"flex w-16 flex-none justify-center",children:(0,b.jsx)("span",{className:`rounded-[5px] px-1.5 py-px text-[10.5px] font-bold ${z.PRIORITY_CONFIG[a.priority]?.color??z.PRIORITY_CONFIG.LOW.color}`,children:a.priority})}),(0,b.jsx)("span",{className:"h-3 w-px bg-border flex-none"}),(0,b.jsxs)("span",{className:"flex w-[72px] flex-none items-center gap-1.5",children:[(0,b.jsx)("span",{className:`h-1.5 w-1.5 flex-none rounded-full ${H[a.status]??"bg-slate-400"}`}),(0,b.jsx)("span",{className:"truncate text-[10.5px] text-muted-foreground",children:e(`version.taskStatus.${a.status}`)})]}),(0,b.jsx)("span",{className:"h-3 w-px bg-border flex-none"}),(0,b.jsx)("span",{className:"flex w-6 flex-none justify-center",children:d&&(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-6 w-6 text-muted-foreground",onClick:b=>{b.stopPropagation(),d(a.id)}}),children:(0,b.jsx)(x,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(y.TooltipContent,{children:e("version.detail")})]})})]}),f&&(0,b.jsxs)("div",{className:"flex flex-col gap-2.5 pb-3 pl-[30px] pr-3 pt-1",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(s.FolderOpen,{className:"h-3 w-3 text-muted-foreground/60"}),(0,b.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wide text-muted-foreground/60",children:e("version.resources")})]}),0===a.assets.length?(0,b.jsx)("p",{className:"text-[12px] italic text-muted-foreground/60",children:e("version.empty.resources")}):(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:a.assets.map(a=>{var c;let d=a.mimeType?.startsWith("image/");return(0,b.jsxs)("span",{className:"inline-flex cursor-pointer items-center gap-1.5 rounded-lg border border-border bg-background px-2.5 py-1.5 text-[12px] text-foreground shadow-sm transition-colors hover:border-primary/50",children:[d?(0,b.jsx)(u,{className:"h-3.5 w-3.5 text-muted-foreground"}):(0,b.jsx)(t.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,b.jsx)("span",{children:a.filename}),null!=a.size&&(0,b.jsx)("span",{className:"text-[11px] text-muted-foreground/60",children:(c=a.size)<1024?`${c} B`:c<1048576?`${Math.round(c/1024)} KB`:`${(c/1048576).toFixed(1)} MB`})]},a.id)})})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"mb-1.5 flex items-center gap-1.5",children:[(0,b.jsx)(t.FileText,{className:"h-3 w-3 text-muted-foreground/60"}),(0,b.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wide text-muted-foreground/60",children:e("version.notes")})]}),0===a.notes.length?(0,b.jsx)("p",{className:"text-[12px] italic text-muted-foreground/60",children:e("version.empty.notes")}):(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:a.notes.map(a=>(0,b.jsx)("div",{className:"rounded-lg border border-border border-l-violet-500/50 bg-background px-2.5 py-2 shadow-sm [border-left-width:3px]",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[12.5px] font-semibold text-foreground",children:a.title}),a.category&&(0,b.jsx)("span",{className:"rounded-[5px] border border-violet-500/30 bg-violet-500/15 px-1.5 py-px text-[10px] font-bold text-violet-300",children:a.category})]})},a.id))})]})]})]})}function K({version:a,diffStat:d,onEdit:e,onRelease:f,onViewDiff:g,onOpenTaskDetail:i}){var j;let k,{t:m}=(0,A.useI18n)(),[s,t]=(0,c.useState)(a.isCurrent),u="RELEASED"===a.status,x="ACTIVE"===a.status,z=a.tasks.length,B=a.tasks.filter(a=>"DONE"===a.status).length,C=!!(a.releaseCommit||d),D=(k=`${z} ${m("version.tasksCount")}`,B>0&&B<z?`${k} \xb7 ${B} ${m("version.doneCount")}`:B>0&&B===z?`${k} \xb7 ${m("version.allDone")}`:k);return(0,b.jsxs)("div",{className:["overflow-hidden rounded-[14px] border bg-card shadow-sm transition-shadow duration-150 hover:shadow-md",a.isCurrent?"border-border border-l-2 border-l-primary ring-1 ring-primary/20":"border-border",u?"opacity-[.96]":""].filter(Boolean).join(" "),children:[(0,b.jsx)("button",{type:"button",onClick:()=>t(a=>!a),className:"w-full text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,b.jsxs)("div",{className:"px-4 py-3.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(h.ChevronRight,{className:`h-4 w-4 flex-none text-muted-foreground/60 transition-transform duration-150 ${s?"rotate-90":""}`}),(0,b.jsx)("span",{className:"font-mono text-[14.5px] font-bold text-foreground",children:a.number}),(0,b.jsx)("span",{className:"text-[14.5px] font-semibold text-foreground",children:a.name}),(0,b.jsx)(E,{name:a.type?.name??null}),(0,b.jsx)(F,{status:a.status}),a.isCurrent&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-primary/30 bg-primary/15 px-2.5 py-0.5 text-[11px] font-bold text-primary shadow-sm",children:[(0,b.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-primary opacity-90"}),m("version.current")]}),(0,b.jsx)("span",{className:"flex-1"}),z>0&&(0,b.jsx)("span",{className:"text-[11.5px] text-muted-foreground",children:D}),(0,b.jsxs)("span",{className:"flex items-center gap-1",onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),children:[e&&(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{render:(0,b.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground",onClick:()=>e(a.id)}),children:(0,b.jsx)(v.Pencil,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(y.TooltipContent,{children:m("version.edit")})]}),x&&f&&(0,b.jsxs)(l.Button,{variant:"outline",className:"h-7 px-2 text-xs font-semibold",onClick:()=>f(a.id),children:[(0,b.jsx)(w,{className:"h-3.5 w-3.5"}),m("version.release")]})]})]}),(0,b.jsxs)("div",{className:"mt-2.5 flex flex-wrap items-center gap-2",children:[u&&a.releasedAt?(0,b.jsxs)(I,{children:[(0,b.jsx)(n.Calendar,{className:"h-3 w-3"}),m("version.releasedAt"),(0,b.jsx)("strong",{className:"text-foreground",children:G(a.releasedAt)})]}):a.startDate||a.targetDate?(0,b.jsxs)(I,{children:[(0,b.jsx)(n.Calendar,{className:"h-3 w-3"}),a.startDate?G(a.startDate):"—"," → ",a.targetDate?(0,b.jsx)("strong",{className:"text-foreground",children:G(a.targetDate)}):"—"]}):null,a.baseBranch&&(0,b.jsxs)(I,{children:[(0,b.jsx)(o.GitBranch,{className:"h-3 w-3"}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:a.baseBranch})]}),a.baseCommit&&(0,b.jsxs)(I,{children:[(0,b.jsx)(p.GitCommitHorizontal,{className:"h-3 w-3"}),m("version.field.baseCommit"),(0,b.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:(j=a.baseCommit)?j.slice(0,7):""})]}),u&&(0,b.jsxs)(I,{children:[(0,b.jsx)(q.Tag,{className:"h-3 w-3"}),(0,b.jsx)("span",{className:"font-mono text-[11px] text-foreground",children:a.number})]}),d&&(0,b.jsxs)(I,{children:[(0,b.jsx)(r.GitCompare,{className:"h-3 w-3"}),!u&&(0,b.jsx)("span",{className:"text-muted-foreground",children:m("version.diff.live")}),(0,b.jsxs)("span",{className:"font-bold text-emerald-400",children:["+",d.additions.toLocaleString()]}),(0,b.jsxs)("span",{className:"font-bold text-rose-400",children:["−",d.deletions.toLocaleString()]}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:["· ",d.files," ",m("version.diff.files")]})]}),C&&g&&(0,b.jsxs)(l.Button,{variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs text-muted-foreground",onClick:b=>{b.stopPropagation(),g(a.id)},children:[(0,b.jsx)(r.GitCompare,{className:"h-3 w-3"}),m("version.diff.view")," →"]})]}),a.description&&(0,b.jsx)("p",{className:"mt-2 text-[13px] text-muted-foreground",children:a.description})]})}),s&&z>0&&(0,b.jsx)("div",{className:"border-t border-dashed border-border bg-muted/40 px-2 pb-2 pt-1.5",children:a.tasks.map(a=>(0,b.jsx)(J,{task:a,onOpenDetail:i},a.id))})]})}var L=a.i(952313),M=a.i(668116),N=a.i(113047),O=a.i(814574),P=a.i(866718),Q=a.i(412783),R=a.i(580701),S=a.i(599209),T=a.i(419622),U=a.i(563658),V=a.i(429246),W=a.i(780410);let X=(0,W.createServerReference)("40b44e23b7976c6e055ad316ac3d412d84bf4fe23b",W.callServer,void 0,W.findSourceMapURL,"createVersion"),Y=(0,W.createServerReference)("605a3602b3b546fa7ea89dee88f68aa340c25d39d7",W.callServer,void 0,W.findSourceMapURL,"updateVersion"),Z=(0,W.createServerReference)("40bf6543b3e4c86e9453e45a858a1e623476bcedd8",W.callServer,void 0,W.findSourceMapURL,"getVersionTypes");var $=a.i(448513),_=a.i(204284),aa=a.i(975231);let ab=(0,W.createServerReference)("40717e538a65f3e5d8a4e6cd48d6844a24af3235a0",W.callServer,void 0,W.findSourceMapURL,"createVersionType"),ac=(0,W.createServerReference)("60f111a8b5094c1cae013c1c5611042a410d489365",W.callServer,void 0,W.findSourceMapURL,"updateVersionType"),ad=(0,W.createServerReference)("403f734762e2eec850ffd850b2e34da20895602a09",W.callServer,void 0,W.findSourceMapURL,"deleteVersionType");function ae({open:a,onOpenChange:d,workspaceId:e,onChanged:f}){let{t:g}=(0,A.useI18n)(),[h,i]=(0,c.useState)([]),[j,k]=(0,c.useState)(""),[m,n]=(0,c.useState)({}),[o,p]=(0,c.useTransition)(),q=async()=>{let a=await Z(e);i(a),n(b=>{let c={};return a.forEach(a=>{c[a.id]=a.id in b?b[a.id]:a.name}),c})};(0,c.useEffect)(()=>{a&&(q(),k(""))},[a,e]);let r=()=>{let a=j.trim();a&&p(async()=>{try{await ab({workspaceId:e,name:a}),k(""),await q(),f?.(),L.toast.success(g("version.type.add"))}catch(a){L.toast.error(a instanceof Error?a.message:String(a))}})};return(0,b.jsx)(O.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(O.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(O.DialogHeader,{children:(0,b.jsx)(O.DialogTitle,{children:g("version.manageTypes")})}),(0,b.jsxs)("div",{className:"flex flex-col gap-4 py-2",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(P.Input,{value:j,onChange:a=>k(a.target.value),placeholder:g("version.type.namePlaceholder"),disabled:o,onKeyDown:a=>{"Enter"===a.key&&r()},className:"flex-1"}),(0,b.jsx)(l.Button,{onClick:r,disabled:o||!j.trim(),children:g("version.type.add")})]}),0===h.length?(0,b.jsx)("p",{className:"text-center text-sm text-muted-foreground py-4",children:g("version.type.empty")}):(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:h.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted/30 px-3 py-2",children:[(0,b.jsx)("span",{className:`inline-flex h-2.5 w-2.5 flex-none rounded-full ${C(m[a.id]??a.name).split(" ").filter(a=>a.startsWith("bg-"))[0]??"bg-muted"}`}),(0,b.jsx)(P.Input,{value:m[a.id]??a.name,onChange:b=>n(c=>({...c,[a.id]:b.target.value})),onBlur:()=>(a=>{let b=(m[a]??"").trim();if(!b)return;let c=h.find(b=>b.id===a);c?.name!==b&&p(async()=>{try{await ac(a,{name:b}),await q(),f?.()}catch(b){L.toast.error(b instanceof Error?b.message:String(b)),n(b=>({...b,[a]:c?.name??""}))}})})(a.id),onKeyDown:a=>{"Enter"===a.key&&a.target.blur()},disabled:o,className:"h-7 flex-1 border-transparent bg-transparent shadow-none focus-visible:border-input focus-visible:bg-background focus-visible:shadow-sm"}),(0,b.jsx)(l.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 flex-none text-muted-foreground hover:text-destructive",onClick:()=>{var b;return b=a.id,void(window.confirm(g("version.type.deleteConfirm"))&&p(async()=>{try{await ad(b),await q(),f?.()}catch(a){L.toast.error(a instanceof Error?a.message:String(a))}}))},disabled:o,children:(0,b.jsx)(aa.Trash2,{className:"h-3.5 w-3.5"})})]},a.id))})]})]})})}function af(a){if(!a)return"";let b="string"==typeof a?new Date(a):a;if(isNaN(b.getTime()))return"";let c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}function ag(a){if(!a)return;let b=new Date(a);return isNaN(b.getTime())?void 0:b}function ah({open:a,onOpenChange:d,projectId:e,workspaceId:f,editVersion:g,defaultBaseBranch:h,projectLocalPath:i,onSuccess:j}){let{t:k}=(0,A.useI18n)(),m=!!g,[n,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)([]),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(""),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)(""),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)([]),[W,aa]=(0,c.useState)(!1),[ab,ac]=(0,c.useState)(!1),ad=!!i,[ai,aj]=(0,c.useTransition)();return(0,c.useEffect)(()=>{a&&(g?(p(g.number),r(g.name),t(g.typeId??""),z(g.baseBranch??""),C(af(g.startDate)),E(af(g.targetDate)),G(g.description??"")):(p(""),r(""),t(""),z(h??""),C(""),E(""),G("")),I(!1))},[a,g,h]),(0,c.useEffect)(()=>{a&&Z(f).then(v).catch(()=>v([]))},[a,f]),(0,c.useEffect)(()=>{a&&ad?(aa(!0),(0,$.getProjectBranches)(i).then(K).catch(()=>K([])).finally(()=>aa(!1)),(0,_.fetchRemoteBranches)(i).then(()=>(0,$.getProjectBranches)(i).then(K)).catch(()=>{})):K([])},[a,ad,i]),(0,b.jsxs)(O.Dialog,{open:a,onOpenChange:d,children:[(0,b.jsxs)(O.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(O.DialogHeader,{children:(0,b.jsx)(O.DialogTitle,{children:m?k("version.edit"):k("version.new")})}),(0,b.jsxs)("div",{className:"grid gap-4 py-2",children:[(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsxs)(Q.Label,{htmlFor:"version-number",children:[k("version.field.number"),(0,b.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),(0,b.jsx)(P.Input,{id:"version-number",value:n,onChange:a=>p(a.target.value),placeholder:k("version.placeholder.number"),disabled:ai})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsxs)(Q.Label,{htmlFor:"version-name",children:[k("version.field.name"),(0,b.jsx)("span",{className:"text-destructive ml-0.5",children:"*"})]}),(0,b.jsx)(P.Input,{id:"version-name",value:q,onChange:a=>r(a.target.value),placeholder:k("version.placeholder.name"),disabled:ai})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{children:k("version.field.type")}),(0,b.jsxs)(R.Select,{value:s||"__none__",onValueChange:a=>{t(a&&"__none__"!==a?a:"")},children:[(0,b.jsx)(R.SelectTrigger,{className:"w-full",disabled:ai,children:(0,b.jsx)("span",{className:"truncate",children:s?u.find(a=>a.id===s)?.name??k("version.type.uncategorized"):k("version.type.uncategorized")})}),(0,b.jsxs)(R.SelectContent,{children:[(0,b.jsx)(R.SelectItem,{value:"__none__",children:k("version.type.uncategorized")}),u.map(a=>(0,b.jsx)(R.SelectItem,{value:a.id,children:a.name},a.id))]})]}),(0,b.jsxs)(l.Button,{type:"button",variant:"ghost",size:"sm",className:"h-auto justify-start px-0 py-0.5 text-xs text-muted-foreground hover:text-foreground",onClick:()=>x(!0),disabled:ai,children:["+ ",k("version.manageTypes")]})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{children:k("version.field.baseBranch")}),W?(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:k("task.branchLoading")}):ad&&J.length>0?(0,b.jsxs)(S.Popover,{open:ab,onOpenChange:ac,children:[(0,b.jsxs)(S.PopoverTrigger,{className:"flex h-8 w-full items-center gap-2 rounded-lg border border-input bg-transparent px-3 text-sm transition-colors hover:bg-accent focus:outline-none focus-visible:ring-3 focus-visible:ring-ring/50 disabled:opacity-50",disabled:ai,"data-testid":"version-branch-selector",children:[(0,b.jsx)(o.GitBranch,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:`flex-1 truncate text-left text-xs ${y?"font-mono":"text-muted-foreground"}`,title:y||void 0,children:y||k("version.field.noBranch")}),(0,b.jsx)(N.ChevronsUpDown,{className:"h-3.5 w-3.5 shrink-0 opacity-50"})]}),(0,b.jsx)(S.PopoverContent,{className:"w-[min(32rem,90vw)] p-0",align:"start",children:(0,b.jsxs)(T.Command,{children:[(0,b.jsx)(T.CommandInput,{placeholder:k("task.branchSearch")}),(0,b.jsxs)(T.CommandList,{children:[(0,b.jsx)(T.CommandEmpty,{children:k("task.branchNone")}),(0,b.jsxs)(T.CommandGroup,{children:[(0,b.jsxs)(T.CommandItem,{value:"__none__",onSelect:()=>{z(""),ac(!1)},children:[(0,b.jsx)("span",{className:"flex-1 truncate text-muted-foreground",children:k("version.field.noBranch")}),!y&&(0,b.jsx)(M.Check,{className:"ml-auto h-3 w-3 shrink-0 text-primary"})]}),J.map(a=>(0,b.jsxs)(T.CommandItem,{value:a,onSelect:()=>{z(a),ac(!1)},children:[(0,b.jsx)(o.GitBranch,{className:"mr-2 h-3 w-3 shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"flex-1 truncate font-mono",title:a,children:a}),a===y&&(0,b.jsx)(M.Check,{className:"ml-auto h-3 w-3 shrink-0 text-primary"})]},a))]})]})]})})]}):(0,b.jsx)(P.Input,{id:"version-base-branch",value:y,onChange:a=>z(a.target.value),placeholder:"main",disabled:ai})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{htmlFor:"version-start-date",children:k("version.field.startDate")}),(0,b.jsx)("input",{id:"version-start-date",type:"date",value:B,onChange:a=>C(a.target.value),disabled:ai,className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{htmlFor:"version-target-date",children:k("version.field.targetDate")}),(0,b.jsx)("input",{id:"version-target-date",type:"date",value:D,onChange:a=>E(a.target.value),disabled:ai,className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"})]})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)(Q.Label,{htmlFor:"version-description",children:k("version.field.description")}),(0,b.jsx)(V.Textarea,{id:"version-description",value:F,onChange:a=>G(a.target.value),rows:3,disabled:ai})]}),!m&&(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(U.Switch,{id:"version-set-current",checked:H,onCheckedChange:I,disabled:ai}),(0,b.jsx)(Q.Label,{htmlFor:"version-set-current",className:"cursor-pointer",children:k("version.field.setCurrent")})]})]}),(0,b.jsxs)(O.DialogFooter,{children:[(0,b.jsx)(l.Button,{variant:"outline",onClick:()=>d(!1),disabled:ai,children:k("common.cancel")}),(0,b.jsx)(l.Button,{onClick:()=>{n.trim()&&q.trim()&&aj(async()=>{try{m&&g?await Y(g.id,{number:n.trim(),name:q.trim(),typeId:s||null,baseBranch:y.trim()||null,startDate:ag(B)??null,targetDate:ag(D)??null,description:F.trim()||null}):await X({projectId:e,number:n.trim(),name:q.trim(),typeId:s||void 0,baseBranch:y.trim()||void 0,startDate:ag(B),targetDate:ag(D),description:F.trim()||void 0,setCurrent:H}),L.toast.success(m?k("version.edit"):k("version.new")),d(!1),j?.()}catch(a){L.toast.error(a instanceof Error?a.message:String(a))}})},disabled:ai||!n.trim()||!q.trim(),children:m?k("common.save"):k("common.create")})]})]}),(0,b.jsx)(ae,{open:w,onOpenChange:x,workspaceId:f,onChanged:()=>Z(f).then(v)})]})}let ai=(0,W.createServerReference)("60c9b2b22809c793bfbd725fb65bc547658da78d75",W.callServer,void 0,W.findSourceMapURL,"releaseVersion");function aj({open:a,onOpenChange:d,version:e,candidates:f,onSuccess:g}){let{t:h}=(0,A.useI18n)(),[i,j]=(0,c.useState)(""),[k,m]=(0,c.useTransition)();(0,c.useEffect)(()=>{a&&j("")},[a,e]);let n=f.find(a=>a.id===i),o=f.length>0,p=o&&!!i&&!k;return(0,b.jsx)(O.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(O.DialogContent,{className:"sm:max-w-md",children:[(0,b.jsx)(O.DialogHeader,{children:(0,b.jsx)(O.DialogTitle,{children:h("version.releaseAction")})}),(0,b.jsxs)("div",{className:"grid gap-4 py-2",children:[e&&(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:[e.number," · ",e.name]}),(0,b.jsxs)("div",{className:"text-sm",children:[(0,b.jsx)("span",{children:h("version.release.rolloverHint")}),e?.unfinishedCount!==void 0&&e.unfinishedCount>0&&(0,b.jsxs)("span",{className:"ml-1 font-medium text-foreground",children:["(",e.unfinishedCount,")"]})]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)("label",{className:"text-sm font-medium",children:h("version.release.nextVersion")}),o?(0,b.jsxs)(R.Select,{value:i,onValueChange:a=>{a&&j(a)},disabled:k,children:[(0,b.jsx)(R.SelectTrigger,{className:"w-full",children:(0,b.jsx)("span",{className:"truncate",children:n?`${n.number} \xb7 ${n.name}`:""})}),(0,b.jsx)(R.SelectContent,{children:f.map(a=>(0,b.jsxs)(R.SelectItem,{value:a.id,children:[a.number," · ",a.name]},a.id))})]}):(0,b.jsx)("p",{className:"text-xs text-destructive",children:h("version.release.noCandidates")})]})]}),(0,b.jsxs)(O.DialogFooter,{children:[(0,b.jsx)(l.Button,{variant:"outline",onClick:()=>d(!1),disabled:k,children:h("common.cancel")}),(0,b.jsx)(l.Button,{onClick:()=>{e&&i&&m(async()=>{try{await ai(e.id,i),L.toast.success(h("version.release")),d(!1),g?.()}catch(a){L.toast.error(a instanceof Error?a.message:String(a))}})},disabled:!p,children:h("version.release")})]})]})})}var ak=a.i(704494);let al=(0,W.createServerReference)("40e06e60ebfe85c02e5e9ffce12c61be529657f243",W.callServer,void 0,W.findSourceMapURL,"getVersionDiff");var am=a.i(514872);function an({file:a}){let{t:d}=(0,A.useI18n)(),[e,f]=(0,c.useState)(!0),g=a.to&&"/dev/null"!==a.to?a.to:a.from??"",i=a.additions??0,j=a.deletions??0,k=[];for(let b of a.chunks)for(let a of(k.push({type:"normal",content:b.content,chunkHeader:b.content}),b.changes))k.push({type:a.type,content:a.content});let l=k.length>500,m=l?k.slice(0,500):k;return(0,b.jsxs)("div",{className:"overflow-hidden rounded-[10px] border border-border",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>f(a=>!a),className:"flex w-full items-center gap-2 bg-muted/40 px-3 py-2 text-left transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,b.jsx)(h.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${e?"rotate-90":""}`}),(0,b.jsx)("span",{className:"flex-1 truncate font-mono text-[12px] font-medium text-foreground",children:g}),(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] font-bold text-emerald-400",children:["+",i]}),(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] font-bold text-rose-400",children:["−",j]})]}),e&&(0,b.jsxs)("div",{className:"overflow-x-auto",children:[(0,b.jsx)("pre",{className:"m-0 p-0",children:m.map((a,c)=>void 0!==a.chunkHeader?(0,b.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-muted-foreground bg-muted/40",children:a.content},c):"add"===a.type?(0,b.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-emerald-300 bg-emerald-500/10",children:a.content},c):"del"===a.type?(0,b.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-rose-300 bg-rose-500/10",children:a.content},c):(0,b.jsx)("div",{className:"whitespace-pre px-3 py-px font-mono text-xs text-muted-foreground",children:a.content},c))}),l&&(0,b.jsx)("p",{className:"border-t border-border px-3 py-2 text-[11px] text-muted-foreground/70 italic",children:d("version.diff.truncated")})]})]})}function ao({open:a,onOpenChange:d,versionId:e,versionLabel:f}){let{t:g}=(0,A.useI18n)(),[h,i]=(0,c.useTransition)(),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{a&&e&&(k(null),m(!1),i(async()=>{let a=await al(e);if(!a)return void m(!0);let b=(0,am.parseUnifiedDiff)(a.patch);0===b.length||""===a.patch?m(!0):k(b)}))},[a,e]),(0,b.jsx)(O.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(O.DialogContent,{className:"sm:max-w-3xl max-h-[80vh] overflow-auto",children:[(0,b.jsx)(O.DialogHeader,{children:(0,b.jsxs)(O.DialogTitle,{children:[g("version.diff.title"),f?` — ${f}`:""]})}),h&&(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2 py-12 text-muted-foreground",children:[(0,b.jsx)(ak.Loader2,{className:"h-5 w-5 animate-spin"}),(0,b.jsx)("span",{className:"text-sm",children:g("version.diff.loading")})]}),!h&&l&&(0,b.jsx)("p",{className:"py-10 text-center text-sm text-muted-foreground",children:g("version.diff.empty")}),!h&&j&&j.length>0&&(0,b.jsx)("div",{className:"flex flex-col gap-2",children:j.map((a,c)=>(0,b.jsx)(an,{file:a},c))})]})})}var ap=a.i(972420);function aq({version:a,isFirst:c,isLast:d,dashed:e=!1,diffStat:f,onEdit:g,onRelease:h,onViewDiff:i,onOpenTaskDetail:j}){return(0,b.jsxs)("div",{className:"flex gap-4",children:[(0,b.jsxs)("div",{className:"relative flex w-5 flex-none flex-col items-center",children:[(0,b.jsx)("div",{className:["w-px flex-none",c?"h-0":"h-6",e?"bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]":"bg-border"].filter(Boolean).join(" ")}),(0,b.jsx)("div",{className:["z-10 h-3.5 w-3.5 flex-none rounded-full border-2",a.isCurrent?"border-primary bg-primary ring-2 ring-primary/30":"ACTIVE"===a.status?"border-emerald-400 bg-emerald-400":"RELEASED"===a.status?"border-zinc-500 bg-zinc-500":"border-muted-foreground/40 bg-transparent border-dashed"].join(" ")}),!d&&(0,b.jsx)("div",{className:["w-px flex-1",e?"bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]":"bg-border"].join(" ")})]}),(0,b.jsx)("div",{className:"min-w-0 flex-1 pb-5",children:(0,b.jsx)(K,{version:a,diffStat:f??null,onEdit:g,onRelease:h,onViewDiff:i,onOpenTaskDetail:j})})]})}a.s(["VersionTimelineClient",0,function({project:a,workspaceId:j,versions:n,diffStats:o,backlog:p}){let q,{t:r}=(0,A.useI18n)(),s=(0,d.useRouter)(),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(!1),[z,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)(null),[I,K]=(0,c.useState)(!1),L=[...[...n.filter(a=>"RELEASED"!==a.status)].sort((a,b)=>{if(!a.targetDate&&!b.targetDate)return 0;if(!a.targetDate)return 1;if(!b.targetDate)return -1;let c=new Date(b.targetDate).getTime()-new Date(a.targetDate).getTime();return 0!==c?c:new Date(b.createdAt).getTime()-new Date(a.createdAt).getTime()}),...[...n.filter(a=>"RELEASED"===a.status)].sort((a,b)=>a.releasedAt||b.releasedAt?a.releasedAt?b.releasedAt?new Date(b.releasedAt).getTime()-new Date(a.releasedAt).getTime():-1:1:0)],M=a=>{let b=n.find(b=>b.id===a);b&&(w({id:b.id,number:b.number,name:b.name,typeId:b.typeId??null,baseBranch:b.baseBranch,startDate:b.startDate,targetDate:b.targetDate,description:b.description}),u(!0))},N=a=>{let b=n.find(b=>b.id===a);b&&(D(b),B(!0))},O=a=>{F(a)},P=()=>{w(null),u(!0)},Q=()=>{s.refresh()},R=C?n.filter(a=>a.id!==C.id&&("PLANNED"===a.status||"ACTIVE"===a.status)).map(a=>({id:a.id,number:a.number,name:a.name})):[],S=C?C.tasks.filter(a=>"DONE"!==a.status&&"CANCELLED"!==a.status).length:void 0;return(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsxs)("div",{className:"header-xl flex shrink-0 items-center gap-4 border-b px-6",children:[(0,b.jsxs)(e.default,{href:`/workspaces/${j}`,className:"flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground",children:[(0,b.jsx)(i.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:r("archive.backToBoard")})]}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.name}),(0,b.jsx)("span",{children:"/"}),(0,b.jsx)("span",{children:r("version.timeline")})]}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground/70",children:r("version.historyHint")})]}),(0,b.jsxs)(l.Button,{variant:"outline",onClick:()=>y(!0),children:[(0,b.jsx)(k,{className:"h-4 w-4"}),r("version.manageTypes")]}),(0,b.jsxs)(l.Button,{onClick:P,children:[(0,b.jsx)(f.Plus,{className:"h-4 w-4"}),r("version.new")]})]}),(0,b.jsx)(m.ScrollArea,{className:"min-h-0 flex-1",children:(0,b.jsx)("div",{className:"px-6 py-6",children:(0,b.jsxs)("div",{className:"mx-auto max-w-3xl",children:[0===n.length&&0===p.length&&(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4 py-20 text-center text-muted-foreground",children:[(0,b.jsx)("p",{className:"text-sm",children:r("version.empty.list")}),(0,b.jsxs)(l.Button,{variant:"outline",onClick:P,children:[(0,b.jsx)(f.Plus,{className:"h-4 w-4"}),r("version.new")]})]}),L.length>0&&(0,b.jsx)("div",{className:"relative",children:L.map((a,c)=>(0,b.jsx)(aq,{version:a,isFirst:0===c,isLast:c===L.length-1&&0===p.length,diffStat:o[a.id],onEdit:M,onRelease:N,onViewDiff:O,onOpenTaskDetail:H},a.id))}),p.length>0&&(0,b.jsxs)("div",{className:"flex gap-4",children:[(0,b.jsxs)("div",{className:"relative flex w-5 flex-none flex-col items-center",children:[(0,b.jsx)("div",{className:"h-6 w-px bg-[repeating-linear-gradient(to_bottom,var(--border)_0_4px,transparent_4px_8px)]"}),(0,b.jsx)("div",{className:"z-10 h-3.5 w-3.5 flex-none rounded-full border-2 border-dashed border-muted-foreground/40 bg-transparent"})]}),(0,b.jsx)("div",{className:"min-w-0 flex-1 pb-5",children:(0,b.jsxs)("div",{className:"overflow-hidden rounded-[14px] border border-dashed bg-muted/40 shadow-sm",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>K(a=>!a),className:"w-full px-4 py-3 text-left transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.jsx)(h.ChevronRight,{className:`h-3.5 w-3.5 flex-none text-muted-foreground/60 transition-transform duration-150 ${I?"rotate-90":""}`}),(0,b.jsx)(g.Archive,{className:"h-4 w-4 flex-none text-muted-foreground/70"}),(0,b.jsx)("span",{className:"text-sm font-semibold text-foreground",children:r("version.history")}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:r("version.historySub")}),(0,b.jsx)("span",{className:"flex-1"}),(0,b.jsxs)("span",{className:"text-[11.5px] text-muted-foreground",children:[p.length," ",r("version.tasksCount")]})]}),(0,b.jsx)("p",{className:"mt-2 text-xs text-muted-foreground/70",children:r("version.historyHint")})]}),I&&(0,b.jsx)("div",{className:"border-t border-dashed border-border px-2 pb-2 pt-1.5",children:p.map(a=>(0,b.jsx)(J,{task:a,onOpenDetail:H},a.id))})]})})]})]})})}),(0,b.jsx)(ah,{open:t,onOpenChange:a=>{u(a),a||w(null)},projectId:a.id,workspaceId:j,editVersion:v,defaultBaseBranch:null,projectLocalPath:a.localPath,onSuccess:Q}),(0,b.jsx)(ae,{open:x,onOpenChange:y,workspaceId:j,onChanged:()=>s.refresh()}),(0,b.jsx)(aj,{open:z,onOpenChange:a=>{B(a),a||D(null)},version:C?{id:C.id,number:C.number,name:C.name,unfinishedCount:S}:null,candidates:R,onSuccess:Q}),(0,b.jsx)(ao,{open:!!E,onOpenChange:a=>{a||F(null)},versionId:E,versionLabel:E&&(q=n.find(a=>a.id===E))?`${q.number} ${q.name}`:void 0}),(0,b.jsx)(ap.TaskOverviewDrawer,{open:!!G,onOpenChange:a=>{a||H(null)},taskId:G})]})}],144016)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=0iu._%5BworkspaceId%5D_projects_%5BprojectId%5D_versions_version-timeline-client_tsx_07o_kyi._.js.map
|