@ai-development-environment/server 0.0.27 → 0.0.29
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/package.json +1 -1
- package/prisma-runtime/prisma/migrations/20260718220000_add_build_freshness/migration.sql +1 -0
- package/prisma-runtime/prisma/schema.prisma +1 -0
- package/standalone/.next/BUILD_ID +1 -1
- package/standalone/.next/build-manifest.json +3 -3
- package/standalone/.next/prerender-manifest.json +3 -3
- package/standalone/.next/server/app/[locale]/actions/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/actions/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/agents/[id]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/agents/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/agents/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/build-data/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/build-data/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/builds/[buildId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/builds/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/builds/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/codebases/[codebaseId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/codebases/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/codebases/repositories/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/comments/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/comments/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/cache/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/cache/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/[issueKey]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/jira/tickets/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/jobs/[jobId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/[owner]/[repository]/[number]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/pull-requests/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/settings/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/groups/[groupId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/groups/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/skills/sync/[runId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/tools/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/usage/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/usage/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/[worktreeId]/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/page.js.nft.json +1 -1
- package/standalone/.next/server/app/[locale]/worktrees/page_client-reference-manifest.js +1 -1
- package/standalone/.next/server/app/_global-error.html +1 -1
- package/standalone/.next/server/app/_global-error.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.html +1 -1
- package/standalone/.next/server/app/_not-found.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js +2 -2
- package/standalone/.next/server/app/api/build-artifact-uploads/[uploadId]/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/route.js +2 -2
- package/standalone/.next/server/app/api/builds/[buildId]/artifacts/[artifactId]/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/codebases/by-path/route.js +2 -2
- package/standalone/.next/server/app/api/codebases/by-path/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/codebases/route.js +2 -2
- package/standalone/.next/server/app/api/codebases/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/graphql/route.js +2 -2
- package/standalone/.next/server/app/api/graphql/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/mcp/route.js +2 -2
- package/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/tools/call/route.js +2 -2
- package/standalone/.next/server/app/api/tools/call/route.js.nft.json +1 -1
- package/standalone/.next/server/app/api/tools/catalog/route.js +2 -2
- package/standalone/.next/server/app/api/tools/catalog/route.js.nft.json +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__1iv83x0._.js → [root-of-the-server]__0-ypkf7._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__08w_8a-._.js → [root-of-the-server]__00ku6-v._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__0yfvw4a._.js → [root-of-the-server]__0138gz-._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__0r5s0h6._.js → [root-of-the-server]__02vqwey._.js} +2 -2
- package/standalone/.next/server/chunks/{[root-of-the-server]__098f8w4._.js → [root-of-the-server]__056cnsc._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__1l6ed2g._.js → [root-of-the-server]__08mfybr._.js} +2 -2
- package/standalone/.next/server/chunks/{[root-of-the-server]__0cs2bfc._.js → [root-of-the-server]__08u874i._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__01h2pl1._.js → [root-of-the-server]__09skp6r._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__14-aq4c._.js → [root-of-the-server]__0cyubup._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__0_l5rqe._.js → [root-of-the-server]__0da1wsf._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__1mgcft0._.js → [root-of-the-server]__0e1fqyr._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__1frrx8s._.js → [root-of-the-server]__0f3ptor._.js} +2 -2
- package/standalone/.next/server/chunks/{[root-of-the-server]__0k01mi-._.js → [root-of-the-server]__0fih0li._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__02qjyhj._.js → [root-of-the-server]__0g0tnct._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__1ehdq4c._.js → [root-of-the-server]__0gbor-2._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__09lyzw2._.js → [root-of-the-server]__0mj6qcr._.js} +2 -2
- package/standalone/.next/server/chunks/{[root-of-the-server]__14uwobw._.js → [root-of-the-server]__0p_h088._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__0i4bd9d._.js → [root-of-the-server]__0vvjqp5._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__04rx7b9._.js → [root-of-the-server]__0w20bq-._.js} +2 -2
- package/standalone/.next/server/chunks/{[root-of-the-server]__0hmrx3m._.js → [root-of-the-server]__0wf0pka._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__0nxj1ky._.js → [root-of-the-server]__0wg2umj._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__17bgip6._.js → [root-of-the-server]__0xa_els._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__0wx4-1l._.js → [root-of-the-server]__0xukz2x._.js} +2 -2
- package/standalone/.next/server/chunks/[root-of-the-server]__1-z6lg_._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__020ggc3._.js → [root-of-the-server]__15aat79._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__00_-x1w._.js → [root-of-the-server]__15bbm2q._.js} +2 -2
- package/standalone/.next/server/chunks/{[root-of-the-server]__09c7zmy._.js → [root-of-the-server]__16l4wed._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__04hrhu3._.js → [root-of-the-server]__19zwwdv._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__0d4_f1e._.js → [root-of-the-server]__1a5_am-._.js} +1 -1
- package/standalone/.next/server/chunks/{[root-of-the-server]__0kxltc8._.js → [root-of-the-server]__1ajaiy1._.js} +1 -1
- package/standalone/.next/server/chunks/[root-of-the-server]__1dtlzq1._.js +3 -0
- package/standalone/.next/server/chunks/[root-of-the-server]__1kpqohm._.js +3 -0
- package/standalone/.next/server/chunks/[root-of-the-server]__1l7234r._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__0qjhcow._.js → [root-of-the-server]__1oahp4o._.js} +2 -2
- package/standalone/.next/server/chunks/[root-of-the-server]__1vip3sa._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__0cryh-d._.js → [root-of-the-server]__1wtng3p._.js} +1 -1
- package/standalone/.next/server/chunks/[root-of-the-server]__1wu654b._.js +3 -0
- package/standalone/.next/server/chunks/[root-of-the-server]__1x2nph5._.js +3 -0
- package/standalone/.next/server/chunks/[root-of-the-server]__1xk-0be._.js +3 -0
- package/standalone/.next/server/chunks/{[root-of-the-server]__0h0mvv8._.js → [root-of-the-server]__210dhdj._.js} +1 -1
- package/standalone/.next/server/chunks/_0exkna-._.js +29 -8
- package/standalone/.next/server/chunks/{_0bru086._.js → _0jurkow._.js} +26 -26
- package/standalone/.next/server/chunks/{_00mzn-u._.js → _0rx5rfm._.js} +27 -27
- package/standalone/.next/server/chunks/_0tufgj0._.js +68 -47
- package/standalone/.next/server/chunks/_0w2eghf._.js +29 -8
- package/standalone/.next/server/chunks/_152rnkf._.js +3 -3
- package/standalone/.next/server/chunks/{_1_g2i-t._.js → _16x77b_._.js} +27 -27
- package/standalone/.next/server/chunks/_1dbqy8c._.js +3 -3
- package/standalone/.next/server/chunks/_1vrixpc._.js +3 -3
- package/standalone/.next/server/chunks/_1yfz-9u._.js +3 -3
- package/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1osx7qy._.js → [root-of-the-server]__0361lgt._.js} +8 -2
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ay4_3d._.js +37 -0
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dm8osz._.js +3 -0
- package/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0oj1os4._.js → [root-of-the-server]__1xv798-._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__1z955gh._.js +3 -0
- package/standalone/.next/server/chunks/ssr/_00ye62k._.js +35 -0
- package/standalone/.next/server/chunks/ssr/_07tglcd._.js +35 -0
- package/standalone/.next/server/chunks/ssr/_0bvpmhm._.js +29 -25
- package/standalone/.next/server/chunks/ssr/{_0hoc_fd._.js → _0ddgabq._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/{_1x13g5y._.js → _0eb36qa._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/{_1dnm1d4._.js → _0mr9u9p._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/_0nm6upn._.js +3 -0
- package/standalone/.next/server/chunks/ssr/_0quhjav._.js +3 -0
- package/standalone/.next/server/chunks/ssr/_0w05v7m._.js +3 -0
- package/standalone/.next/server/chunks/ssr/_0xozjkz._.js +3 -0
- package/standalone/.next/server/chunks/ssr/_0xrpdyy._.js +3 -0
- package/standalone/.next/server/chunks/ssr/_1-2qcpf._.js +3 -0
- package/standalone/.next/server/chunks/ssr/{_1vhf014._.js → _1-grolz._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/_12ws_f2._.js +11 -0
- package/standalone/.next/server/chunks/ssr/_17p59oz._.js +3 -0
- package/standalone/.next/server/chunks/ssr/_19fwji0._.js +11 -0
- package/standalone/.next/server/chunks/ssr/_1_1j9nd._.js +13 -0
- package/standalone/.next/server/chunks/ssr/_1g3i459._.js +15 -0
- package/standalone/.next/server/chunks/ssr/{_1oh35yj._.js → _1g_aflc._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/{_1dsdn7w._.js → _1lcwubl._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/{_0sp1ojg._.js → _1r2rmfp._.js} +8 -2
- package/standalone/.next/server/chunks/ssr/_1za3z6k._.js +28 -24
- package/standalone/.next/server/chunks/ssr/{_13jl9nw._.js → _1zyjq9y._.js} +2 -2
- package/standalone/.next/server/chunks/ssr/_20ufqtr._.js +3 -0
- package/standalone/.next/server/chunks/ssr/messages_de_json_[json]_cjs_1uig1ud._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_es_json_[json]_cjs_082yukd._.js +1 -1
- package/standalone/.next/server/chunks/ssr/messages_fr_json_[json]_cjs_0j6-w0i._.js +1 -1
- package/standalone/.next/server/chunks/ssr/src_components_agents_agent-detail_tsx_0lfa4ui._.js +2 -2
- package/standalone/.next/server/chunks/ssr/src_components_builds_build-detail-page_tsx_0q1lvps._.js +9 -13
- package/standalone/.next/server/chunks/ssr/src_components_builds_builds-page_tsx_17qzmsl._.js +8 -12
- package/standalone/.next/server/chunks/ssr/src_components_github_actions-page_tsx_18434xt._.js +5 -5
- package/standalone/.next/server/chunks/ssr/src_components_github_pull-requests-page_tsx_1il3ga-._.js +12 -12
- package/standalone/.next/server/chunks/ssr/src_components_tools_tools-page_tsx_0k1jqcz._.js +2 -2
- package/standalone/.next/server/chunks/ssr/src_components_worktrees_worktree-detail-page_tsx_1oexgu_._.js +13 -4
- package/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/standalone/.next/server/pages/404.html +1 -1
- package/standalone/.next/server/pages/500.html +1 -1
- package/standalone/.next/server/server-reference-manifest.js +1 -1
- package/standalone/.next/server/server-reference-manifest.json +1 -1
- package/standalone/.next/static/chunks/{0sp_r-c6262te.js → 0newuocvg03xy.js} +1 -1
- package/standalone/.next/static/chunks/{3oyhf7rk2xr_g.js → 0rlomhlt6030e.js} +1 -1
- package/standalone/.next/static/chunks/16tfdsma_h0r5.js +33 -0
- package/standalone/.next/static/chunks/{1xjd6ye7mxyf5.js → 1802j8gq2g47d.js} +2 -2
- package/standalone/.next/static/chunks/1_tnhhn4f122y.js +9 -0
- package/standalone/.next/static/chunks/1eny65xy2ho48.js +1 -0
- package/standalone/.next/static/chunks/1l4bkigul15i3.js +25 -0
- package/standalone/.next/static/chunks/{3td_-1s61zkpa.js → 1nnp0crt0mi_-.js} +1 -1
- package/standalone/.next/static/chunks/1qd6cse_d9ae1.js +99 -0
- package/standalone/.next/static/chunks/{2dwchs_6y_o5f.js → 2-mxmazwsh-wz.js} +1 -1
- package/standalone/.next/static/chunks/2fzwgr2iq_783.css +1 -0
- package/standalone/.next/static/chunks/{278dxvyf095b_.js → 2jbygfc0lzu0t.js} +7 -7
- package/standalone/.next/static/chunks/2n7u72nxziv_5.js +7 -0
- package/standalone/.next/static/chunks/{1rivge68m21sm.js → 2rjf8o4g23no8.js} +10 -10
- package/standalone/.next/static/chunks/{42flok13o-l0b.js → 2x8qovg070057.js} +1 -1
- package/standalone/.next/static/chunks/{091l-ij_cv0b6.js → 3-u7pvogc5_bx.js} +12 -12
- package/standalone/.next/static/chunks/3-zh9b0tcttiw.js +33 -0
- package/standalone/.next/static/chunks/31wyih3wwkeid.js +1 -0
- package/standalone/.next/static/chunks/{1nqkxeuycfmrt.js → 36_1bjzx79v18.js} +5 -5
- package/standalone/.next/static/chunks/3ajj69p_sj615.js +1 -0
- package/standalone/.next/static/chunks/3jd8_7lna-j_x.js +40 -0
- package/standalone/.next/static/chunks/3jv2gnnn4vx-j.js +43 -0
- package/standalone/.next/static/chunks/3k0oakdayt9yt.js +40 -0
- package/standalone/.next/static/chunks/3pgngh8lg3be3.js +99 -0
- package/standalone/.next/static/chunks/{0w8rd_g6hnvmz.js → 4013cp3x6bvuw.js} +1 -1
- package/standalone/src/services/builds/build-freshness.test.ts +107 -0
- package/standalone/src/services/builds/build-freshness.ts +73 -0
- package/standalone/src/services/builds/builds.service.test.ts +167 -8
- package/standalone/src/services/builds/builds.service.ts +115 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__1878s0b._.js +0 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__18zrtty._.js +0 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__1_xz_m2._.js +0 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__1mx1hqe._.js +0 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__1sjjkyp._.js +0 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__1vk9266._.js +0 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__1yn6pds._.js +0 -3
- package/standalone/.next/server/chunks/[root-of-the-server]__1zwpjfo._.js +0 -3
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__03m5q8h._.js +0 -27
- package/standalone/.next/server/chunks/ssr/[root-of-the-server]__06bk7ik._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_09l5w5d._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_0_726fj._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_0a1zku5._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_0pu14lm._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_1eol9we._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_1h3t5g1._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_1kemhyd._.js +0 -39
- package/standalone/.next/server/chunks/ssr/_1kmkrz5._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_1r9ohdr._.js +0 -3
- package/standalone/.next/server/chunks/ssr/_1yzb5-u._.js +0 -11
- package/standalone/.next/server/chunks/ssr/src_components_0wvh73y._.js +0 -11
- package/standalone/.next/server/chunks/ssr/src_components_github_167_ydi._.js +0 -35
- package/standalone/.next/static/chunks/00dx8gu-2oyqe.js +0 -45
- package/standalone/.next/static/chunks/0j5n6p9i-vyzo.js +0 -9
- package/standalone/.next/static/chunks/0weklluydd2mf.js +0 -23
- package/standalone/.next/static/chunks/1eehbcjby4go8.js +0 -95
- package/standalone/.next/static/chunks/23_75iur2dq8p.js +0 -1
- package/standalone/.next/static/chunks/2lgsgstcvc7uk.css +0 -1
- package/standalone/.next/static/chunks/32agjzrkphjrl.js +0 -9
- package/standalone/.next/static/chunks/399uxexoo8x7f.js +0 -33
- package/standalone/.next/static/chunks/39ecics7n8z5m.js +0 -1
- package/standalone/.next/static/chunks/3_kaby2qep1pd.js +0 -34
- package/standalone/.next/static/chunks/3q7vh58-5dkv2.js +0 -25
- package/standalone/.next/static/chunks/3xkoiasuwi3ms.js +0 -95
- package/standalone/.next/static/chunks/41s57pssydrel.js +0 -43
- /package/standalone/.next/static/{AxIbPSeZUHq852SCBMR8d → 8uBWJ8MOV-OEPe88M3PhU}/_buildManifest.js +0 -0
- /package/standalone/.next/static/{AxIbPSeZUHq852SCBMR8d → 8uBWJ8MOV-OEPe88M3PhU}/_clientMiddlewareManifest.js +0 -0
- /package/standalone/.next/static/{AxIbPSeZUHq852SCBMR8d → 8uBWJ8MOV-OEPe88M3PhU}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,573474,e=>{"use strict";let t=(0,e.i(456420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],573474)},340953,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(30030);function a(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function i(...e){return r.useCallback(function(...e){return t=>{let r=!1,n=e.map(e=>{let n=a(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t<n.length;t++){let r=n[t];"function"==typeof r?r():a(e[t],null)}}}}(...e),e)}var l=e.i(326999);"u">typeof window&&window.document&&window.document.createElement;var o="AlertDialog",[s,d]=(0,n.createContextScope)(o,[l.createDialogScope]),c=(0,l.createDialogScope)(),u=e=>{let{__scopeAlertDialog:r,...n}=e,a=c(r);return(0,t.jsx)(l.Root,{...a,...n,modal:!0})};u.displayName=o;var f=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=c(n);return(0,t.jsx)(l.Trigger,{...i,...a,ref:r})});f.displayName="AlertDialogTrigger";var p=e=>{let{__scopeAlertDialog:r,...n}=e,a=c(r);return(0,t.jsx)(l.Portal,{...a,...n})};p.displayName="AlertDialogPortal";var m=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=c(n);return(0,t.jsx)(l.Overlay,{...i,...a,ref:r})});m.displayName="AlertDialogOverlay";var h="AlertDialogContent",[x,g]=s(h),v=r.forwardRef((e,n)=>{let{__scopeAlertDialog:a,children:o,...s}=e,d=c(a),u=i(n,r.useRef(null)),f=r.useRef(null);return(0,t.jsx)(x,{scope:a,cancelRef:f,children:(0,t.jsx)(l.Content,{role:"alertdialog",...d,...s,ref:u,onOpenAutoFocus:function(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n||!n.defaultPrevented)return t?.(n)}}(s.onOpenAutoFocus,e=>{e.preventDefault(),f.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:o})})});v.displayName=h;var b=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=c(n);return(0,t.jsx)(l.Title,{...i,...a,ref:r})});b.displayName="AlertDialogTitle";var y=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=c(n);return(0,t.jsx)(l.Description,{...i,...a,ref:r})});y.displayName="AlertDialogDescription";var j=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,i=c(n);return(0,t.jsx)(l.Close,{...i,...a,ref:r})});j.displayName="AlertDialogAction";var w="AlertDialogCancel",S=r.forwardRef((e,r)=>{let{__scopeAlertDialog:n,...a}=e,{cancelRef:o}=g(w,n),s=c(n),d=i(r,o);return(0,t.jsx)(l.Close,{...s,...a,ref:d})});S.displayName=w,e.s(["Action",0,j,"AlertDialog",0,u,"AlertDialogAction",0,j,"AlertDialogCancel",0,S,"AlertDialogContent",0,v,"AlertDialogDescription",0,y,"AlertDialogOverlay",0,m,"AlertDialogPortal",0,p,"AlertDialogTitle",0,b,"AlertDialogTrigger",0,f,"Cancel",0,S,"Content",0,v,"Description",0,y,"Overlay",0,m,"Portal",0,p,"Root",0,u,"Title",0,b,"Trigger",0,f,"createAlertDialogScope",0,d],691162);var C=e.i(691162),C=C,D=e.i(975157),N=e.i(519455);function k({...e}){return(0,t.jsx)(C.Root,{"data-slot":"alert-dialog",...e})}function E({...e}){return(0,t.jsx)(C.Trigger,{"data-slot":"alert-dialog-trigger",...e})}function T({...e}){return(0,t.jsx)(C.Portal,{"data-slot":"alert-dialog-portal",...e})}function B({className:e,...r}){return(0,t.jsx)(C.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,D.cn)("fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...r})}function R({className:e,size:r="default",...n}){return(0,t.jsxs)(T,{children:[(0,t.jsx)(B,{}),(0,t.jsx)(C.Content,{"data-slot":"alert-dialog-content","data-size":r,className:(0,D.cn)("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n})]})}function I({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,D.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...r})}function A({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,D.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",e),...r})}function $({className:e,...r}){return(0,t.jsx)(C.Title,{"data-slot":"alert-dialog-title",className:(0,D.cn)("font-heading text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",e),...r})}function P({className:e,...r}){return(0,t.jsx)(C.Description,{"data-slot":"alert-dialog-description",className:(0,D.cn)("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...r})}function L({className:e,variant:r="default",size:n="default",...a}){return(0,t.jsx)(N.Button,{variant:r,size:n,asChild:!0,children:(0,t.jsx)(C.Action,{"data-slot":"alert-dialog-action",className:(0,D.cn)(e),...a})})}function z({className:e,variant:r="outline",size:n="default",...a}){return(0,t.jsx)(N.Button,{variant:r,size:n,asChild:!0,children:(0,t.jsx)(C.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,D.cn)(e),...a})})}e.s(["ConfirmationDialog",0,function({actionLabel:e,cancelLabel:r,description:n,onConfirm:a,onOpenChange:i,open:l,title:o,trigger:s}){return(0,t.jsxs)(k,{onOpenChange:i,open:l,children:[s&&(0,t.jsx)(E,{asChild:!0,children:s}),(0,t.jsxs)(R,{children:[(0,t.jsxs)(I,{children:[(0,t.jsx)($,{children:o}),(0,t.jsx)(P,{children:n})]}),(0,t.jsxs)(A,{children:[(0,t.jsx)(z,{children:r}),(0,t.jsx)(L,{onClick:()=>void a(),variant:"destructive",children:e})]})]})]})}],340953)},77071,e=>{"use strict";let t=(0,e.i(456420).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],77071)},59497,e=>{"use strict";var t=e.i(843476),r=e.i(271645);function n(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function a(...e){return r.useCallback(function(...e){return t=>{let r=!1,a=e.map(e=>{let a=n(e,t);return r||"function"!=typeof a||(r=!0),a});if(r)return()=>{for(let t=0;t<a.length;t++){let r=a[t];"function"==typeof r?r():n(e[t],null)}}}}(...e),e)}var i=e.i(30030);function l(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n||!n.defaultPrevented)return t?.(n)}}"u">typeof window&&window.document&&window.document.createElement;var o=globalThis?.document?r.useLayoutEffect:()=>{};r[" useEffectEvent ".trim().toString()],r[" useInsertionEffect ".trim().toString()];var s=r[" useInsertionEffect ".trim().toString()]||o;Symbol("RADIX:SYNC_STATE");var d=e.i(999682),c=e.i(635804),u=e.i(296626);e.i(174080);var f=Symbol.for("radix.slottable"),p=Symbol.for("react.lazy");function m(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===p&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var h=r[" use ".trim().toString()],x=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,n)=>{var i;let l,o=(i=`Primitive.${n}`,(l=r.forwardRef((e,t)=>{var n;let l,o,{children:s,...d}=e,c=null,u=!1,p=[];m(s)&&"function"==typeof h&&(s=h(s._payload)),r.Children.forEach(s,e=>{var t;if(t=e,r.isValidElement(t)&&"function"==typeof t.type&&"__radixId"in t.type&&t.type.__radixId===f){u=!0;let t="child"in e.props?e.props.child:e.props.children;m(t)&&"function"==typeof h&&(t=h(t._payload)),c=((e,t)=>{if("child"in e.props){let t=e.props.child;return r.isValidElement(t)?r.cloneElement(t,void 0,e.props.children(t.props.children)):null}return r.isValidElement(t)?t:null})(e,t),p.push(c?.props?.children)}else p.push(e)}),c?c=r.cloneElement(c,void 0,p):!u&&1===r.Children.count(s)&&r.isValidElement(s)&&(c=s);let x=c?(n=c,(o=(l=Object.getOwnPropertyDescriptor(n.props,"ref")?.get)&&"isReactWarning"in l&&l.isReactWarning)?n.ref:(o=(l=Object.getOwnPropertyDescriptor(n,"ref")?.get)&&"isReactWarning"in l&&l.isReactWarning)?n.props.ref:n.props.ref||n.ref):void 0,g=a(t,x);if(!c){if(s||0===s){let e,t;throw Error(u?(e=i,`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`):(t=i,`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`))}return s}let v=function(e,t){let r={...t};for(let n in t){let a=e[n],i=t[n];/^on[A-Z]/.test(n)?a&&i?r[n]=(...e)=>{let t=i(...e);return a(...e),t}:a&&(r[n]=a):"style"===n?r[n]={...a,...i}:"className"===n&&(r[n]=[a,i].filter(Boolean).join(" "))}return{...e,...r}}(d,c.props??{});return c.type!==r.Fragment&&(v.ref=t?g:x),r.cloneElement(c,v)})).displayName=`${i}.Slot`,l),s=r.forwardRef((e,r)=>{let{asChild:a,...i}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(a?o:n,{...i,ref:r})});return s.displayName=`Primitive.${n}`,{...e,[n]:s}},{}),g="Checkbox",[v,b]=(0,i.createContextScope)(g),[y,j]=v(g);function w(e){let{__scopeCheckbox:n,checked:a,children:i,defaultChecked:l,disabled:o,form:d,name:c,onCheckedChange:u,required:f,value:p="on",internal_do_not_use_render:m}=e,[h,x]=function({prop:e,defaultProp:t,onChange:n=()=>{},caller:a}){let[i,l,o]=function({defaultProp:e,onChange:t}){let[n,a]=r.useState(e),i=r.useRef(n),l=r.useRef(t);return s(()=>{l.current=t},[t]),r.useEffect(()=>{i.current!==n&&(l.current?.(n),i.current=n)},[n,i]),[n,a,l]}({defaultProp:t,onChange:n}),d=void 0!==e,c=d?e:i;{let t=r.useRef(void 0!==e);r.useEffect(()=>{let e=t.current;if(e!==d){let t=d?"controlled":"uncontrolled";console.warn(`${a} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=d},[d,a])}return[c,r.useCallback(t=>{if(d){let r="function"==typeof t?t(e):t;r!==e&&o.current?.(r)}else l(t)},[d,e,l,o])]}({prop:a,defaultProp:l??!1,onChange:u,caller:g}),[v,b]=r.useState(null),[j,w]=r.useState(null),S=r.useRef(!1),C=!v||!!d||!!v.closest("form"),D={checked:h,disabled:o,setChecked:x,control:v,setControl:b,name:c,form:d,value:p,hasConsumerStoppedPropagationRef:S,required:f,defaultChecked:!B(l)&&l,isFormControl:C,bubbleInput:j,setBubbleInput:w};return(0,t.jsx)(y,{scope:n,...D,children:"function"==typeof m?m(D):i})}var S="CheckboxTrigger",C=r.forwardRef(({__scopeCheckbox:e,onKeyDown:n,onClick:i,...o},s)=>{let{control:d,value:c,disabled:u,checked:f,required:p,setControl:m,setChecked:h,hasConsumerStoppedPropagationRef:g,isFormControl:v,bubbleInput:b}=j(S,e),y=a(s,m),w=r.useRef(f);return r.useEffect(()=>{let e=d?.form;if(e){let t=()=>h(w.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[d,h]),(0,t.jsx)(x.button,{type:"button",role:"checkbox","aria-checked":B(f)?"mixed":f,"aria-required":p,"data-state":R(f),"data-disabled":u?"":void 0,disabled:u,value:c,...o,ref:y,onKeyDown:l(n,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:l(i,e=>{h(e=>!!B(e)||!e),b&&v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})})});C.displayName=S;var D=r.forwardRef((e,r)=>{let{__scopeCheckbox:n,name:a,checked:i,defaultChecked:l,required:o,disabled:s,value:d,onCheckedChange:c,form:u,...f}=e;return(0,t.jsx)(w,{__scopeCheckbox:n,checked:i,defaultChecked:l,disabled:s,required:o,onCheckedChange:c,name:a,form:u,value:d,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(C,{...f,ref:r,__scopeCheckbox:n}),e&&(0,t.jsx)(T,{__scopeCheckbox:n})]})})});D.displayName=g;var N="CheckboxIndicator",k=r.forwardRef((e,r)=>{let{__scopeCheckbox:n,forceMount:a,...i}=e,l=j(N,n);return(0,t.jsx)(u.Presence,{present:a||B(l.checked)||!0===l.checked,children:(0,t.jsx)(x.span,{"data-state":R(l.checked),"data-disabled":l.disabled?"":void 0,...i,ref:r,style:{pointerEvents:"none",...e.style}})})});k.displayName=N;var E="CheckboxBubbleInput",T=r.forwardRef(({__scopeCheckbox:e,...n},i)=>{let{control:l,hasConsumerStoppedPropagationRef:o,checked:s,defaultChecked:u,required:f,disabled:p,name:m,value:h,form:g,bubbleInput:v,setBubbleInput:b}=j(E,e),y=a(i,b),w=(0,d.usePrevious)(s),S=(0,c.useSize)(l);r.useEffect(()=>{if(!v)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!o.current;if(w!==s&&e){let r=new Event("click",{bubbles:t});v.indeterminate=B(s),e.call(v,!B(s)&&s),v.dispatchEvent(r)}},[v,w,s,o]);let C=r.useRef(!B(s)&&s);return(0,t.jsx)(x.input,{type:"checkbox","aria-hidden":!0,defaultChecked:u??C.current,required:f,disabled:p,name:m,value:h,form:g,...n,tabIndex:-1,ref:y,style:{...n.style,...S,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function B(e){return"indeterminate"===e}function R(e){return B(e)?"indeterminate":e?"checked":"unchecked"}T.displayName=E,e.s(["Checkbox",0,D,"CheckboxIndicator",0,k,"Indicator",0,k,"Root",0,D,"createCheckboxScope",0,b,"unstable_BubbleInput",0,T,"unstable_CheckboxBubbleInput",0,T,"unstable_CheckboxProvider",0,w,"unstable_CheckboxTrigger",0,C,"unstable_Provider",0,w,"unstable_Trigger",0,C],388474);var I=e.i(388474),I=I,A=e.i(975157),$=e.i(593698);e.s(["Checkbox",0,function({className:e,...r}){return(0,t.jsx)(I.Root,{"data-slot":"checkbox",className:(0,A.cn)("peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",e),...r,children:(0,t.jsx)(I.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:(0,t.jsx)($.CheckIcon,{})})})}],59497)},784774,e=>{"use strict";var t=e.i(843476),r=e.i(975157);e.s(["Table",0,function({className:e,containerClassName:n,...a}){return(0,t.jsx)("div",{className:(0,r.cn)("w-full overflow-x-auto",n),children:(0,t.jsx)("table",{className:(0,r.cn)("w-full caption-bottom text-sm",e),...a})})},"TableBody",0,function({className:e,...n}){return(0,t.jsx)("tbody",{className:(0,r.cn)("divide-y",e),...n})},"TableCell",0,function({className:e,...n}){return(0,t.jsx)("td",{className:(0,r.cn)("whitespace-nowrap px-3 py-3 align-middle",e),...n})},"TableFooter",0,function({className:e,...n}){return(0,t.jsx)("tfoot",{className:(0,r.cn)("border-t bg-muted/50 font-medium",e),...n})},"TableHead",0,function({className:e,...n}){return(0,t.jsx)("th",{className:(0,r.cn)("h-10 whitespace-nowrap px-3 text-left align-middle text-xs font-medium text-muted-foreground",e),...n})},"TableHeader",0,function({className:e,...n}){return(0,t.jsx)("thead",{className:(0,r.cn)("border-b",e),...n})},"TableRow",0,function({className:e,...n}){return(0,t.jsx)("tr",{className:(0,r.cn)("transition-colors hover:bg-muted/40",e),...n})}])},776639,e=>{"use strict";var t=e.i(843476),r=e.i(560964),n=e.i(964053),a=e.i(519455),i=e.i(975157);function l({...e}){return(0,t.jsx)(n.Dialog.Portal,{"data-slot":"dialog-portal",...e})}function o({className:e,...r}){return(0,t.jsx)(n.Dialog.Overlay,{className:(0,i.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),"data-slot":"dialog-overlay",...r})}e.s(["Dialog",0,function({...e}){return(0,t.jsx)(n.Dialog.Root,{"data-slot":"dialog",...e})},"DialogContent",0,function({className:e,children:s,showCloseButton:d=!0,...c}){return(0,t.jsxs)(l,{children:[(0,t.jsx)(o,{}),(0,t.jsxs)(n.Dialog.Content,{className:(0,i.cn)("fixed top-1/2 left-1/2 z-50 grid max-h-[85dvh] w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 overflow-y-auto rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),"data-slot":"dialog-content",...c,children:[s,d&&(0,t.jsx)(n.Dialog.Close,{asChild:!0,"data-slot":"dialog-close",children:(0,t.jsxs)(a.Button,{className:"absolute top-2 right-2",size:"icon-sm",variant:"ghost",children:[(0,t.jsx)(r.XIcon,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})})]})]})},"DialogDescription",0,function({className:e,...r}){return(0,t.jsx)(n.Dialog.Description,{className:(0,i.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),"data-slot":"dialog-description",...r})},"DialogFooter",0,function({className:e,showCloseButton:r=!1,children:l,...o}){return(0,t.jsxs)("div",{className:(0,i.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",e),"data-slot":"dialog-footer",...o,children:[l,r&&(0,t.jsx)(n.Dialog.Close,{asChild:!0,children:(0,t.jsx)(a.Button,{variant:"outline",children:"Close"})})]})},"DialogHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{className:(0,i.cn)("flex flex-col gap-2",e),"data-slot":"dialog-header",...r})},"DialogTitle",0,function({className:e,...r}){return(0,t.jsx)(n.Dialog.Title,{className:(0,i.cn)("font-heading text-base leading-none font-medium",e),"data-slot":"dialog-title",...r})}])},716327,e=>{"use strict";var t=e.i(26495);e.s(["ChevronDown",()=>t.default])},82612,e=>{"use strict";var t=e.i(843476),r=e.i(225913),n=e.i(975157);let a=(0,r.cva)("mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",icon:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-4"}},defaultVariants:{variant:"default"}});e.s(["Empty",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"empty",className:(0,n.cn)("flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border-dashed p-6 text-center text-balance",e),...r})},"EmptyDescription",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"empty-description",className:(0,n.cn)("text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",e),...r})},"EmptyHeader",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"empty-header",className:(0,n.cn)("flex max-w-sm flex-col items-center gap-2",e),...r})},"EmptyMedia",0,function({className:e,variant:r="default",...i}){return(0,t.jsx)("div",{"data-slot":"empty-icon","data-variant":r,className:(0,n.cn)(a({variant:r,className:e})),...i})},"EmptyTitle",0,function({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"empty-title",className:(0,n.cn)("font-heading text-sm font-medium tracking-tight",e),...r})}])},462777,e=>{"use strict";async function t(e){if(navigator.clipboard?.writeText)try{await navigator.clipboard.writeText(e);return}catch{}let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.append(t),t.select();let r=document.execCommand("copy");if(t.remove(),!r)throw Error("Copy is not supported by this browser")}e.s(["copyText",0,t,"createClientId",0,function(){try{if(globalThis.crypto?.randomUUID)return globalThis.crypto.randomUUID()}catch{}if(globalThis.crypto?.getRandomValues)try{let e=globalThis.crypto.getRandomValues(new Uint8Array(16));return Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}catch{}return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}])},986253,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["default",0,t])},842727,e=>{"use strict";var t=e.i(271645);function r(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r||!r.defaultPrevented)return t?.(r)}}"u">typeof window&&window.document&&window.document.createElement;var n=e.i(75830);function a(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function i(...e){return t.useCallback(function(...e){return t=>{let r=!1,n=e.map(e=>{let n=a(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t<n.length;t++){let r=n[t];"function"==typeof r?r():a(e[t],null)}}}}(...e),e)}var l=e.i(30030),o=e.i(610772);e.i(174080);var s=Symbol.for("radix.slottable"),d=Symbol.for("react.lazy");function c(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===d&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var u=t[" use ".trim().toString()],f=e.i(843476),p=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{var n;let a,l=(n=`Primitive.${r}`,(a=t.forwardRef((e,r)=>{var a;let l,o,{children:d,...f}=e,p=null,m=!1,h=[];c(d)&&"function"==typeof u&&(d=u(d._payload)),t.Children.forEach(d,e=>{var r;if(r=e,t.isValidElement(r)&&"function"==typeof r.type&&"__radixId"in r.type&&r.type.__radixId===s){m=!0;let r="child"in e.props?e.props.child:e.props.children;c(r)&&"function"==typeof u&&(r=u(r._payload)),p=((e,r)=>{if("child"in e.props){let r=e.props.child;return t.isValidElement(r)?t.cloneElement(r,void 0,e.props.children(r.props.children)):null}return t.isValidElement(r)?r:null})(e,r),h.push(p?.props?.children)}else h.push(e)}),p?p=t.cloneElement(p,void 0,h):!m&&1===t.Children.count(d)&&t.isValidElement(d)&&(p=d);let x=p?(a=p,(o=(l=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in l&&l.isReactWarning)?a.ref:(o=(l=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in l&&l.isReactWarning)?a.props.ref:a.props.ref||a.ref):void 0,g=i(r,x);if(!p){if(d||0===d){let e,t;throw Error(m?(e=n,`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`):(t=n,`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`))}return d}let v=function(e,t){let r={...t};for(let n in t){let a=e[n],i=t[n];/^on[A-Z]/.test(n)?a&&i?r[n]=(...e)=>{let t=i(...e);return a(...e),t}:a&&(r[n]=a):"style"===n?r[n]={...a,...i}:"className"===n&&(r[n]=[a,i].filter(Boolean).join(" "))}return{...e,...r}}(f,p.props??{});return p.type!==t.Fragment&&(v.ref=r?g:x),t.cloneElement(p,v)})).displayName=`${n}.Slot`,a),o=t.forwardRef((e,t)=>{let{asChild:n,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,f.jsx)(n?l:r,{...a,ref:t})});return o.displayName=`Primitive.${r}`,{...e,[r]:o}},{}),m=e.i(30207),h=globalThis?.document?t.useLayoutEffect:()=>{};t[" useEffectEvent ".trim().toString()],t[" useInsertionEffect ".trim().toString()];var x=t[" useInsertionEffect ".trim().toString()]||h;Symbol("RADIX:SYNC_STATE");var g=e.i(586318),v=!1,b=t[" useSyncExternalStore ".trim().toString()];function y(){return()=>{}}var j="function"==typeof b?function(){return b(y,()=>!0,()=>!1)}:function(){let[e,r]=t.useState(v);return t.useEffect(()=>{v||(v=!0,r(!0))},[]),e},w="rovingFocusGroup.onEntryFocus",S={bubbles:!1,cancelable:!0},C="RovingFocusGroup",[D,N,k]=(0,n.createCollection)(C),[E,T]=(0,l.createContextScope)(C,[k]),[B,R]=E(C),I=t.forwardRef((e,t)=>(0,f.jsx)(D.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,f.jsx)(D.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,f.jsx)(A,{...e,ref:t})})}));I.displayName=C;var A=t.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:a,orientation:l,loop:o=!1,dir:s,currentTabStopId:d,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:u,onEntryFocus:h,preventScrollOnEntryFocus:v=!1,...b}=e,y=t.useRef(null),j=i(n,y),D=(0,g.useDirection)(s),[k,E]=function({prop:e,defaultProp:r,onChange:n=()=>{},caller:a}){let[i,l,o]=function({defaultProp:e,onChange:r}){let[n,a]=t.useState(e),i=t.useRef(n),l=t.useRef(r);return x(()=>{l.current=r},[r]),t.useEffect(()=>{i.current!==n&&(l.current?.(n),i.current=n)},[n,i]),[n,a,l]}({defaultProp:r,onChange:n}),s=void 0!==e,d=s?e:i;{let r=t.useRef(void 0!==e);t.useEffect(()=>{let e=r.current;if(e!==s){let t=s?"controlled":"uncontrolled";console.warn(`${a} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}r.current=s},[s,a])}return[d,t.useCallback(t=>{if(s){let r="function"==typeof t?t(e):t;r!==e&&o.current?.(r)}else l(t)},[s,e,l,o])]}({prop:d,defaultProp:c??null,onChange:u,caller:C}),[T,R]=t.useState(!1),I=(0,m.useCallbackRef)(h),A=N(a),$=t.useRef(!1),[P,L]=t.useState(0);return t.useEffect(()=>{let e=y.current;if(e)return e.addEventListener(w,I),()=>e.removeEventListener(w,I)},[I]),(0,f.jsx)(B,{scope:a,orientation:l,dir:D,loop:o,currentTabStopId:k,onItemFocus:t.useCallback(e=>E(e),[E]),onItemShiftTab:t.useCallback(()=>R(!0),[]),onFocusableItemAdd:t.useCallback(()=>L(e=>e+1),[]),onFocusableItemRemove:t.useCallback(()=>L(e=>e-1),[]),children:(0,f.jsx)(p.div,{tabIndex:T||0===P?-1:0,"data-orientation":l,...b,ref:j,style:{outline:"none",...e.style},onMouseDown:r(e.onMouseDown,()=>{$.current=!0}),onFocus:r(e.onFocus,e=>{let t=!$.current;if(e.target===e.currentTarget&&t&&!T){let t=new CustomEvent(w,S);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=A().filter(e=>e.focusable);z([e.find(e=>e.active),e.find(e=>e.id===k),...e].filter(Boolean).map(e=>e.ref.current),v)}}$.current=!1}),onBlur:r(e.onBlur,()=>R(!1))})})}),$="RovingFocusGroupItem",P=t.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:a,focusable:i=!0,active:l=!1,tabStopId:s,children:d,...c}=e,u=(0,o.useId)(),m=s||u,x=R($,a),g=x.currentTabStopId===m,v=N(a),{onFocusableItemAdd:b,onFocusableItemRemove:y,currentTabStopId:w}=x,S=j();return h(()=>{if(S&&i)return b(),()=>y()},[S,i,b,y]),t.useEffect(()=>{if(!S&&i)return b(),()=>y()},[S,i,b,y]),(0,f.jsx)(D.ItemSlot,{scope:a,id:m,focusable:i,active:l,children:(0,f.jsx)(p.span,{tabIndex:g?0:-1,"data-orientation":x.orientation,...c,ref:n,onMouseDown:r(e.onMouseDown,e=>{i?x.onItemFocus(m):e.preventDefault()}),onFocus:r(e.onFocus,()=>x.onItemFocus(m)),onKeyDown:r(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void x.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let a=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return L[a]}(e,x.orientation,x.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=v().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&a.reverse();let i=a.indexOf(e.currentTarget);a=x.loop?(r=a,n=i+1,r.map((e,t)=>r[(n+t)%r.length])):a.slice(i+1)}setTimeout(()=>z(a))}}),children:"function"==typeof d?d({isCurrentTabStop:g,hasTabStop:null!=w}):d})})});P.displayName=$;var L={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function z(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}e.s(["Item",0,P,"Root",0,I,"createRovingFocusGroupScope",0,T],842727)},395925,e=>{"use strict";let t=(0,e.i(456420).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],395925)},21357,e=>{"use strict";let t=(0,e.i(456420).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",0,t],21357)},771777,866026,e=>{"use strict";var t=e.i(843476),r=e.i(395925),n=e.i(948148),a=e.i(271645),i=e.i(519455),l=e.i(987968),o=e.i(462777),s=e.i(637611);e.s(["RebuildButton",0,function({buildId:e,onCompleted:d,onError:c,size:u="default"}){let f=(0,n.useTranslations)("builds"),[p,m]=(0,a.useState)(!1),h=async()=>{m(!0),c(null);try{let t=await (0,s.controlPlaneRequest)(`mutation RebuildBuild($id: ID!, $requestId: ID!) {
|
|
2
|
+
rebuildBuild(id: $id, requestId: $requestId) { id status }
|
|
3
|
+
}`,{id:e,requestId:(0,o.createClientId)()});await d?.(t.rebuildBuild)}catch(e){c(e instanceof Error?e.message:String(e))}finally{m(!1)}};return(0,t.jsxs)(i.Button,{disabled:p,onClick:e=>{e.stopPropagation(),h()},onKeyDown:e=>e.stopPropagation(),size:u,type:"button",variant:"outline",children:[p?(0,t.jsx)(l.Spinner,{}):(0,t.jsx)(r.RotateCcw,{})," ",f("rebuild")]})}],771777);var d=e.i(716327),c=e.i(21357),u=e.i(755146);e.s(["RunBuildControls",0,function({buildId:e,destinationType:r,preferredDestination:f,onCompleted:p,onError:m,size:h="default"}){let x=(0,n.useTranslations)("builds"),g=f?.generic?null:f??null,[v,b]=(0,a.useState)(g?[g]:[]),[y,j]=(0,a.useState)(g?new Set([g.id]):new Set),[w,S]=(0,a.useState)(!1),[C,D]=(0,a.useState)(!1),[N,k]=(0,a.useState)(!1),E=(0,a.useMemo)(()=>v.filter(e=>y.has(e.id)).map(e=>e.name),[v,y]),T=async()=>{D(!0),m(null);try{let t=(await (0,s.controlPlaneRequest)(`mutation BuildRunDestinations($buildId: ID!, $requestId: ID!) {
|
|
4
|
+
inspectBuildRunDestinations(buildId: $buildId, requestId: $requestId)
|
|
5
|
+
}`,{buildId:e,requestId:(0,o.createClientId)()})).inspectBuildRunDestinations.filter(e=>e.type===r&&!e.generic);b(t),j(e=>{let r=new Set(t.map(e=>e.id));return new Set([...e].filter(e=>r.has(e)))}),S(!0)}catch(e){m(e instanceof Error?e.message:String(e))}finally{D(!1)}},B=async()=>{k(!0),m(null);try{await (0,s.controlPlaneRequest)(`mutation RunCompletedBuild($input: RunBuildInput!) {
|
|
6
|
+
runBuild(input: $input) { id status }
|
|
7
|
+
}`,{input:{buildId:e,destinations:v.filter(e=>y.has(e.id)),requestId:(0,o.createClientId)()}}),j(new Set),await p?.()}catch(e){m(e instanceof Error?e.message:String(e))}finally{k(!1)}};return(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2",onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[(0,t.jsxs)(u.DropdownMenu,{onOpenChange:e=>{e&&!w&&T()},children:[(0,t.jsx)(u.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsxs)(i.Button,{disabled:C,size:h,type:"button",variant:"outline",children:[C?(0,t.jsx)(l.Spinner,{}):(0,t.jsx)(c.Play,{}),E.length?x("selectedDevices",{count:E.length}):x("selectRunDevices"),(0,t.jsx)(d.ChevronDown,{})]})}),(0,t.jsxs)(u.DropdownMenuContent,{align:"end",className:"w-72",children:[v.map(e=>(0,t.jsxs)(u.DropdownMenuCheckboxItem,{checked:y.has(e.id),onCheckedChange:t=>j(r=>{let n=new Set(r);return t?n.add(e.id):n.delete(e.id),n}),children:[e.name,e.osVersion?` \xb7 ${e.osVersion}`:""]},e.id)),w&&!v.length&&(0,t.jsx)("p",{className:"p-2 text-xs text-muted-foreground",children:x("noCompatibleDevices")})]})]}),(0,t.jsxs)(i.Button,{disabled:N||0===y.size,onClick:()=>void B(),size:h,type:"button",children:[N?(0,t.jsx)(l.Spinner,{}):(0,t.jsx)(c.Play,{})," ",x("run")]})]})}],866026)},90969,747047,111530,e=>{"use strict";e.s(["buildDuration",0,function(e,t=Date.now()){let r=e.durationMs??(e.startedAt&&null!==t&&["QUEUED","PREPARING","RUNNING"].includes(e.status)?t-Date.parse(e.startedAt):null);if(null===r||!Number.isFinite(r))return"—";let n=Math.max(0,Math.floor(r/1e3)),a=Math.floor(n/3600),i=Math.floor(n%3600/60),l=n%60;return a>0?`${a}h${i>0?` ${i}m`:""}`:i>0?`${i}m${l>0?` ${l}s`:""}`:`${l}s`},"buildSnapshotName",0,function(e){let t=e.snapshot.repository,r=e.snapshot.worktree;return{repository:t?.name??"—",worktree:r?.branch??r?.folder??"—"}},"buildStatusVariant",0,function(e){return"FAILED"===e?"destructive":"SUCCEEDED"===e?"default":"secondary"},"relativeBuildAge",0,function(e,t,r=Date.now()){if(null===r)return"—";let n=Math.round((Date.parse(e)-r)/1e3),a=new Intl.RelativeTimeFormat(t,{numeric:"auto"});for(let[e,t]of[["year",31536e3],["month",2592e3],["week",604800],["day",86400],["hour",3600],["minute",60]])if(Math.abs(n)>=t)return a.format(Math.round(n/t),e);return a.format(n,"second")}],90969);let t=`
|
|
8
|
+
id requestId jobId status action destinationType destination snapshot commandSummary artifactDirectory errorCode error outOfDate
|
|
9
|
+
createdAt startedAt finishedAt durationMs updatedAt
|
|
10
|
+
artifacts { id kind relativePath sizeBytes checksum metadata createdAt }
|
|
11
|
+
`;e.s(["BUILD_LIST_FIELDS",0,t],747047);var r=e.i(271645);e.s(["useBuildTimeTicker",0,function(){let[e,t]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let e=()=>t(Date.now()),r=window.setTimeout(e,0),n=window.setInterval(e,1e3);return()=>{window.clearTimeout(r),window.clearInterval(n)}},[]),e}],111530)},229490,e=>{"use strict";var t=e.i(843476),r=e.i(93384),n=e.i(77071);let a=(0,e.i(456420).default)("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);var i=e.i(573474),l=e.i(861745),o=e.i(948148),s=e.i(271645),d=e.i(340953),c=e.i(929592),u=e.i(487486),f=e.i(519455),p=e.i(515288),m=e.i(59497),h=e.i(776639),x=e.i(82612),g=e.i(793479),v=e.i(110204),b=e.i(967489),y=e.i(987968),j=e.i(784774),w=e.i(677572),S=e.i(624687),C=e.i(520133),D=e.i(637611),N=e.i(90969),k=e.i(747047),E=e.i(771777),T=e.i(866026),B=e.i(111530);let R=`
|
|
12
|
+
id name preBuildScript postBuildScript enabledByDefault timeoutSeconds failureBehavior createdAt updatedAt
|
|
13
|
+
`,I=`export default async function preBuild({
|
|
14
|
+
buildId,
|
|
15
|
+
branch,
|
|
16
|
+
destination,
|
|
17
|
+
action,
|
|
18
|
+
}) {
|
|
19
|
+
// Runs before the build from the worktree root.
|
|
20
|
+
}`,A=`export default async function postBuild({
|
|
21
|
+
buildId,
|
|
22
|
+
branch,
|
|
23
|
+
destination,
|
|
24
|
+
action,
|
|
25
|
+
buildFolder,
|
|
26
|
+
failed,
|
|
27
|
+
cancelled,
|
|
28
|
+
errorCode,
|
|
29
|
+
error,
|
|
30
|
+
}) {
|
|
31
|
+
// Runs after every build attempt from the worktree root.
|
|
32
|
+
}`,$=["ALL","QUEUED","PREPARING","RUNNING","SUCCEEDED","FAILED","CANCELLED"];function P({open:e,script:r,onOpenChange:n,onSaved:a}){let i=(0,o.useTranslations)("builds"),[l,d]=(0,s.useState)(r?.name??""),[u,p]=(0,s.useState)(r?r.preBuildScript??"":I),[x,j]=(0,s.useState)(r?r.postBuildScript??"":A),[w,C]=(0,s.useState)(r?.enabledByDefault??!1),[N,k]=(0,s.useState)(r?.timeoutSeconds??300),[E,T]=(0,s.useState)(r?.failureBehavior??"FAIL_BUILD"),[B,R]=(0,s.useState)(!1),[$,L]=(0,s.useState)(null),z=async()=>{R(!0),L(null);try{await (0,D.controlPlaneRequest)(`mutation SaveBuildScript($input: SaveBuildScriptInput!) {
|
|
33
|
+
saveBuildScript(input: $input) { id }
|
|
34
|
+
}`,{input:{id:r?.id??null,name:l,preBuildScript:u||null,postBuildScript:x||null,enabledByDefault:w,timeoutSeconds:N,failureBehavior:E}}),await a(),n(!1)}catch(e){L(e instanceof Error?e.message:String(e))}finally{R(!1)}};return(0,t.jsx)(h.Dialog,{onOpenChange:n,open:e,children:(0,t.jsxs)(h.DialogContent,{className:"sm:max-w-2xl",children:[(0,t.jsxs)(h.DialogHeader,{children:[(0,t.jsx)(h.DialogTitle,{children:i(r?"editScript":"newScript")}),(0,t.jsx)(h.DialogDescription,{children:i("scriptDescription")})]}),$&&(0,t.jsx)(c.Alert,{variant:"destructive",children:(0,t.jsx)(c.AlertDescription,{children:$})}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(v.Label,{htmlFor:"build-script-name",children:i("name")}),(0,t.jsx)(g.Input,{id:"build-script-name",onChange:e=>d(e.target.value),value:l})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(v.Label,{htmlFor:"pre-build-script",children:i("preBuildScript")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:i("preBuildScriptHelp")}),(0,t.jsx)(S.Textarea,{className:"font-mono text-xs",id:"pre-build-script",onChange:e=>p(e.target.value),rows:8,value:u})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(v.Label,{htmlFor:"post-build-script",children:i("postBuildScript")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:i("postBuildScriptHelp")}),(0,t.jsx)(S.Textarea,{className:"font-mono text-xs",id:"post-build-script",onChange:e=>j(e.target.value),rows:8,value:x})]}),(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(v.Label,{htmlFor:"script-timeout",children:i("timeout")}),(0,t.jsx)(g.Input,{id:"script-timeout",min:1,max:3600,onChange:e=>k(Number(e.target.value)),type:"number",value:N})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(v.Label,{children:i("failureBehavior")}),(0,t.jsxs)(b.Select,{onValueChange:e=>T(e),value:E,children:[(0,t.jsx)(b.SelectTrigger,{children:(0,t.jsx)(b.SelectValue,{})}),(0,t.jsxs)(b.SelectContent,{children:[(0,t.jsx)(b.SelectItem,{value:"FAIL_BUILD",children:i("failureBehaviors.FAIL_BUILD")}),(0,t.jsx)(b.SelectItem,{value:"CONTINUE",children:i("failureBehaviors.CONTINUE")})]})]})]})]}),(0,t.jsxs)("label",{className:"flex items-center gap-2",children:[(0,t.jsx)(m.Checkbox,{checked:w,onCheckedChange:e=>C(!!e)}),i("enabledByDefault")]})]}),(0,t.jsxs)(h.DialogFooter,{children:[(0,t.jsx)(f.Button,{onClick:()=>n(!1),type:"button",variant:"outline",children:i("cancel")}),(0,t.jsxs)(f.Button,{disabled:B||!l.trim()||!u.trim()&&!x.trim(),onClick:()=>void z(),type:"button",children:[B&&(0,t.jsx)(y.Spinner,{})," ",i("save")]})]})]})})}e.s(["BuildsPage",0,function(){let e=(0,o.useTranslations)("builds"),h=(0,l.useLocale)(),g=(0,C.useRouter)(),v=(0,B.useBuildTimeTicker)(),[S,I]=(0,s.useState)([]),[A,L]=(0,s.useState)([]),[z,_]=(0,s.useState)("ALL"),[F,M]=(0,s.useState)(null),[O,U]=(0,s.useState)(!0),[H,V]=(0,s.useState)(!1),[q,K]=(0,s.useState)(null),[G,W]=(0,s.useState)(!1),[X,Y]=(0,s.useState)(null),[Q,Z]=(0,s.useState)(new Set),[J,ee]=(0,s.useState)(!1),[et,er]=(0,s.useState)(!1),en=(0,s.useCallback)(async e=>{e?V(!0):U(!0);try{let t=await (0,D.controlPlaneRequest)(`query BuildsPage($after: ID, $status: BuildStatus) {
|
|
35
|
+
builds(first: 50, after: $after, status: $status) {
|
|
36
|
+
items { ${k.BUILD_LIST_FIELDS} }
|
|
37
|
+
nextCursor
|
|
38
|
+
}
|
|
39
|
+
buildScripts { ${R} }
|
|
40
|
+
}`,{after:e??null,status:"ALL"===z?null:z});I(r=>e?[...r,...t.builds.items]:t.builds.items),M(t.builds.nextCursor),L(t.buildScripts),K(null)}catch(e){K(e instanceof Error?e.message:String(e))}finally{U(!1),V(!1)}},[z]);(0,s.useEffect)(()=>{let e=window.setTimeout(()=>void en(),0);return()=>window.clearTimeout(e)},[en]),(0,s.useEffect)(()=>(0,D.controlPlaneSubscriptions)().subscribe({query:"subscription BuildsChanged { buildsChanged { id } }"},{next:()=>void en(),error:()=>void 0,complete:()=>void 0}),[en]);let ea=async e=>{try{await (0,D.controlPlaneRequest)("mutation DeleteBuildScript($id: ID!) { deleteBuildScript(id: $id) }",{id:e}),await en()}catch(e){K(e instanceof Error?e.message:String(e))}},ei=(0,s.useMemo)(()=>{let e=[],t=new Intl.DateTimeFormat(h,{dateStyle:"full"});for(let r of S){let n=new Date(r.startedAt??r.createdAt),a=`${n.getFullYear()}-${n.getMonth()}-${n.getDate()}`,i=e.at(-1);i?.dateKey===a?i.items.push(r):e.push({key:`${a}-${r.id}`,dateKey:a,label:t.format(n),items:[r]})}return e},[S,h]),el=async()=>{if(Q.size){er(!0),K(null);try{await (0,D.controlPlaneRequest)("mutation DeleteBuilds($ids: [ID!]!) { deleteBuilds(ids: $ids) }",{ids:[...Q]}),Z(new Set),ee(!1),await en()}catch(e){K(e instanceof Error?e.message:String(e))}finally{er(!1)}}};return(0,t.jsxs)("section",{className:"mx-auto flex w-full max-w-[1500px] flex-col gap-6",children:[(0,t.jsx)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:e("title")}),(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e("description")})]})}),q&&(0,t.jsx)(c.Alert,{variant:"destructive",children:(0,t.jsx)(c.AlertDescription,{children:q})}),(0,t.jsxs)(w.Tabs,{defaultValue:"history",children:[(0,t.jsxs)(w.TabsList,{children:[(0,t.jsxs)(w.TabsTrigger,{value:"history",children:[(0,t.jsx)(r.Hammer,{})," ",e("history")]}),(0,t.jsxs)(w.TabsTrigger,{value:"scripts",children:[(0,t.jsx)(a,{})," ",e("buildScripts")]})]}),(0,t.jsxs)(w.TabsContent,{className:"space-y-4",value:"history",children:[(0,t.jsxs)("div",{className:"flex flex-wrap justify-end gap-2",children:[Q.size>0&&(0,t.jsxs)(f.Button,{disabled:et,onClick:()=>ee(!0),variant:"destructive",children:[et?(0,t.jsx)(y.Spinner,{}):(0,t.jsx)(i.Trash2,{}),e("deleteSelected",{count:Q.size})]}),(0,t.jsxs)(b.Select,{onValueChange:e=>{Z(new Set),_(e)},value:z,children:[(0,t.jsx)(b.SelectTrigger,{className:"w-48","aria-label":e("filterStatus"),children:(0,t.jsx)(b.SelectValue,{})}),(0,t.jsx)(b.SelectContent,{children:$.map(r=>(0,t.jsx)(b.SelectItem,{value:r,children:"ALL"===r?e("allStatuses"):e(`statuses.${r}`)},r))})]})]}),O&&!S.length?(0,t.jsxs)("p",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,t.jsx)(y.Spinner,{})," ",e("loading")]}):S.length?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(p.Card,{className:"gap-0 py-0",children:(0,t.jsxs)(j.Table,{children:[(0,t.jsx)(j.TableHeader,{children:(0,t.jsxs)(j.TableRow,{className:"hover:bg-transparent",children:[(0,t.jsx)(j.TableHead,{className:"w-12",children:(0,t.jsx)("span",{className:"sr-only",children:e("selectBuilds")})}),(0,t.jsx)(j.TableHead,{children:e("build")}),(0,t.jsx)(j.TableHead,{children:e("status")}),(0,t.jsx)(j.TableHead,{children:e("action")}),(0,t.jsx)(j.TableHead,{children:e("destination")}),(0,t.jsx)(j.TableHead,{children:e("startedAt")}),(0,t.jsx)(j.TableHead,{className:"text-right",children:e("actionsLabel")})]})}),(0,t.jsx)(j.TableBody,{children:ei.map(r=>{let n=r.items.map(e=>e.id),a=n.filter(e=>Q.has(e)).length;return(0,t.jsxs)(s.Fragment,{children:[(0,t.jsxs)(j.TableRow,{className:"bg-muted/20 hover:bg-muted/20",children:[(0,t.jsx)(j.TableCell,{className:"py-1.5",children:(0,t.jsx)(m.Checkbox,{"aria-label":e("selectDate",{date:r.label}),checked:a===n.length||a>0&&"indeterminate",onCheckedChange:e=>Z(t=>{let r=new Set(t);for(let t of n)!0===e?r.add(t):r.delete(t);return r})})}),(0,t.jsx)(j.TableCell,{className:"py-1.5 text-xs font-normal text-muted-foreground",colSpan:6,children:r.label})]}),r.items.map(r=>{let n=(0,N.buildSnapshotName)(r),a=r.startedAt??r.createdAt,i="SUCCEEDED"===r.status&&r.artifacts.some(e=>"RUNNABLE_APP"===e.kind);return(0,t.jsxs)(j.TableRow,{"aria-label":e("viewBuild"),className:"cursor-pointer focus-visible:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",onClick:()=>g.push(`/builds/${r.id}`),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),g.push(`/builds/${r.id}`))},role:"link",tabIndex:0,children:[(0,t.jsx)(j.TableCell,{onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:(0,t.jsx)(m.Checkbox,{"aria-label":e("selectBuild",{id:r.id}),checked:Q.has(r.id),onCheckedChange:e=>Z(t=>{let n=new Set(t);return!0===e?n.add(r.id):n.delete(r.id),n})})}),(0,t.jsxs)(j.TableCell,{className:"min-w-56 whitespace-normal",children:[(0,t.jsx)(C.Link,{className:"font-medium hover:underline",href:`/builds/${r.id}`,onClick:e=>e.stopPropagation(),children:n.repository}),(0,t.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:n.worktree})]}),(0,t.jsx)(j.TableCell,{children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,t.jsx)(u.Badge,{variant:(0,N.buildStatusVariant)(r.status),children:e(`statuses.${r.status}`)}),r.outOfDate&&(0,t.jsx)(u.Badge,{className:"border-amber-500/40 text-amber-700 dark:text-amber-300",variant:"outline",children:e("outOfDate")})]})}),(0,t.jsx)(j.TableCell,{children:(0,t.jsx)(u.Badge,{variant:"outline",children:e(`actions.${r.action}`)})}),(0,t.jsx)(j.TableCell,{children:r.destination.name}),(0,t.jsx)(j.TableCell,{className:"text-muted-foreground",children:(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("time",{dateTime:a,title:new Date(a).toLocaleString(h),children:(0,N.relativeBuildAge)(a,h,v)}),(0,t.jsx)("span",{className:"text-xs",children:e("durationValue",{duration:(0,N.buildDuration)(r,v)})})]})}),(0,t.jsx)(j.TableCell,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,t.jsx)(E.RebuildButton,{buildId:r.id,onCompleted:()=>en(),onError:K,size:"sm"}),i&&(0,t.jsx)(T.RunBuildControls,{buildId:r.id,destinationType:r.destinationType,onCompleted:en,onError:K,preferredDestination:r.destination,size:"sm"})]})})]},r.id)})]},r.key)})})]})}),F&&(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsxs)(f.Button,{disabled:H,onClick:()=>void en(F),variant:"outline",children:[H&&(0,t.jsx)(y.Spinner,{})," ",e("loadMore")]})})]}):(0,t.jsx)(x.Empty,{className:"border py-12",children:(0,t.jsxs)(x.EmptyHeader,{children:[(0,t.jsx)(x.EmptyMedia,{variant:"icon",children:(0,t.jsx)(r.Hammer,{})}),(0,t.jsx)(x.EmptyTitle,{children:e("emptyTitle")}),(0,t.jsx)(x.EmptyDescription,{children:e("emptyDescription")})]})})]}),(0,t.jsxs)(w.TabsContent,{className:"space-y-4",value:"scripts",children:[(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsxs)(f.Button,{onClick:()=>{Y(null),W(!0)},children:[(0,t.jsx)(n.Plus,{})," ",e("newScript")]})}),A.length?(0,t.jsx)("div",{className:"grid gap-3 lg:grid-cols-2",children:A.map(r=>(0,t.jsxs)(p.Card,{children:[(0,t.jsx)(p.CardHeader,{children:(0,t.jsxs)(p.CardTitle,{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{children:r.name}),r.enabledByDefault&&(0,t.jsx)(u.Badge,{children:e("defaultEnabled")})]})}),(0,t.jsxs)(p.CardContent,{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 text-xs text-muted-foreground",children:[r.preBuildScript&&(0,t.jsx)(u.Badge,{variant:"outline",children:e("preBuild")}),r.postBuildScript&&(0,t.jsx)(u.Badge,{variant:"outline",children:e("postBuild")}),(0,t.jsx)("span",{children:e("timeoutSeconds",{count:r.timeoutSeconds})}),(0,t.jsx)("span",{children:e(`failureBehaviors.${r.failureBehavior}`)})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{onClick:()=>{Y(r),W(!0)},size:"sm",variant:"outline",children:e("edit")}),(0,t.jsx)(f.Button,{"aria-label":e("deleteScript"),onClick:()=>void ea(r.id),size:"icon-sm",variant:"destructive",children:(0,t.jsx)(i.Trash2,{})})]})]})]},r.id))}):(0,t.jsx)(x.Empty,{className:"border py-12",children:(0,t.jsxs)(x.EmptyHeader,{children:[(0,t.jsx)(x.EmptyMedia,{variant:"icon",children:(0,t.jsx)(a,{})}),(0,t.jsx)(x.EmptyTitle,{children:e("noScripts")}),(0,t.jsx)(x.EmptyDescription,{children:e("noScriptsDescription")})]})})]})]}),G&&(0,t.jsx)(P,{onOpenChange:W,onSaved:en,open:G,script:X}),(0,t.jsx)(d.ConfirmationDialog,{actionLabel:e("deleteBuilds"),cancelLabel:e("cancel"),description:e("deleteBuildsDescription",{count:Q.size}),onConfirm:el,onOpenChange:ee,open:J,title:e("deleteBuildsTitle",{count:Q.size})})]})}],229490)}]);
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,635416,96892,939050,506184,868401,448295,e=>{"use strict";var t=e.i(456420);let a=(0,t.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);e.s(["ArrowDown",0,a],635416);let r=(0,t.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);e.s(["ArrowUp",0,r],96892);let s=(0,t.default)("move-right",[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]]);e.s(["MoveRight",0,s],939050);let n=(0,t.default)("paintbrush",[["path",{d:"m14.622 17.897-10.68-2.913",key:"vj2p1u"}],["path",{d:"M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z",key:"18tc5c"}],["path",{d:"M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15",key:"ytzfxy"}]]);e.s(["Paintbrush",0,n],506184);let i=(0,t.default)("tags",[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]]);e.s(["Tags",0,i],868401);var l=e.i(843476),o=e.i(93384),d=e.i(741120),c=e.i(948148),u=e.i(271645),h=e.i(929592),g=e.i(487486),p=e.i(519455),m=e.i(515288),x=e.i(59497),b=e.i(776639),j=e.i(793479),v=e.i(110204),f=e.i(337822),w=e.i(967489),k=e.i(987968),y=e.i(624687),S=e.i(520133),C=e.i(462777),I=e.i(637611),T=e.i(920950);let N=`
|
|
2
|
+
id type
|
|
3
|
+
configurations {
|
|
4
|
+
id name iconKey scheme buildConfiguration defaultAction advancedSettings createdAt updatedAt
|
|
5
|
+
source { id kind relativePath }
|
|
6
|
+
observation { id scopeKey status schemes configurations testPlans error stale headSha xcodeVersion lastParseAttemptAt lastParsedAt }
|
|
7
|
+
}
|
|
8
|
+
allowedScripts {
|
|
9
|
+
position
|
|
10
|
+
script { id name preBuildScript postBuildScript enabledByDefault timeoutSeconds failureBehavior }
|
|
11
|
+
}
|
|
12
|
+
`,A=`
|
|
13
|
+
id scopeKey status schemes configurations testPlans error stale headSha xcodeVersion lastParseAttemptAt lastParsedAt
|
|
14
|
+
`,E=["BUILD","TEST","ANALYZE","ARCHIVE","BUILD_FOR_TESTING","TEST_WITHOUT_BUILDING"];function D({codebaseId:e,worktreeId:t,open:a,onOpenChange:r,onStarted:s}){let n=(0,c.useTranslations)("builds"),[i,o]=(0,u.useState)(null),[f,S]=(0,u.useState)([]),[B,R]=(0,u.useState)(""),[L,W]=(0,u.useState)("BUILD"),[P,_]=(0,u.useState)({}),[$,O]=(0,u.useState)([]),[M,U]=(0,u.useState)("SIMULATOR"),[q,F]=(0,u.useState)(""),[H,V]=(0,u.useState)(new Set),[G,z]=(0,u.useState)({}),[K,J]=(0,u.useState)("{}"),[Y,Q]=(0,u.useState)(!0),[X,Z]=(0,u.useState)(!1),[ee,et]=(0,u.useState)(!1),[ea,er]=(0,u.useState)(null),es=i?.configurations.find(e=>e.id===B),en=es?P[es.id]??es.observation:null;(0,u.useEffect)(()=>{let a=!1;return(0,I.controlPlaneRequest)(`query StartBuildProject($codebaseId: ID!, $worktreeId: ID!) {
|
|
15
|
+
iosAppProject(codebaseId: $codebaseId) { ${N} }
|
|
16
|
+
builds(first: 50, status: SUCCEEDED, worktreeId: $worktreeId) {
|
|
17
|
+
items { id action destinationType snapshot createdAt }
|
|
18
|
+
}
|
|
19
|
+
}`,{codebaseId:e,worktreeId:t}).then(e=>{if(a)return;o(e.iosAppProject),S(e.builds.items);let t=e.iosAppProject?.configurations[0];t&&(R(t.id),W(t.defaultAction),z(t.advancedSettings??{}),V(new Set(e.iosAppProject.allowedScripts.filter(e=>e.script.enabledByDefault).map(e=>e.script.id))))}).catch(e=>er(e instanceof Error?e.message:String(e))).finally(()=>{a||Q(!1)}),()=>{a=!0}},[e,t]);let ei=(0,u.useMemo)(()=>f.filter(e=>{if("BUILD_FOR_TESTING"!==e.action||e.destinationType!==M)return!1;let t=e.snapshot.configuration,a="string"==typeof G.testPlan?G.testPlan:null,r=t?.advancedSettings?.testPlan;return t?.id===B&&(!a||!r||a===r)}),[G.testPlan,B,M,f]),el=ei.find(e=>e.id===G.priorBuildForTestingId)?.id??ei[0]?.id??null,eo=async(e,a)=>{Z(!0),er(null),O([]),F("");try{let r=await (0,I.controlPlaneRequest)(`mutation InspectStartBuildDestinations($input: InspectBuildDestinationsInput!) {
|
|
20
|
+
inspectBuildDestinations(input: $input)
|
|
21
|
+
}`,{input:{worktreeId:t,configurationId:e.id,action:a,requestId:(0,C.createClientId)()}});O(r.inspectBuildDestinations);let s="ARCHIVE"===a?"PHYSICAL_DEVICE":r.inspectBuildDestinations.some(e=>"SIMULATOR"===e.type)?"SIMULATOR":"PHYSICAL_DEVICE";U(s),F(r.inspectBuildDestinations.find(e=>e.type===s)?.id??"")}catch(e){er(e instanceof Error?e.message:String(e))}finally{Z(!1)}},ed=async e=>{Z(!0),er(null);try{let a=(await (0,I.controlPlaneRequest)(`mutation ReparseStartBuild($configurationId: ID!, $worktreeId: ID!, $requestId: ID!) {
|
|
22
|
+
reparseBuildConfiguration(configurationId: $configurationId, worktreeId: $worktreeId, requestId: $requestId) {
|
|
23
|
+
${A}
|
|
24
|
+
}
|
|
25
|
+
}`,{configurationId:e.id,worktreeId:t,requestId:(0,C.createClientId)()})).reparseBuildConfiguration;if(_(t=>({...t,[e.id]:a})),"VALID"!==a.status)throw Error(a.error||n("configurationInvalid"));await eo(e,L)}catch(e){er(e instanceof Error?e.message:String(e))}finally{Z(!1)}};(0,u.useEffect)(()=>{if(!es||Y)return;let e=window.setTimeout(()=>void eo(es,L),0);return()=>window.clearTimeout(e)},[B,L,Y]);let ec=(0,u.useMemo)(()=>$.filter(e=>e.type===M),[$,M]),eu=$.find(e=>e.id===q),eh=es?`xcrun xcodebuild ${"PROJECT"===es.source.kind?`-project ${es.source.relativePath}`:"WORKSPACE"===es.source.kind?`-workspace ${es.source.relativePath}`:""} -scheme ${JSON.stringify(es.scheme)} -configuration ${JSON.stringify(es.buildConfiguration)} -destination ${JSON.stringify(eu?.name??"<destination>")} -hideShellScriptEnvironment ${L.toLowerCase().replaceAll("_","-")}${"TEST_WITHOUT_BUILDING"===L&&el?` \xb7 ${n("priorBuildSummary",{id:el})}`:""}`:"",eg=async()=>{if(es&&eu){et(!0),er(null);try{let e={};try{let t=JSON.parse(K);if(!t||"object"!=typeof t||Array.isArray(t))throw Error();e=t}catch{throw Error(n("overridesInvalid"))}let a=await (0,I.controlPlaneRequest)(`mutation StartIosBuild($input: StartBuildInput!) {
|
|
26
|
+
startBuild(input: $input) { id }
|
|
27
|
+
}`,{input:{worktreeId:t,configurationId:es.id,destination:eu,scriptIds:[...H],action:L,advancedSettings:{...G,buildSettingOverrides:e,..."TEST_WITHOUT_BUILDING"===L?{priorBuildForTestingId:el,priorTestProductsPath:null,priorXctestrunPath:null}:{}},requestId:(0,C.createClientId)()}});r(!1),s(a.startBuild.id)}catch(e){er(e instanceof Error?e.message:String(e))}finally{et(!1)}}};return(0,l.jsx)(b.Dialog,{onOpenChange:r,open:a,children:(0,l.jsxs)(b.DialogContent,{className:"sm:max-w-3xl",children:[(0,l.jsxs)(b.DialogHeader,{children:[(0,l.jsx)(b.DialogTitle,{children:n("startBuild")}),(0,l.jsx)(b.DialogDescription,{children:n("startBuildDescription")})]}),ea&&(0,l.jsx)(h.Alert,{variant:"destructive",children:(0,l.jsx)(h.AlertDescription,{children:ea})}),Y?(0,l.jsxs)("p",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,l.jsx)(k.Spinner,{})," ",n("loading")]}):i?.configurations.length?(0,l.jsxs)("div",{className:"space-y-5",children:[(0,l.jsxs)("section",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("configuration")}),(0,l.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:i.configurations.map(e=>(0,l.jsxs)("button",{className:`rounded-xl border p-3 text-left transition-colors ${e.id===B?"border-primary bg-primary/5":"hover:bg-muted/50"}`,onClick:()=>{R(e.id),W(e.defaultAction),z(e.advancedSettings??{})},type:"button",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,l.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,l.jsx)(T.ConfigurationIcon,{iconKey:e.iconKey}),e.name]}),(0,l.jsx)(g.Badge,{variant:"outline",children:((P[e.id]??e.observation)?.status??"UNPARSED").toLocaleLowerCase().split("_").filter(Boolean).map(e=>`${e.charAt(0).toLocaleUpperCase()}${e.slice(1)}`).join(" ")})]}),(0,l.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:[e.scheme," · ",e.buildConfiguration]})]},e.id))})]}),es&&(0,l.jsx)(m.Card,{children:(0,l.jsxs)(m.CardContent,{className:"space-y-2 text-sm",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"font-mono text-xs",children:es.source.relativePath}),(0,l.jsxs)("p",{className:"text-xs text-muted-foreground",children:[es.scheme," ·"," ",es.buildConfiguration]})]}),(0,l.jsxs)(p.Button,{disabled:X,onClick:()=>void ed(es),size:"sm",type:"button",variant:"outline",children:[X?(0,l.jsx)(k.Spinner,{}):(0,l.jsx)(d.RefreshCw,{})," ",n("reparse")]})]}),en?.error&&(0,l.jsx)("p",{className:"text-xs text-destructive",children:en.error})]})}),(0,l.jsxs)("div",{className:"grid gap-4 sm:grid-cols-3",children:[(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("action")}),(0,l.jsxs)(w.Select,{onValueChange:e=>W(e),value:L,children:[(0,l.jsx)(w.SelectTrigger,{children:(0,l.jsx)(w.SelectValue,{})}),(0,l.jsx)(w.SelectContent,{children:E.map(e=>(0,l.jsx)(w.SelectItem,{value:e,children:n(`actions.${e}`)},e))})]})]}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("destinationType")}),(0,l.jsxs)(w.Select,{disabled:"ARCHIVE"===L,onValueChange:e=>{U(e),F($.find(t=>t.type===e)?.id??"")},value:M,children:[(0,l.jsx)(w.SelectTrigger,{children:(0,l.jsx)(w.SelectValue,{})}),(0,l.jsxs)(w.SelectContent,{children:[(0,l.jsx)(w.SelectItem,{value:"SIMULATOR",children:n("simulator")}),(0,l.jsx)(w.SelectItem,{value:"PHYSICAL_DEVICE",children:n("physicalDevice")})]})]})]}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("device")}),(0,l.jsxs)(w.Select,{disabled:X||!ec.length,onValueChange:F,value:q,children:[(0,l.jsx)(w.SelectTrigger,{children:(0,l.jsx)(w.SelectValue,{placeholder:n("selectDevice")})}),(0,l.jsx)(w.SelectContent,{children:ec.map(e=>(0,l.jsxs)(w.SelectItem,{value:e.id,children:[e.generic?"SIMULATOR"===e.type?n("anySimulator"):n("anyPhysicalDevice"):e.name,e.osVersion?` \xb7 ${e.osVersion}`:""]},e.id))})]})]})]}),"TEST_WITHOUT_BUILDING"===L&&(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("priorBuildForTesting")}),(0,l.jsxs)(w.Select,{disabled:!ei.length,onValueChange:e=>z(t=>({...t,priorBuildForTestingId:e,priorTestProductsPath:null,priorXctestrunPath:null})),value:el??"",children:[(0,l.jsx)(w.SelectTrigger,{children:(0,l.jsx)(w.SelectValue,{placeholder:n("selectPriorBuildForTesting")})}),(0,l.jsx)(w.SelectContent,{children:ei.map(e=>(0,l.jsxs)(w.SelectItem,{value:e.id,children:[new Date(e.createdAt).toLocaleString()," ·"," ",e.id]},e.id))})]}),!ei.length&&(0,l.jsx)("p",{className:"text-xs text-destructive",children:n("noPriorBuildForTesting")})]}),["TEST","BUILD_FOR_TESTING","TEST_WITHOUT_BUILDING"].includes(L)&&(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("testPlan")}),(0,l.jsxs)(w.Select,{onValueChange:e=>z(t=>({...t,testPlan:"__SCHEME_DEFAULT__"===e?null:e})),value:String(G.testPlan??"__SCHEME_DEFAULT__"),children:[(0,l.jsx)(w.SelectTrigger,{children:(0,l.jsx)(w.SelectValue,{})}),(0,l.jsxs)(w.SelectContent,{children:[(0,l.jsx)(w.SelectItem,{value:"__SCHEME_DEFAULT__",children:n("schemeDefaultTestPlan")}),"string"==typeof G.testPlan&&G.testPlan&&!en?.testPlans.includes(G.testPlan)&&(0,l.jsxs)(w.SelectItem,{value:G.testPlan,children:[G.testPlan," · ",n("savedValueUnavailable")]}),en?.testPlans.map(e=>(0,l.jsx)(w.SelectItem,{value:e,children:e},e))]})]})]}),i.allowedScripts.length>0&&(0,l.jsxs)("section",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("scripts")}),(0,l.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:i.allowedScripts.map(({script:e})=>(0,l.jsxs)("label",{className:"flex items-start gap-2 rounded-lg border p-2",children:[(0,l.jsx)(x.Checkbox,{checked:H.has(e.id),onCheckedChange:t=>{V(a=>{let r=new Set(a);return t?r.add(e.id):r.delete(e.id),r})}}),(0,l.jsxs)("span",{children:[(0,l.jsx)("span",{className:"block text-sm font-medium",children:e.name}),(0,l.jsxs)("span",{className:"text-xs text-muted-foreground",children:[e.preBuildScript?n("preBuild"):"",e.preBuildScript&&e.postBuildScript?" · ":"",e.postBuildScript?n("postBuild"):""]})]})]},e.id))})]}),(0,l.jsxs)("details",{className:"rounded-xl border p-3",children:[(0,l.jsx)("summary",{className:"cursor-pointer font-medium",children:n("advancedSettings")}),(0,l.jsxs)("div",{className:"mt-4 grid gap-4 sm:grid-cols-2",children:[(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{htmlFor:"development-team",children:n("developmentTeam")}),(0,l.jsx)(j.Input,{id:"development-team",onChange:e=>z(t=>({...t,developmentTeam:e.target.value||null})),value:String(G.developmentTeam??"")})]}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("packageResolution")}),(0,l.jsxs)(w.Select,{onValueChange:e=>z(t=>({...t,packageResolution:e})),value:String(G.packageResolution??"DEFAULT"),children:[(0,l.jsx)(w.SelectTrigger,{children:(0,l.jsx)(w.SelectValue,{})}),(0,l.jsx)(w.SelectContent,{children:["DEFAULT","RESOLVED_ONLY","SKIP_UPDATES","DISABLE_AUTOMATIC"].map(e=>(0,l.jsx)(w.SelectItem,{value:e,children:e},e))})]})]}),(0,l.jsxs)("label",{className:"flex items-center gap-2",children:[(0,l.jsx)(x.Checkbox,{checked:!!G.codeCoverage,onCheckedChange:e=>z(t=>({...t,codeCoverage:!!e}))}),n("codeCoverage")]}),(0,l.jsxs)("label",{className:"flex items-center gap-2",children:[(0,l.jsx)(x.Checkbox,{checked:!!G.allowProvisioningUpdates,onCheckedChange:e=>z(t=>({...t,allowProvisioningUpdates:!!e}))}),n("allowProvisioningUpdates")]}),(0,l.jsxs)("div",{className:"space-y-2 sm:col-span-2",children:[(0,l.jsx)(v.Label,{htmlFor:"build-setting-overrides",children:n("buildSettingOverrides")}),(0,l.jsx)(y.Textarea,{className:"font-mono text-xs",id:"build-setting-overrides",onChange:e=>J(e.target.value),rows:4,value:K})]})]})]}),(0,l.jsxs)("section",{className:"space-y-2",children:[(0,l.jsx)(v.Label,{children:n("commandPreview")}),(0,l.jsx)("pre",{className:"overflow-x-auto rounded-lg bg-muted p-3 text-xs whitespace-pre-wrap",children:eh})]})]}):(0,l.jsx)(h.Alert,{children:(0,l.jsx)(h.AlertDescription,{children:n("noConfigurations")})}),(0,l.jsxs)(b.DialogFooter,{children:[(0,l.jsx)(p.Button,{onClick:()=>r(!1),type:"button",variant:"outline",children:n("cancel")}),(0,l.jsxs)(p.Button,{disabled:Y||X||ee||!es||!eu||"TEST_WITHOUT_BUILDING"===L&&!el,onClick:()=>void eg(),type:"button",children:[ee&&(0,l.jsx)(k.Spinner,{})," ",n("startBuild")]})]})]})})}e.s(["StartBuildButton",0,function({codebaseId:e,worktreeId:t,disabled:a,disabledReason:r,buildSettingsHref:s,size:n="sm"}){let i=(0,c.useTranslations)("builds"),d=(0,S.useRouter)(),[h,g]=(0,u.useState)(!1),[m,x]=(0,u.useState)(!1),b=(0,u.useRef)(null),j=()=>{null!==b.current&&(window.clearTimeout(b.current),b.current=null)},v=()=>{j(),x(!0)},w=()=>{j(),b.current=window.setTimeout(()=>x(!1),150)};return(0,u.useEffect)(()=>()=>{null!==b.current&&window.clearTimeout(b.current)},[]),(0,l.jsxs)(l.Fragment,{children:[a&&s?(0,l.jsxs)(f.Popover,{onOpenChange:x,open:m,children:[(0,l.jsx)(f.PopoverAnchor,{asChild:!0,children:(0,l.jsxs)(p.Button,{"aria-disabled":"true","aria-expanded":m,"aria-haspopup":"dialog",className:"cursor-not-allowed opacity-50",onClick:v,onFocus:v,onMouseEnter:v,onMouseLeave:w,size:n,title:r??void 0,type:"button",children:[(0,l.jsx)(o.Hammer,{})," ",i("build")]})}),(0,l.jsx)(f.PopoverContent,{align:"start",className:"w-auto max-w-64 p-2 text-xs",onBlurCapture:w,onFocusCapture:j,onMouseEnter:j,onMouseLeave:w,onOpenAutoFocus:e=>e.preventDefault(),side:"top",children:(0,l.jsx)(S.Link,{className:"font-medium underline-offset-4 hover:underline",href:s,children:i("configureBuilds")})})]}):(0,l.jsxs)(p.Button,{disabled:a,onClick:()=>g(!0),size:n,title:r??void 0,type:"button",children:[(0,l.jsx)(o.Hammer,{})," ",i("build")]}),h&&(0,l.jsx)(D,{codebaseId:e,onOpenChange:g,onStarted:e=>d.push(`/builds/${e}`),open:h,worktreeId:t})]})}],448295)},942230,455329,756283,e=>{"use strict";var t=e.i(843476),a=e.i(861745),r=e.i(948148),s=e.i(487486),n=e.i(784774),i=e.i(975157);function l({label:e,additions:a,deletions:r}){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 whitespace-nowrap text-muted-foreground",children:[(0,t.jsx)("span",{children:e}),(0,t.jsx)(o,{additions:a,deletions:r})]})}function o({additions:e,deletions:a}){return null===e&&null===a?(0,t.jsx)("span",{className:"text-muted-foreground",children:"—"}):(0,t.jsxs)("span",{className:"inline-flex gap-1 tabular-nums",children:[(0,t.jsxs)("span",{className:"text-emerald-700 dark:text-emerald-400",children:["+",e??0]}),(0,t.jsxs)("span",{className:"text-red-700 dark:text-red-400",children:["−",a??0]})]})}e.s(["WorktreeDetailPanel",0,function({detail:e,inline:d=!1}){let c=(0,r.useTranslations)("worktrees"),u=(0,a.useLocale)();return(0,t.jsxs)("div",{className:(0,i.cn)("w-full space-y-4",d&&"border-t pt-4"),"data-testid":"worktree-detail","data-worktree-navigation-ignore":d?"true":void 0,children:[(0,t.jsxs)("section",{className:"w-full",children:[(0,t.jsx)("h2",{className:"mb-2 font-medium",children:c("changes",{count:e.changes.length})}),(0,t.jsx)("div",{className:(0,i.cn)("overflow-auto rounded-md border",d&&"max-h-80"),children:e.changes.length?(0,t.jsx)(n.Table,{"aria-label":c("changes",{count:e.changes.length}),className:"min-w-[36rem] table-fixed text-xs",children:(0,t.jsx)(n.TableBody,{children:e.changes.map(e=>(0,t.jsxs)(n.TableRow,{children:[(0,t.jsx)(n.TableCell,{className:"max-w-0 px-2 py-1.5 font-mono",children:(0,t.jsx)("span",{className:"block truncate",title:e.path,children:e.path})}),(0,t.jsx)(n.TableCell,{className:"w-px px-2 py-1.5",children:(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[e.conflicted&&(0,t.jsx)(s.Badge,{className:"px-1.5",variant:"destructive",children:c("conflicted")}),e.staged&&(0,t.jsx)(l,{additions:e.stagedAdditions,deletions:e.stagedDeletions,label:c("staged")}),e.unstaged&&(0,t.jsx)(l,{additions:e.unstagedAdditions,deletions:e.unstagedDeletions,label:c("unstaged")}),e.untracked&&(0,t.jsx)(l,{additions:e.unstagedAdditions,deletions:e.unstagedDeletions,label:c("untracked")})]})})]},e.path))})}):(0,t.jsx)("p",{className:"p-3 text-sm text-muted-foreground",children:c("noChanges")})})]}),(0,t.jsxs)("section",{className:"w-full",children:[(0,t.jsx)("h2",{className:"mb-2 font-medium",children:c("commits",{count:e.commits.length})}),(0,t.jsx)("div",{className:(0,i.cn)("overflow-auto rounded-md border",d&&"max-h-80"),children:e.commits.length?(0,t.jsx)(n.Table,{"aria-label":c("commits",{count:e.commits.length}),className:"min-w-[36rem] table-fixed text-xs",children:(0,t.jsx)(n.TableBody,{children:e.commits.map(e=>(0,t.jsxs)(n.TableRow,{children:[(0,t.jsx)(n.TableCell,{className:"w-24 px-2 py-1.5 font-mono text-muted-foreground",children:e.sha.slice(0,8)}),(0,t.jsx)(n.TableCell,{className:"max-w-0 px-2 py-1.5",children:(0,t.jsxs)("div",{className:"flex min-w-0 items-baseline gap-2",children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.subject}),(0,t.jsxs)("span",{className:"shrink-0 text-muted-foreground",children:[e.authorName," ·"," ",new Date(e.authoredAt).toLocaleString(u)]})]})}),(0,t.jsx)(n.TableCell,{className:"w-24 px-2 py-1.5 text-right",children:(0,t.jsx)(o,{additions:e.additions,deletions:e.deletions})})]},e.sha))})}):(0,t.jsx)("p",{className:"p-3 text-sm text-muted-foreground",children:c("noCommits")})})]}),(e.commitsTruncated||e.changesTruncated)&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:c("truncated")})]})}],942230);let d=`
|
|
28
|
+
id codebaseId gitDirectory folder relativePath primary branch headSha upstream ahead behind syncState
|
|
29
|
+
baseBranch baseBranchOverride baseAhead baseBehind hasStagedChanges hasUnstagedChanges highlightColor availability statusError
|
|
30
|
+
pushStatus
|
|
31
|
+
ticketKey ticketTitle ticketStatus lastCheckedAt missingAt createdAt updatedAt
|
|
32
|
+
tags { id name color createdAt updatedAt }
|
|
33
|
+
activeJob { id agentId kind payload status idempotencyKey result error timeoutSeconds createdAt startedAt finishedAt updatedAt }
|
|
34
|
+
pullRequest { id number title url repositoryGithubId repositoryNameWithOwner repositoryUrl labels jiraKey pipelineStatus pipelines { id name status url checkSuiteId canRetry retryUnavailableReason jobs { id name status url canRetry retryUnavailableReason steps { number name status } } } reviewDecision unresolvedReviewThreadCount createdAt }
|
|
35
|
+
latestBuild {
|
|
36
|
+
id status action destinationType destination outOfDate createdAt
|
|
37
|
+
artifacts { id kind }
|
|
38
|
+
}
|
|
39
|
+
`,c=`
|
|
40
|
+
id folder observedOrigin branch headSha upstream ahead behind syncState availability statusError
|
|
41
|
+
defaultBranch localBranches remoteBranches lastCheckedAt lastFetchedAt lastFetchAttemptAt lastFetchError createdAt updatedAt
|
|
42
|
+
`,u=`mutation InspectWorktree($id: ID!, $requestId: ID!) {
|
|
43
|
+
inspectWorktree(id: $id, requestId: $requestId) {
|
|
44
|
+
commits { sha subject authorName authoredAt additions deletions }
|
|
45
|
+
changes { path staged unstaged untracked conflicted stagedAdditions stagedDeletions unstagedAdditions unstagedDeletions }
|
|
46
|
+
commitsTruncated changesTruncated
|
|
47
|
+
}
|
|
48
|
+
}`;e.s(["CODEBASE_FIELDS",0,c,"INSPECT_WORKTREE_MUTATION",0,u,"WORKTREE_FIELDS",0,d],455329);var h=e.i(271645),g=e.i(462777),p=e.i(637611);async function m(e){return(await (0,p.controlPlaneRequest)(u,{id:e,requestId:(0,g.createClientId)()})).inspectWorktree}e.s(["inspectWorktree",0,m,"useLiveWorktree",0,function(e){let[t,a]=(0,h.useState)(null),r=(0,h.useCallback)(t=>{a(a=>({sourceUpdatedAt:e.updatedAt,value:a?.sourceUpdatedAt===e.updatedAt?{...a.value,...t}:t}))},[e.updatedAt]),s=(0,h.useCallback)(e=>{let t={};null!==e.hasStagedChanges&&(t.hasStagedChanges=e.hasStagedChanges),null!==e.hasUnstagedChanges&&(t.hasUnstagedChanges=e.hasUnstagedChanges),null!==e.pushStatus&&(t.pushStatus=e.pushStatus),"string"==typeof e.headSha&&Object.assign(t,{branch:e.branch,headSha:e.headSha,upstream:e.upstream,ahead:e.ahead,behind:e.behind,syncState:e.syncState??"UNKNOWN",baseAhead:e.baseAhead,baseBehind:e.baseBehind}),Object.keys(t).length&&r(t)},[r]);return{worktree:t?.sourceUpdatedAt===e.updatedAt?{...e,...t.value}:e,applyActivity:s,setUnstagedChanges:(0,h.useCallback)(e=>r({hasUnstagedChanges:e}),[r])}},"useQueuedWorktreeInspection",0,function(e){let t=(0,h.useRef)(!1),a=(0,h.useRef)(!1);return(0,h.useCallback)(async()=>{if(t.current){a.current=!0;return}t.current=!0;try{do a.current=!1,await e();while(a.current)}finally{t.current=!1}},[e])},"useWorktreeActivitySubscription",0,function(e,t,a){let r=(0,h.useRef)(a);(0,h.useEffect)(()=>{r.current=a},[a]),(0,h.useEffect)(()=>{if(!t)return;let a=!1,s=0,n=null,i=()=>void 0,l=e=>{a||e!==s||null!==n||(n=window.setTimeout(()=>{n=null,o()},1e3))},o=()=>{let t=++s;i=(0,p.controlPlaneSubscriptions)().subscribe({query:`subscription WorktreeInspectionChanged($worktreeId: ID!) {
|
|
49
|
+
worktreeInspectionChanged(worktreeId: $worktreeId) {
|
|
50
|
+
worktreeId branch headSha upstream ahead behind syncState baseAhead baseBehind
|
|
51
|
+
hasStagedChanges hasUnstagedChanges pushStatus observedAt
|
|
52
|
+
}
|
|
53
|
+
}`,variables:{worktreeId:e}},{next:e=>{let t=e.data?.worktreeInspectionChanged;t&&r.current(t)},error:()=>l(t),complete:()=>l(t)})};return o(),()=>{a=!0,s+=1,null!==n&&window.clearTimeout(n),i()}},[t,e])}],756283)},267572,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(876561),s=e.i(635416),n=e.i(768877),i=e.i(96892),l=e.i(689664),o=e.i(716327),d=e.i(867927),c=e.i(452330),u=e.i(482022),h=e.i(269846),g=e.i(634398),p=e.i(851817),m=e.i(882505),x=e.i(648119),b=e.i(939050),j=e.i(506184),v=e.i(515281),f=e.i(77071),w=e.i(741120),k=e.i(395925),y=e.i(856522),S=e.i(566595),C=e.i(868401),I=e.i(573474),T=e.i(725981),N=e.i(861745),A=e.i(948148),E=e.i(778434),D=e.i(771777),B=e.i(866026),R=e.i(448295),L=e.i(346194),W=e.i(647776),P=e.i(948812),_=e.i(356505),$=e.i(929592),O=e.i(487486),M=e.i(519455),U=e.i(515288),q=e.i(59497),F=e.i(776639),H=e.i(755146),V=e.i(82612),G=e.i(793479),z=e.i(906197),K=e.i(110204),J=e.i(337822),Y=e.i(337355),Q=e.i(987968),X=e.i(967489),Z=e.i(784774),ee=e.i(808562),et=e.i(462777),ea=e.i(637611),er=e.i(975157),es=e.i(520133),en=e.i(284494),ei=e.i(942230),el=e.i(455329),eo=e.i(756283),ed=e.i(440289),ec=e.i(940276);let eu=["gray","stone","red","rose","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink"],eh="worktrees-layout",eg="__all__";function ep(e,t){return e.some(e=>("string"==typeof e||"number"==typeof e)&&String(e).toLocaleLowerCase().includes(t))}function em(e,t){let a=t.query.trim().toLocaleLowerCase();return a||t.agentId||t.repositoryId?e.flatMap(e=>{if(t.agentId&&e.agent.id!==t.agentId)return[];let r=a.length>0&&ep([e.agent.id,e.agent.name,e.agent.hostname],a),s=e.codebases.flatMap(e=>{if(t.repositoryId&&e.repository.id!==t.repositoryId)return[];let s=a.length>0&&ep([e.repository.id,e.repository.name,e.repository.description,e.repository.canonicalOrigin,e.repository.displayOrigin,e.codebase.id,e.codebase.folder,e.codebase.observedOrigin,e.codebase.branch,e.codebase.defaultBranch],a),n=!a||r||s?e.worktrees:e.worktrees.filter(e=>ep([e.id,e.branch,e.folder,e.relativePath,e.ticketKey,e.ticketTitle,e.ticketStatus,e.pullRequest?.number,e.pullRequest?.title,e.pullRequest?.repositoryNameWithOwner,e.pullRequest?.jiraKey,...e.tags.map(e=>e.name)],a));return n.length?[{...e,worktrees:n}]:[]});return s.length?[{...e,codebases:s}]:[]}):e}function ex(e,t){if(!t)return e;let a=/^[A-Za-z]:[\\/]/.test(t)||t.startsWith("\\\\"),r=a?"\\":"/",s=e=>a?e.replaceAll("/","\\"):e,n=e=>(a?/^[A-Za-z]:\\$/.test(e):"/"===e)?e:e.replace(/[\\/]+$/,""),i=n(s(t)),l=n(s(e)),o=a?i.toLocaleLowerCase():i,d=a?l.toLocaleLowerCase():l;if(d===o)return".";let c=i.endsWith(r)?i:`${i}${r}`,u=a?c.toLocaleLowerCase():c;return d.startsWith(u)?l.slice(c.length):e}function eb(e){return{hasChanges:e.hasStagedChanges||e.hasUnstagedChanges,stageOperation:e.hasStagedChanges&&!e.hasUnstagedChanges?"UNSTAGE_ALL":"STAGE_ALL"}}let ej={gray:"border-slate-500/30 bg-slate-500/10 hover:border-slate-500/50 hover:bg-slate-500/20",stone:"border-stone-500/30 bg-stone-500/10 hover:border-stone-500/50 hover:bg-stone-500/20",red:"border-red-500/30 bg-red-500/10 hover:border-red-500/50 hover:bg-red-500/20",rose:"border-rose-500/30 bg-rose-500/10 hover:border-rose-500/50 hover:bg-rose-500/20",orange:"border-orange-500/30 bg-orange-500/10 hover:border-orange-500/50 hover:bg-orange-500/20",amber:"border-amber-500/30 bg-amber-500/10 hover:border-amber-500/50 hover:bg-amber-500/20",yellow:"border-yellow-500/30 bg-yellow-500/10 hover:border-yellow-500/50 hover:bg-yellow-500/20",lime:"border-lime-500/30 bg-lime-500/10 hover:border-lime-500/50 hover:bg-lime-500/20",green:"border-green-500/30 bg-green-500/10 hover:border-green-500/50 hover:bg-green-500/20",emerald:"border-emerald-500/30 bg-emerald-500/10 hover:border-emerald-500/50 hover:bg-emerald-500/20",teal:"border-teal-500/30 bg-teal-500/10 hover:border-teal-500/50 hover:bg-teal-500/20",cyan:"border-cyan-500/30 bg-cyan-500/10 hover:border-cyan-500/50 hover:bg-cyan-500/20",sky:"border-sky-500/30 bg-sky-500/10 hover:border-sky-500/50 hover:bg-sky-500/20",blue:"border-blue-500/30 bg-blue-500/10 hover:border-blue-500/50 hover:bg-blue-500/20",indigo:"border-indigo-500/30 bg-indigo-500/10 hover:border-indigo-500/50 hover:bg-indigo-500/20",violet:"border-violet-500/30 bg-violet-500/10 hover:border-violet-500/50 hover:bg-violet-500/20",purple:"border-purple-500/30 bg-purple-500/10 hover:border-purple-500/50 hover:bg-purple-500/20",fuchsia:"border-fuchsia-500/30 bg-fuchsia-500/10 hover:border-fuchsia-500/50 hover:bg-fuchsia-500/20",pink:"border-pink-500/30 bg-pink-500/10 hover:border-pink-500/50 hover:bg-pink-500/20"},ev={gray:"border-slate-500/40 bg-slate-500/15 text-slate-700 dark:text-slate-300",stone:"border-stone-500/40 bg-stone-500/15 text-stone-700 dark:text-stone-300",red:"border-red-500/40 bg-red-500/15 text-red-700 dark:text-red-300",rose:"border-rose-500/40 bg-rose-500/15 text-rose-700 dark:text-rose-300",orange:"border-orange-500/40 bg-orange-500/15 text-orange-700 dark:text-orange-300",amber:"border-amber-500/40 bg-amber-500/15 text-amber-800 dark:text-amber-300",yellow:"border-yellow-500/40 bg-yellow-500/15 text-yellow-800 dark:text-yellow-300",lime:"border-lime-500/40 bg-lime-500/15 text-lime-800 dark:text-lime-300",green:"border-green-500/40 bg-green-500/15 text-green-700 dark:text-green-300",emerald:"border-emerald-500/40 bg-emerald-500/15 text-emerald-700 dark:text-emerald-300",teal:"border-teal-500/40 bg-teal-500/15 text-teal-700 dark:text-teal-300",cyan:"border-cyan-500/40 bg-cyan-500/15 text-cyan-700 dark:text-cyan-300",sky:"border-sky-500/40 bg-sky-500/15 text-sky-700 dark:text-sky-300",blue:"border-blue-500/40 bg-blue-500/15 text-blue-700 dark:text-blue-300",indigo:"border-indigo-500/40 bg-indigo-500/15 text-indigo-700 dark:text-indigo-300",violet:"border-violet-500/40 bg-violet-500/15 text-violet-700 dark:text-violet-300",purple:"border-purple-500/40 bg-purple-500/15 text-purple-700 dark:text-purple-300",fuchsia:"border-fuchsia-500/40 bg-fuchsia-500/15 text-fuchsia-700 dark:text-fuchsia-300",pink:"border-pink-500/40 bg-pink-500/15 text-pink-700 dark:text-pink-300"},ef={gray:"border-slate-600 bg-slate-500",stone:"border-stone-600 bg-stone-500",red:"border-red-600 bg-red-500",rose:"border-rose-600 bg-rose-500",orange:"border-orange-600 bg-orange-500",amber:"border-amber-600 bg-amber-500",yellow:"border-yellow-600 bg-yellow-500",lime:"border-lime-600 bg-lime-500",green:"border-green-600 bg-green-500",emerald:"border-emerald-600 bg-emerald-500",teal:"border-teal-600 bg-teal-500",cyan:"border-cyan-600 bg-cyan-500",sky:"border-sky-600 bg-sky-500",blue:"border-blue-600 bg-blue-500",indigo:"border-indigo-600 bg-indigo-500",violet:"border-violet-600 bg-violet-500",purple:"border-purple-600 bg-purple-500",fuchsia:"border-fuchsia-600 bg-fuchsia-500",pink:"border-pink-600 bg-pink-500"};function ew({moves:e,onReload:r,onError:s,onNotice:n}){let i=(0,A.useTranslations)("worktrees"),[l,o]=(0,a.useState)(null),d=async e=>{o(e.id);try{await (0,ea.controlPlaneRequest)(`mutation RetryWorktreeMove($id: ID!) {
|
|
54
|
+
retryWorktreeMoveWithStash(id: $id) { id status }
|
|
55
|
+
}`,{id:e.id});let t=await (0,ed.waitForWorktreeMove)(e.id);if("FAILED"===t.status)throw Error(t.error||i("moveFailed"));n("SUCCEEDED_WITH_WARNING"===t.status?t.warning||i("moveCompletedWithWarning"):i("moveCompleted")),s(null),await r()}catch(e){s(e instanceof Error?e.message:String(e))}finally{o(null)}},c=async e=>{o(e.id);try{await (0,ea.controlPlaneRequest)(`mutation CancelWorktreeMove($id: ID!) {
|
|
56
|
+
cancelWorktreeMove(id: $id) { id status }
|
|
57
|
+
}`,{id:e.id}),n(i("moveCancelled")),s(null),await r()}catch(e){s(e instanceof Error?e.message:String(e))}finally{o(null)}};return(0,t.jsx)("div",{className:"space-y-2",children:e.map(e=>(0,t.jsx)($.Alert,{children:(0,t.jsxs)($.AlertDescription,{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",children:i("moveProgress",{branch:e.branch})}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"AWAITING_STASH"===e.status?e.error||i("moveNeedsStash"):i(`moveStatus.${e.status}`)})]}),"AWAITING_STASH"===e.status?(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(M.Button,{disabled:l===e.id,onClick:()=>void c(e),size:"sm",variant:"outline",children:i("cancelMove")}),(0,t.jsxs)(M.Button,{disabled:l===e.id,onClick:()=>void d(e),size:"sm",children:[l===e.id&&(0,t.jsx)(Q.Spinner,{}),i("stashAndContinue")]})]}):(0,t.jsx)(Q.Spinner,{})]})},e.id))})}function ek(e,t){return{codebaseId:e.codebase.id,...t?{worktreeId:t.id}:{},defaultBranch:e.codebase.defaultBranch,currentBranch:t?.branch,currentBaseBranch:t?.baseBranch,localBranches:e.codebase.localBranches,remoteBranches:e.codebase.remoteBranches,unavailableBranches:e.worktrees.flatMap(e=>e.branch&&e.id!==t?.id?[e.branch]:[])}}function ey({overview:e,onCreated:r}){let s=(0,A.useTranslations)("worktrees"),n=e.agents.flatMap(e=>e.codebases.flatMap(t=>"ONLINE"===e.agent.connectionStatus&&e.agent.capabilities.includes("worktree.branch")&&"AVAILABLE"===t.codebase.availability&&!t.worktrees.some(e=>e.activeJob)?[{agentGroup:e,group:t}]:[])),[i,l]=(0,a.useState)(1===n.length?n[0].group.codebase.id:""),[o,d]=(0,a.useState)(!1),c=n.some(e=>e.group.codebase.id===i)?i:1===n.length?n[0].group.codebase.id:"",u=n.find(e=>e.group.codebase.id===c),h=n.map(({agentGroup:e,group:t})=>({value:t.codebase.id,label:`${t.repository.name} \xb7 ${e.agent.name}`,description:t.codebase.folder,keywords:`${t.repository.displayOrigin} ${e.agent.hostname}`})),g=async e=>{if(!u)throw Error(s("selectCodebase"));d(!0);try{let t=await (0,ea.controlPlaneRequest)(`mutation CreateWorktree($input: CreateWorktreeInput!) {
|
|
58
|
+
createWorktree(input: $input) { id }
|
|
59
|
+
}`,{input:{codebaseId:u.group.codebase.id,selection:e,requestId:(0,et.createClientId)()}});await (0,ed.waitForWorktreeJob)(t.createWorktree.id),await r()}finally{d(!1)}};return(0,t.jsxs)(U.Card,{children:[(0,t.jsx)(U.CardHeader,{className:"border-b",children:(0,t.jsxs)(U.CardTitle,{className:"flex items-center gap-2",children:[(0,t.jsx)(f.Plus,{})," ",s("createWorktree")]})}),(0,t.jsxs)(U.CardContent,{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Label,{className:"mb-1.5 block",children:s("repositoryCheckout")}),(0,t.jsx)(Y.SearchableSelect,{ariaLabel:s("repositoryCheckout"),disabled:o||0===h.length,emptyMessage:s("noEligibleCodebases"),onValueChange:l,options:h,placeholder:s("selectCodebase"),searchPlaceholder:s("searchCodebases"),value:c})]}),u?(0,t.jsx)(en.WorktreeBranchForm,{busy:o,onSubmit:g,submitLabel:s("createWorktree"),target:ek(u.group)},u.group.codebase.id):(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:h.length?s("selectCodebaseHelp"):s("noEligibleCodebases")})]})]})}function eS({agentGroup:e,layout:a,allTags:r,editorVariant:s,inspectionRefreshToken:n,onReload:i,onUpdate:l,onError:o,onManageTags:d,onOpenTicket:c,overview:u}){let h=(0,A.useTranslations)("worktrees"),g="ONLINE"===e.agent.connectionStatus&&e.agent.capabilities.includes("worktree.watch"),p="ONLINE"===e.agent.connectionStatus&&e.agent.capabilities.includes("worktree.branch");return(0,t.jsxs)("section",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 border-b pb-2",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:e.agent.name}),(0,t.jsx)(O.Badge,{children:h("ONLINE"===e.agent.connectionStatus?"online":"offline")}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:e.agent.hostname})]}),e.codebases.map(h=>(0,t.jsxs)("section",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"font-medium",children:h.repository.name}),(0,t.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:h.repository.displayOrigin})]}),(0,t.jsx)(eC,{codebase:h.codebase})]}),"cards"===a?(0,t.jsx)("div",{className:"space-y-3",children:h.worktrees.map(a=>(0,t.jsx)(eI,{allTags:r,baseRepoDirectory:e.agent.baseRepoDirectory,branchManagementEnabled:p,editorVariant:s,group:h,inspectionRefreshToken:n,liveUpdatesEnabled:g,onError:o,onManageTags:d,onOpenTicket:c,onReload:i,onUpdate:l,overview:u,worktree:a},a.id))}):(0,t.jsx)(eH,{allTags:r,baseRepoDirectory:e.agent.baseRepoDirectory,branchManagementEnabled:p,editorVariant:s,group:h,inspectionRefreshToken:n,liveUpdatesEnabled:g,onError:o,onManageTags:d,onOpenTicket:c,onReload:i,onUpdate:l,overview:u})]},h.codebase.id))]})}function eC({codebase:e}){let r=(0,A.useTranslations)("worktrees"),s=(0,N.useLocale)(),[n,i]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=()=>i(new Date().getTime()),t=window.setTimeout(e,0),a=window.setInterval(e,1e3);return()=>{window.clearTimeout(t),window.clearInterval(a)}},[]);let l=e.lastFetchedAt&&null!==n?Math.max(0,n-new Date(e.lastFetchedAt).getTime()):null,o=null===l?r("neverFetched"):l<6e4?r("secondsAgo",{count:Math.floor(l/1e3)}):new Intl.RelativeTimeFormat(s,{numeric:"auto"}).format(-Math.floor(l/6e4),"minute");return(0,t.jsx)("span",{className:(0,er.cn)("text-xs text-muted-foreground",e.lastFetchError&&"text-destructive"),title:e.lastFetchError??void 0,children:r("lastFetched",{value:o})})}function eI(e){let{inspectionRefreshToken:r,onError:s}=e,{worktree:n,applyActivity:i,setUnstagedChanges:l}=(0,eo.useLiveWorktree)(e.worktree),c={...e,worktree:n},[u,h]=(0,a.useState)(!1),[g,p]=(0,a.useState)(null),[m,x]=(0,a.useState)(!1),b=(0,a.useRef)(0),j=(0,a.useRef)(r),v=(0,A.useTranslations)("worktrees"),f=(0,es.useRouter)(),w=(0,a.useCallback)(async()=>{let e=++b.current;x(!0);try{let t=await (0,eo.inspectWorktree)(n.id);if(e!==b.current)return;p(t),l(t.changes.some(e=>e.unstaged||e.untracked||e.conflicted)),s(null)}catch(t){e===b.current&&s(t instanceof Error?t.message:String(t))}finally{e===b.current&&x(!1)}},[s,l,n.id]),k=(0,eo.useQueuedWorktreeInspection)(w),y=(0,a.useCallback)(e=>{i(e),u&&k()},[i,u,k]);(0,eo.useWorktreeActivitySubscription)(n.id,e.liveUpdatesEnabled&&"AVAILABLE"===n.availability,y),(0,a.useEffect)(()=>{if(j.current===r||(j.current=r,!u))return;let e=window.setTimeout(()=>void k(),0);return()=>window.clearTimeout(e)},[u,r,k]);let S=()=>{let e=!u;h(e),e&&!g&&k()};return(0,t.jsxs)(U.Card,{className:(0,er.cn)("cursor-pointer transition-colors hover:bg-muted/30",n.highlightColor&&ej[n.highlightColor]),onClick:e=>{(0,ec.shouldNavigateWorktreeSurface)(e)&&f.push((0,ec.worktreeDetailHref)(n.id))},children:[(0,t.jsxs)(U.CardHeader,{className:"grid-cols-1! border-b @md/card-header:grid-cols-[minmax(0,1fr)_auto]!",children:[(0,t.jsxs)(U.CardTitle,{className:"min-w-0",children:[(0,t.jsxs)(M.Button,{"aria-expanded":u,className:"h-auto w-full max-w-full justify-start gap-1 p-1 text-left",onClick:()=>void S(),variant:"ghost",children:[u?(0,t.jsx)(o.ChevronDown,{}):(0,t.jsx)(d.ChevronRight,{}),(0,t.jsx)("span",{className:"truncate font-mono",children:n.branch??n.headSha?.slice(0,10)??v("detached")})]}),(n.ticketKey||n.ticketTitle)&&(0,t.jsx)(eN,{...c})]}),(0,t.jsxs)(U.CardAction,{className:"col-start-1 row-span-1 row-start-auto flex max-w-full flex-wrap items-center justify-start gap-1 justify-self-start @md/card-header:col-start-2 @md/card-header:row-span-2 @md/card-header:row-start-1 @md/card-header:justify-end @md/card-header:justify-self-end",children:[(0,t.jsx)(eP,{worktree:n}),n.hasUnstagedChanges&&(0,t.jsx)(O.Badge,{variant:"destructive",children:v("dirty")}),(0,t.jsx)(eT,{worktree:n}),(0,t.jsx)(eO,{...c})]})]}),(0,t.jsxs)(U.CardContent,{className:"space-y-4",children:[(0,t.jsx)(eA,{...c,detailsExpanded:u,onToggleDetails:S}),m&&(0,t.jsxs)("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(Q.Spinner,{})," ",v("loadingDetails")]}),u&&g&&(0,t.jsx)(ei.WorktreeDetailPanel,{detail:g,inline:!0})]}),(0,t.jsx)(U.CardFooter,{className:"flex-wrap gap-2","data-worktree-navigation-ignore":!0,children:(0,t.jsx)(eq,{...c,onCompleted:async()=>{await e.onReload(),u&&await k()}})})]})}function eT({worktree:e}){let a=(0,A.useTranslations)("worktrees"),r=e.branch??e.headSha?.slice(0,10)??a("detached"),s=a("openWorktreeDetails",{branch:r});return(0,t.jsx)(M.Button,{asChild:!0,size:"icon-sm",variant:"ghost",children:(0,t.jsx)(es.Link,{"aria-label":s,href:(0,ec.worktreeDetailHref)(e.id),title:s,children:(0,t.jsx)(n.ArrowRight,{})})})}function eN({worktree:e,onOpenTicket:a,compact:r=!1}){let s=`${e.ticketKey??""}${e.ticketTitle?`${e.ticketKey?" — ":""}${e.ticketTitle}`:""}`;return(0,t.jsxs)("div",{className:(0,er.cn)("flex max-w-full flex-wrap items-center gap-1.5 font-normal",r?"mt-0.5 text-xs":"mt-1 text-sm"),children:[e.ticketKey?(0,t.jsx)(M.Button,{className:"h-auto min-w-0 justify-start truncate p-0 text-left font-normal",onClick:()=>a(e.ticketKey),title:s,type:"button",variant:"link",children:s}):(0,t.jsx)("p",{className:"min-w-0 truncate text-muted-foreground",title:s,children:s}),e.ticketStatus&&(e.ticketKey?(0,t.jsx)(O.Badge,{asChild:!0,variant:"secondary",children:(0,t.jsx)("button",{onClick:()=>a(e.ticketKey),type:"button",children:e.ticketStatus})}):(0,t.jsx)(O.Badge,{variant:"secondary",children:e.ticketStatus}))]})}function eA(e){let{worktree:a,group:r,baseRepoDirectory:s,detailsExpanded:n,onToggleDetails:i}=e,l=(0,A.useTranslations)("worktrees");return(0,t.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)(ez,{label:l("path"),mono:!0,value:ex(a.folder,s)}),(0,t.jsx)(e_,{...e})]}),(0,t.jsx)(eD,{label:l("upToDate"),children:(0,t.jsx)(eR,{worktree:a})}),(0,t.jsx)(eB,{...e}),(0,t.jsx)(eD,{label:l("pullRequest"),children:(0,t.jsx)(eL,{detailsExpanded:n,onToggleDetails:i,worktree:a})}),a.latestBuild&&(0,t.jsx)(eE,{build:a.latestBuild,onCompleted:e.onReload,onError:e.onError}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a.statusError&&(0,t.jsx)("span",{className:"text-xs text-destructive",children:a.statusError}),!r.codebase.defaultBranch&&!a.baseBranchOverride&&(0,t.jsx)("span",{className:"text-xs text-destructive",children:l("baseUnavailable")})]})]})}function eE({build:e,onCompleted:a,onError:r}){let s=(0,A.useTranslations)("worktrees"),n=(0,A.useTranslations)("builds"),i="SUCCEEDED"===e.status&&e.artifacts.some(e=>"RUNNABLE_APP"===e.kind);return(0,t.jsxs)(eD,{label:s("latestBuild"),children:[(0,t.jsx)(O.Badge,{asChild:!0,variant:"outline",children:(0,t.jsx)(es.Link,{href:`/builds/${e.id}`,children:n(`actions.${e.action}`)})}),(0,t.jsx)(O.Badge,{variant:"FAILED"===e.status?"destructive":"SUCCEEDED"===e.status?"default":"secondary",children:n(`statuses.${e.status}`)}),e.outOfDate&&(0,t.jsx)(O.Badge,{className:"border-amber-500/40 text-amber-700 dark:text-amber-300",variant:"outline",children:n("outOfDate")}),(0,t.jsx)(D.RebuildButton,{buildId:e.id,onCompleted:()=>a(),onError:r,size:"sm"}),i&&(0,t.jsx)(B.RunBuildControls,{buildId:e.id,destinationType:e.destinationType,onCompleted:a,onError:r,preferredDestination:e.destination,size:"sm"})]})}function eD({label:e,children:a}){return(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("p",{className:"w-24 shrink-0 text-xs text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:a})]})}function eB({compact:e=!1,...a}){let{worktree:r}=a,s=(0,A.useTranslations)("worktrees");return(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[!e&&(0,t.jsx)("span",{className:"w-24 shrink-0 text-xs text-muted-foreground",children:s("tags")}),(0,t.jsx)(eO,{...a,contentAlign:e?"end":"start",contentAlignOffset:e?0:-100,trigger:(0,t.jsx)(M.Button,{"aria-label":`${s("tags")}: ${r.branch??s("detached")}`,className:(0,er.cn)("h-auto min-h-7 max-w-full justify-start px-1 py-1 text-left font-normal",!e&&"-mx-1"),type:"button",variant:"ghost",children:(0,t.jsxs)("span",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[r.tags.map(e=>(0,t.jsx)(eG,{tag:e},e.id)),!r.tags.length&&(0,t.jsx)("span",{className:"text-muted-foreground",children:"—"})]})})})]})}function eR({worktree:e}){let a=(0,A.useTranslations)("worktrees"),r=0===e.baseBehind;return(0,t.jsx)(O.Badge,{className:r?"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":null===e.baseBehind?void 0:"border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300",variant:"outline",children:null===e.baseBehind?a("unknown"):r?a("yes"):a("notUpToDate",{count:e.baseBehind})})}function eL({worktree:e,detailsExpanded:a,onToggleDetails:r}){var s;let n=(0,A.useTranslations)("worktrees");return(0,t.jsxs)(t.Fragment,{children:[e.pullRequest?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eW,{pullRequest:e.pullRequest}),(0,t.jsx)(W.PipelineMenu,{pipelineStatus:e.pullRequest.pipelineStatus,pipelines:e.pullRequest.pipelines,repositoryId:e.pullRequest.repositoryGithubId}),(0,t.jsx)(O.Badge,{className:"APPROVED"===(s=e.pullRequest.reviewDecision)?"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":"CHANGES_REQUESTED"===s?"border-red-500/30 bg-red-500/10 text-red-700 dark:text-red-300":"border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300",children:n(`review.${e.pullRequest.reviewDecision}`)}),(0,t.jsx)(O.Badge,{asChild:!0,className:0===e.pullRequest.unresolvedReviewThreadCount?"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300":"border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300",children:(0,t.jsx)(es.Link,{href:(0,P.pullRequestCommentsHref)(e.pullRequest),children:n("comments",{count:e.pullRequest.unresolvedReviewThreadCount})})})]}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"—"}),r?(0,t.jsx)(O.Badge,{asChild:!0,variant:"secondary",children:(0,t.jsx)("button",{"aria-expanded":a,onClick:r,type:"button",children:n("branchCommits",{count:e.baseAhead??0})})}):(0,t.jsx)(O.Badge,{variant:"secondary",children:n("branchCommits",{count:e.baseAhead??0})})]})}function eW({pullRequest:e}){let a=(0,A.useTranslations)("worktrees");return(0,t.jsxs)(H.DropdownMenu,{children:[(0,t.jsx)(H.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsx)(O.Badge,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",children:["PR #",e.number]})})}),(0,t.jsxs)(H.DropdownMenuContent,{align:"start",className:"w-44",children:[(0,t.jsx)(H.DropdownMenuItem,{asChild:!0,children:(0,t.jsxs)("a",{href:e.url,rel:"noreferrer",target:"_blank",children:[(0,t.jsx)(u.ExternalLink,{}),a("openInGitHub")]})}),(0,t.jsx)(H.DropdownMenuItem,{asChild:!0,children:(0,t.jsxs)(es.Link,{href:(0,P.pullRequestDetailHref)(e),children:[(0,t.jsx)(g.GitPullRequest,{}),a("openDetails")]})})]})]})}function eP({worktree:e}){var a,r;let n=(0,A.useTranslations)("worktrees");return"IN_SYNC"===e.syncState||0===e.ahead&&0===e.behind?(0,t.jsx)(O.Badge,{className:"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300",variant:"outline",children:n("inSync")}):null!==e.ahead||null!==e.behind?(0,t.jsxs)(t.Fragment,{children:[null!==e.ahead&&(0,t.jsxs)(O.Badge,{className:"border-blue-500/30 bg-blue-500/10 text-blue-700 dark:text-blue-300",variant:"outline",children:[(0,t.jsx)(i.ArrowUp,{"data-icon":"inline-start"}),n("ahead",{count:e.ahead})]}),null!==e.behind&&(0,t.jsxs)(O.Badge,{className:"border-blue-500/30 bg-blue-500/10 text-blue-700 dark:text-blue-300",variant:"outline",children:[(0,t.jsx)(s.ArrowDown,{"data-icon":"inline-start"}),n("behind",{count:e.behind})]})]}):(0,t.jsx)(O.Badge,{variant:"outline",children:(a=e,r=n,"AHEAD"===a.syncState?r("ahead",{count:a.ahead??0}):"BEHIND"===a.syncState?r("behind",{count:a.behind??0}):r("DIVERGED"===a.syncState?"diverged":"IN_SYNC"===a.syncState?"upToDate":"NO_UPSTREAM"===a.syncState?"unpublished":"DETACHED"===a.syncState?"detached":"unknown"))})}function e_(e){let{worktree:r,group:s,onUpdate:n,onError:i,compact:l=!1}=e,o=(0,A.useTranslations)("worktrees"),[d,c]=(0,a.useState)(!1),[u,h]=(0,a.useState)(!1),g="__inherit_remote_default__",p=Array.from(new Set([r.baseBranchOverride,s.codebase.defaultBranch,...s.codebase.remoteBranches].filter(e=>!!e))),m=async e=>{h(!0);try{let t=await (0,ea.controlPlaneRequest)(`mutation UpdateWorktreeBase($id: ID!, $baseBranch: String) {
|
|
60
|
+
updateWorktreeBaseBranch(id: $id, baseBranch: $baseBranch) { ${el.WORKTREE_FIELDS} }
|
|
61
|
+
}`,{id:r.id,baseBranch:e||null});n(t.updateWorktreeBaseBranch),i(null),c(!1)}catch(e){i(e instanceof Error?e.message:String(e))}finally{h(!1)}};return(0,t.jsxs)("div",{className:"min-w-0",children:[!l&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:o("baseBranch")}),(0,t.jsx)("div",{className:(0,er.cn)("flex min-h-6 min-w-0 items-center gap-1",!l&&"mt-0.5"),children:d?(0,t.jsxs)(X.Select,{disabled:u,onOpenChange:c,onValueChange:e=>void m(e===g?"":e),open:d,value:r.baseBranchOverride??(s.codebase.defaultBranch?g:void 0),children:[(0,t.jsx)(X.SelectTrigger,{"aria-label":o("baseBranch"),className:"h-7 min-w-40 max-w-full font-mono text-xs",size:"sm",children:(0,t.jsx)(X.SelectValue,{placeholder:o("baseUnavailable")})}),(0,t.jsxs)(X.SelectContent,{align:"start",children:[s.codebase.defaultBranch&&(0,t.jsxs)(X.SelectItem,{value:g,children:[s.codebase.defaultBranch," · ",o("inheritBase")]}),p.map(e=>(0,t.jsx)(X.SelectItem,{value:e,children:e},e))]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"truncate font-mono text-xs",title:r.baseBranch??void 0,children:r.baseBranch??"—"}),(0,t.jsx)(M.Button,{"aria-label":o("editBase"),onClick:()=>c(!0),size:"icon-xs",variant:"ghost",children:(0,t.jsx)(v.Pencil,{})})]})})]})}function e$(e,t){let a=t.activeMoves.some(t=>t.sourceCodebaseId===e.group.codebase.id||t.targetCodebaseId===e.group.codebase.id);return"ONLINE"===e.agentGroup.agent.connectionStatus&&e.agentGroup.agent.capabilities.includes("worktree.move.checkout")&&"AVAILABLE"===e.group.codebase.availability&&!e.group.worktrees.some(e=>e.activeJob)&&!a}function eO(e){let r,s,{worktree:n,allTags:i,onUpdate:l,onError:o,onManageTags:d,contentAlign:c="end",contentAlignOffset:u=0,trigger:g}=e,p=(0,A.useTranslations)("worktrees"),[m,v]=(0,a.useState)(!1),[w,k]=(0,a.useState)(!1),[y,S]=(0,a.useState)(!1),[T,N]=(0,a.useState)(!1),[E,D]=(0,a.useState)(null),[B,R]=(0,a.useState)(null),L=(0,a.useRef)(!1),W=(r=e.overview.agents.find(t=>t.codebases.some(t=>t.codebase.id===e.group.codebase.id)))?e.overview.agents.flatMap(t=>t.agent.id===r.agent.id?[]:t.codebases.flatMap(a=>a.repository.id===e.group.repository.id?[{agentGroup:t,group:a}]:[])):[],P=(s=e.overview.agents.find(t=>t.codebases.some(t=>t.codebase.id===e.group.codebase.id)))&&"ONLINE"===s.agent.connectionStatus&&s.agent.capabilities.includes("worktree.move.push")?"AVAILABLE"!==e.worktree.availability||e.worktree.activeJob||e.overview.activeMoves.some(t=>t.sourceCodebaseId===e.group.codebase.id||t.targetCodebaseId===e.group.codebase.id)?p("moveBlocked.busy"):e.worktree.branch&&e.worktree.headSha?e.worktree.hasStagedChanges||e.worktree.hasUnstagedChanges||"DIRTY"===e.worktree.pushStatus?p("moveBlocked.dirty"):"BEHIND"===e.worktree.pushStatus?p("moveBlocked.behind"):"DIVERGED"===e.worktree.pushStatus?p("moveBlocked.diverged"):"READY"!==e.worktree.pushStatus?p("moveBlocked.unknown"):W.some(t=>e$(t,e.overview))?null:p("moveBlocked.destination"):p("moveBlocked.detached"):p("moveBlocked.agent"),_=e.overview.agents.find(t=>t.codebases.some(t=>t.codebase.id===e.group.codebase.id)),O=!_||"ONLINE"!==_.agent.connectionStatus||!_.agent.capabilities.includes("worktree.delete")||"AVAILABLE"!==n.availability||!!n.activeJob||e.overview.activeMoves.some(t=>t.sourceCodebaseId===e.group.codebase.id||t.targetCodebaseId===e.group.codebase.id),U=new Set(n.tags.map(e=>e.id)),q=async(e,t)=>{let a=t?[...U,e]:[...U].filter(t=>t!==e);try{let e=await (0,ea.controlPlaneRequest)(`mutation SetWorktreeTags($id: ID!, $tagIds: [ID!]!) { setWorktreeTags(id: $id, tagIds: $tagIds) { ${el.WORKTREE_FIELDS} } }`,{id:n.id,tagIds:a});l(e.setWorktreeTags),o(null)}catch(e){o(e instanceof Error?e.message:String(e))}},F=async e=>{try{let t=await (0,ea.controlPlaneRequest)(`mutation HighlightWorktree($id: ID!, $color: String) { updateWorktreeHighlight(id: $id, color: $color) { ${el.WORKTREE_FIELDS} } }`,{id:n.id,color:e});l(t.updateWorktreeHighlight),o(null)}catch(e){o(e instanceof Error?e.message:String(e))}},V=async(t,a=!1)=>{N(!0);try{let r=await (0,ea.controlPlaneRequest)(`mutation ChangeWorktreeBranch($input: ChangeWorktreeBranchInput!) {
|
|
62
|
+
changeWorktreeBranch(input: $input) { id }
|
|
63
|
+
}`,{input:{worktreeId:n.id,selection:t,requestId:(0,et.createClientId)(),stashOnFailure:a}});await (0,ed.waitForWorktreeJob)(r.changeWorktreeBranch.id),await e.onReload(),D(null),R(null),v(!1),o(null)}finally{N(!1)}},G=async()=>{if(E)try{R(null),await V(E,!0)}catch(e){R(e instanceof Error?e.message:String(e))}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(J.Popover,{onOpenChange:e=>{v(e),e||(D(null),R(null))},open:m,children:[(0,t.jsxs)(H.DropdownMenu,{children:[(0,t.jsx)(H.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsx)(J.PopoverAnchor,{asChild:!0,children:g??(0,t.jsx)(M.Button,{"aria-label":p("customize"),size:"icon-sm",variant:"ghost",children:(0,t.jsx)(x.MoreHorizontal,{})})})}),(0,t.jsxs)(H.DropdownMenuContent,{align:c,alignOffset:u,className:"w-72",onCloseAutoFocus:e=>{L.current&&(L.current=!1,e.preventDefault(),v(!0))},children:[W.length>0&&(0,t.jsxs)(H.DropdownMenuItem,{disabled:!!P,onSelect:()=>k(!0),title:P??void 0,children:[(0,t.jsx)(b.MoveRight,{})," ",p("moveToAgent")]}),(0,t.jsxs)(H.DropdownMenuItem,{disabled:!e.branchManagementEnabled||"AVAILABLE"!==n.availability||!!n.activeJob,onSelect:()=>{L.current=!0},children:[(0,t.jsx)(h.GitBranch,{})," ",p("changeBranch")]}),(0,t.jsx)(H.DropdownMenuSeparator,{}),(0,t.jsxs)(H.DropdownMenuLabel,{className:"flex items-center gap-1.5 leading-none",children:[(0,t.jsx)(C.Tags,{className:"size-3"}),(0,t.jsx)("span",{children:p("tags")})]}),i.map(e=>(0,t.jsxs)(H.DropdownMenuCheckboxItem,{checked:U.has(e.id),onCheckedChange:t=>void q(e.id,!!t),children:[(0,t.jsx)("span",{className:(0,er.cn)("size-3 rounded-full border",ef[e.color])})," ",e.name]},e.id)),(0,t.jsxs)(H.DropdownMenuItem,{onSelect:d,children:[(0,t.jsx)(f.Plus,{})," ",p("manageTags")]}),(0,t.jsx)(H.DropdownMenuSeparator,{}),(0,t.jsxs)(H.DropdownMenuLabel,{className:"flex items-center gap-1.5 leading-none",children:[(0,t.jsx)(j.Paintbrush,{className:"size-3"}),(0,t.jsx)("span",{children:p("highlight")})]}),(0,t.jsxs)(ee.ToggleGroup,{"aria-label":p("highlight"),className:"grid grid-cols-7 gap-1 p-2",onClick:e=>e.stopPropagation(),onValueChange:e=>{e&&F("__none__"===e?null:e)},size:"sm",spacing:1,type:"single",value:n.highlightColor??"__none__",variant:"outline",children:[(0,t.jsx)(ee.ToggleGroupItem,{"aria-label":p("clearHighlight"),className:"size-7 min-w-0 p-0",value:"__none__",children:(0,t.jsx)(I.Trash2,{className:"size-3"})}),eu.map(e=>(0,t.jsx)(ee.ToggleGroupItem,{"aria-label":e,className:(0,er.cn)("size-7 min-w-0 p-0",ef[e],"data-[state=on]:ring-2 data-[state=on]:ring-foreground"),value:e},e))]}),!n.primary&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(H.DropdownMenuSeparator,{}),(0,t.jsxs)(H.DropdownMenuItem,{disabled:O,onSelect:()=>S(!0),variant:"destructive",children:[(0,t.jsx)(I.Trash2,{})," ",p("deleteWorktree")]})]})]})]}),(0,t.jsxs)(J.PopoverContent,{align:c,className:"z-60 w-[min(28rem,calc(100vw-2rem))]",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("h3",{className:"font-semibold",children:p("changeBranch")}),(0,t.jsx)("p",{className:"mt-1 truncate font-mono text-xs text-muted-foreground",children:ex(n.folder,e.baseRepoDirectory)})]}),(0,t.jsx)(en.WorktreeBranchForm,{busy:T,onSubmit:e=>V(e),onSubmitError:e=>{D(n.hasStagedChanges||n.hasUnstagedChanges?e:null)},recovery:E?(0,t.jsx)($.Alert,{children:(0,t.jsxs)($.AlertDescription,{className:"space-y-2",children:[(0,t.jsx)("p",{children:p("stashRetryHelp")}),B&&(0,t.jsx)("p",{className:"text-destructive",children:B}),(0,t.jsxs)(M.Button,{disabled:T,onClick:()=>void G(),size:"sm",type:"button",variant:"outline",children:[T&&(0,t.jsx)(Q.Spinner,{}),p("stashAndRetry")]})]})}):null,submitLabel:p("changeBranch"),target:ek(e.group,n)})]})]}),w&&(0,t.jsx)(eM,{onOpenChange:k,open:w,props:e,targets:W.filter(t=>e$(t,e.overview))}),!n.primary&&y&&(0,t.jsx)(eU,{onOpenChange:S,open:y,props:e})]})}function eM({props:e,targets:r,open:s,onOpenChange:n}){let i=(0,A.useTranslations)("worktrees"),l=1===r.length?r[0].group.codebase.id:"",[o,d]=(0,a.useState)(l),[c,u]=(0,a.useState)("__new__"),[h,g]=(0,a.useState)(!1),[p,m]=(0,a.useState)(!1),[x,b]=(0,a.useState)(null),[j,v]=(0,a.useState)(null),f=r.some(e=>e.group.codebase.id===o)?o:1===r.length?r[0].group.codebase.id:"",w=r.find(e=>e.group.codebase.id===f),k=r.map(e=>({value:e.group.codebase.id,label:`${e.agentGroup.agent.name} \xb7 ${e.group.repository.name}`,description:e.group.codebase.folder,keywords:`${e.agentGroup.agent.hostname} ${e.group.repository.displayOrigin}`})),y=w?.group.worktrees.find(e=>e.id===c),S=w?.group.worktrees.find(t=>t.branch===e.worktree.branch),C=!e.worktree.primary&&e.overview.agents.some(t=>t.codebases.some(t=>t.codebase.id===e.group.codebase.id)&&t.agent.capabilities.includes("worktree.delete")),I=async t=>{if("AWAITING_STASH"===t.status){v(t),await e.onReload();return}if("FAILED"===t.status)throw Error(t.error||i("moveFailed"));if("CANCELLED"===t.status)throw Error(i("moveCancelled"));e.onError("SUCCEEDED_WITH_WARNING"===t.status?t.warning:null),await e.onReload(),e.onMoved?.(t),n(!1)},T=async()=>{if(w){m(!0),b(null);try{let t=await (0,ea.controlPlaneRequest)(`mutation MoveWorktree($input: MoveWorktreeInput!) {
|
|
64
|
+
moveWorktree(input: $input) {
|
|
65
|
+
id sourceWorktreeId sourceCodebaseId targetCodebaseId targetWorktreeId destinationMode
|
|
66
|
+
branch headSha deleteSource status sourceJobId targetJobId cleanupJobId error warning
|
|
67
|
+
createdAt updatedAt finishedAt
|
|
68
|
+
}
|
|
69
|
+
}`,{input:{sourceWorktreeId:e.worktree.id,targetCodebaseId:w.group.codebase.id,targetWorktreeId:"__new__"===c?null:c,deleteSource:h,requestId:(0,et.createClientId)()}});await I(await (0,ed.waitForWorktreeMove)(t.moveWorktree.id))}catch(e){b(e instanceof Error?e.message:String(e))}finally{m(!1)}}},N=async()=>{if(j){m(!0),b(null);try{await (0,ea.controlPlaneRequest)(`mutation RetryMove($id: ID!) {
|
|
70
|
+
retryWorktreeMoveWithStash(id: $id) { id status }
|
|
71
|
+
}`,{id:j.id}),await I(await (0,ed.waitForWorktreeMove)(j.id))}catch(e){b(e instanceof Error?e.message:String(e))}finally{m(!1)}}},E=async()=>{if(j){m(!0);try{await (0,ea.controlPlaneRequest)(`mutation CancelMove($id: ID!) {
|
|
72
|
+
cancelWorktreeMove(id: $id) { id status }
|
|
73
|
+
}`,{id:j.id}),await e.onReload(),n(!1)}catch(e){b(e instanceof Error?e.message:String(e))}finally{m(!1)}}};return(0,t.jsx)(F.Dialog,{onOpenChange:e=>!p&&n(e),open:s,children:(0,t.jsxs)(F.DialogContent,{className:"sm:max-w-xl",children:[(0,t.jsxs)(F.DialogHeader,{children:[(0,t.jsx)(F.DialogTitle,{children:i("moveToAgent")}),(0,t.jsx)(F.DialogDescription,{children:i("moveDescription",{branch:e.worktree.branch??""})})]}),j?(0,t.jsx)($.Alert,{children:(0,t.jsxs)($.AlertDescription,{className:"space-y-3",children:[(0,t.jsx)("p",{children:j.error||i("moveNeedsStash")}),(0,t.jsx)("p",{className:"text-muted-foreground",children:i("moveStashHelp")})]})}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Label,{className:"mb-1.5 block",children:i("destinationAgent")}),(0,t.jsx)(Y.SearchableSelect,{ariaLabel:i("destinationAgent"),disabled:p,emptyMessage:i("noMoveDestinations"),onValueChange:e=>{d(e),u("__new__")},options:k,placeholder:i("selectDestinationAgent"),searchPlaceholder:i("searchDestinationAgents"),value:f})]}),w&&(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Label,{className:"mb-1.5 block",children:i("destinationWorktree")}),(0,t.jsxs)(X.Select,{disabled:p,onValueChange:u,value:c,children:[(0,t.jsx)(X.SelectTrigger,{"aria-label":i("destinationWorktree"),children:(0,t.jsx)(X.SelectValue,{})}),(0,t.jsxs)(X.SelectContent,{children:[(0,t.jsx)(X.SelectItem,{disabled:!!S,value:"__new__",children:i("createDestinationWorktree")}),w.group.worktrees.filter(e=>"AVAILABLE"===e.availability).map(e=>(0,t.jsxs)(X.SelectItem,{disabled:!!S&&S.id!==e.id,value:e.id,children:[e.branch??i("detached")," ·"," ",e.relativePath]},e.id))]})]})]}),y&&(y.hasStagedChanges||y.hasUnstagedChanges)&&(0,t.jsx)($.Alert,{children:(0,t.jsx)($.AlertDescription,{children:i("dirtyDestinationWarning")})}),(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(q.Checkbox,{checked:h,disabled:!C||p,id:`delete-source-${e.worktree.id}`,onCheckedChange:e=>g(!!e)}),(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Label,{htmlFor:`delete-source-${e.worktree.id}`,children:i("deleteOldWorktree")}),!C&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:i("deleteOldWorktreeDisabled")})]})]})]}),x&&(0,t.jsx)($.Alert,{variant:"destructive",children:(0,t.jsx)($.AlertDescription,{children:x})}),(0,t.jsxs)(F.DialogFooter,{children:[(0,t.jsx)(M.Button,{disabled:p,onClick:()=>j?void E():n(!1),variant:"outline",children:j?i("cancelMove"):i("cancel")}),(0,t.jsxs)(M.Button,{disabled:p||!j&&!w,onClick:()=>j?void N():void T(),children:[p&&(0,t.jsx)(Q.Spinner,{}),j?i("stashAndContinue"):i("moveWorktree")]})]})]})})}function eU({props:e,open:r,onOpenChange:s}){let n=(0,A.useTranslations)("worktrees"),[i,l]=(0,a.useState)(!1),[o,d]=(0,a.useState)(!1),[c,u]=(0,a.useState)(null),h=!!(e.worktree.branch&&(e.group.codebase.remoteBranches.includes(e.worktree.branch)||e.worktree.upstream===`origin/${e.worktree.branch}`)),g=e.worktree.branch===e.group.codebase.defaultBranch,p=async()=>{d(!0),u(null);try{let t=await (0,ea.controlPlaneRequest)(`mutation DeleteWorktree($input: DeleteWorktreeInput!) {
|
|
74
|
+
deleteWorktree(input: $input) { id }
|
|
75
|
+
}`,{input:{worktreeId:e.worktree.id,deleteRemoteBranch:i,requestId:(0,et.createClientId)()}});await (0,ed.waitForWorktreeJob)(t.deleteWorktree.id),await e.onReload(),e.onError(null),e.onDeleted?.(),s(!1)}catch(e){u(e instanceof Error?e.message:String(e))}finally{d(!1)}};return(0,t.jsx)(F.Dialog,{onOpenChange:e=>!o&&s(e),open:r,children:(0,t.jsxs)(F.DialogContent,{children:[(0,t.jsxs)(F.DialogHeader,{children:[(0,t.jsx)(F.DialogTitle,{children:n("deleteWorktree")}),(0,t.jsx)(F.DialogDescription,{children:n("deleteWorktreeDescription",{path:ex(e.worktree.folder,e.baseRepoDirectory)})})]}),(0,t.jsx)($.Alert,{variant:"destructive",children:(0,t.jsx)($.AlertDescription,{children:n("deleteWorktreeWarning")})}),h&&(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(q.Checkbox,{checked:i,disabled:o||g,id:`delete-remote-${e.worktree.id}`,onCheckedChange:e=>l(!!e)}),(0,t.jsxs)("div",{children:[(0,t.jsx)(K.Label,{htmlFor:`delete-remote-${e.worktree.id}`,children:n("deleteRemoteBranch",{branch:e.worktree.branch??""})}),g&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:n("defaultRemoteProtected")})]})]}),c&&(0,t.jsx)($.Alert,{variant:"destructive",children:(0,t.jsx)($.AlertDescription,{children:c})}),(0,t.jsxs)(F.DialogFooter,{children:[(0,t.jsx)(M.Button,{disabled:o,onClick:()=>s(!1),variant:"outline",children:n("cancel")}),(0,t.jsxs)(M.Button,{disabled:o,onClick:()=>void p(),variant:"destructive",children:[o&&(0,t.jsx)(Q.Spinner,{}),n("deleteWorktree")]})]})]})})}function eq(e){let{worktree:a,editorVariant:s}=e,n=(0,A.useTranslations)("worktrees"),i="AVAILABLE"!==a.availability||!!a.activeJob,o=eb(a),d=e.overview.agents.find(t=>t.codebases.some(t=>t.codebase.id===e.group.codebase.id))?.agent,u=d?.connectionStatus==="ONLINE"&&d.capabilities.includes("ios.build.run")&&!1===e.group.iosBuildConfigured,h="AVAILABLE"!==a.availability||!d||"ONLINE"!==d.connectionStatus||!d.capabilities.includes("ios.build.run")||!1===e.group.iosBuildConfigured;return(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(R.StartBuildButton,{buildSettingsHref:u?`/codebases/repositories/${e.group.repository.id}`:void 0,codebaseId:e.group.codebase.id,disabled:h,disabledReason:d&&"ONLINE"===d.connectionStatus?d.capabilities.includes("ios.build.run")?!1===e.group.iosBuildConfigured?n("iosBuildNotConfigured"):"AVAILABLE"!==a.availability?n("worktreeUnavailable"):null:n("agentUnsupported"):n("agentOffline"),worktreeId:a.id}),a.pullRequest&&(0,t.jsx)(L.MergePullRequestButton,{onMerged:e.onCompleted,pullRequest:a.pullRequest}),"NONE"!==s&&(0,t.jsx)(eF,{icon:(0,t.jsx)(c.Code2,{}),label:n("CODE_INSIDERS"===s?"openInsiders":"openCode"),operation:"OPEN_EDITOR",props:e}),(0,t.jsx)(eF,{confirm:!0,icon:(0,t.jsx)(T.Upload,{}),label:n("forcePush"),operation:"FORCE_PUSH",props:e,disabled:i||!a.upstream}),(0,t.jsx)(eF,{confirm:!0,icon:(0,t.jsx)(w.RefreshCw,{}),label:n("sync"),operation:"SYNC",props:e,disabled:i||!a.upstream||!a.baseBranch||0===a.baseBehind}),(0,t.jsx)(eF,{icon:(0,t.jsx)(T.Upload,{}),label:n(a.upstream?"push":"publish"),operation:"PUSH",props:e,disabled:i||!a.branch}),(0,t.jsx)(eF,{confirm:!0,icon:(0,t.jsx)(k.RotateCcw,{}),label:n("reset"),operation:"RESET",props:e,disabled:i||!a.upstream}),(0,t.jsx)(eF,{icon:(0,t.jsx)(r.Archive,{}),label:n("stashAll"),operation:"STASH_ALL",props:e,disabled:i||!o.hasChanges}),(0,t.jsx)(eF,{icon:(0,t.jsx)(l.Check,{}),label:n("UNSTAGE_ALL"===o.stageOperation?"unstageAll":"stageAll"),operation:o.stageOperation,props:e,disabled:i||!o.hasChanges}),a.activeJob&&(0,t.jsxs)("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,t.jsx)(Q.Spinner,{})," ",n("operationRunning")]})]})}function eF({props:e,operation:r,label:s,icon:n,confirm:i=!1,disabled:o=!1}){let d=(0,A.useTranslations)("worktrees"),[c,u]=(0,a.useState)(!1),[h,g]=(0,a.useState)(!1),p=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{p.current&&window.clearTimeout(p.current)},[]);let m=async()=>{if(i&&!c){u(!0),p.current=window.setTimeout(()=>u(!1),5e3);return}g(!0),u(!1);try{let t=await (0,ea.controlPlaneRequest)("mutation RunWorktreeOperation($input: RunWorktreeOperationInput!) { runWorktreeOperation(input: $input) { id } }",{input:{worktreeId:e.worktree.id,operation:r,requestId:(0,et.createClientId)()}});e.onError(null),await e.onCompleted(),await (0,ed.waitForWorktreeJob)(t.runWorktreeOperation.id),await e.onCompleted()}catch(t){e.onError(t instanceof Error?t.message:String(t))}finally{g(!1)}};return(0,t.jsxs)(M.Button,{disabled:o||h,onClick:()=>void m(),size:"sm",variant:c?"destructive":"outline",children:[h?(0,t.jsx)(Q.Spinner,{}):c?(0,t.jsx)(l.Check,{}):n," ",c?d("confirmAction"):s]})}function eH(e){let r=(0,A.useTranslations)("worktrees");return(0,t.jsx)("div",{className:"rounded-xl border",children:(0,t.jsxs)(Z.Table,{children:[(0,t.jsx)(Z.TableHeader,{children:(0,t.jsxs)(Z.TableRow,{children:[(0,t.jsx)(Z.TableHead,{children:r("branch")}),(0,t.jsx)(Z.TableHead,{children:r("path")}),(0,t.jsx)(Z.TableHead,{children:r("baseBranch")}),(0,t.jsx)(Z.TableHead,{children:r("upToDate")}),(0,t.jsx)(Z.TableHead,{children:r("tags")}),(0,t.jsx)(Z.TableHead,{children:r("pullRequest")}),(0,t.jsx)(Z.TableHead,{children:r("origin")}),(0,t.jsx)(Z.TableHead,{})]})}),(0,t.jsx)(Z.TableBody,{children:e.group.worktrees.map(t=>(0,a.createElement)(eV,{...e,key:t.id,worktree:t}))})]})})}function eV(e){let{baseRepoDirectory:r,inspectionRefreshToken:s,onError:n}=e,{worktree:i,applyActivity:l,setUnstagedChanges:c}=(0,eo.useLiveWorktree)(e.worktree),u={...e,worktree:i},h=(0,A.useTranslations)("worktrees"),g=(0,es.useRouter)(),[p,m]=(0,a.useState)(!1),[x,b]=(0,a.useState)(null),[j,v]=(0,a.useState)(!1),f=(0,a.useRef)(0),w=(0,a.useRef)(s),k=(0,a.useCallback)(async()=>{let e=++f.current;v(!0);try{let t=await (0,eo.inspectWorktree)(i.id);if(e!==f.current)return;b(t),c(t.changes.some(e=>e.unstaged||e.untracked||e.conflicted)),n(null)}catch(t){e===f.current&&n(t instanceof Error?t.message:String(t))}finally{e===f.current&&v(!1)}},[n,c,i.id]),y=(0,eo.useQueuedWorktreeInspection)(k),S=(0,a.useCallback)(e=>{l(e),p&&y()},[l,p,y]);(0,eo.useWorktreeActivitySubscription)(i.id,e.liveUpdatesEnabled&&"AVAILABLE"===i.availability,S),(0,a.useEffect)(()=>{if(w.current===s||(w.current=s,!p))return;let e=window.setTimeout(()=>void y(),0);return()=>window.clearTimeout(e)},[p,s,y]);let C=()=>{let e=!p;m(e),e&&!x&&y()},I=i.highlightColor&&ej[i.highlightColor];return(0,t.jsxs)(a.Fragment,{children:[(0,t.jsxs)(Z.TableRow,{className:(0,er.cn)("cursor-pointer transition-colors hover:bg-muted/50",I),onClick:e=>{(0,ec.shouldNavigateWorktreeSurface)(e)&&g.push((0,ec.worktreeDetailHref)(i.id))},children:[(0,t.jsxs)(Z.TableCell,{children:[(0,t.jsxs)(M.Button,{"aria-expanded":p,className:"max-w-full px-0 font-mono",onClick:()=>void C(),variant:"ghost",children:[p?(0,t.jsx)(o.ChevronDown,{}):(0,t.jsx)(d.ChevronRight,{}),(0,t.jsx)("span",{className:"truncate",children:i.branch??h("detached")})]}),(i.ticketKey||i.ticketTitle)&&(0,t.jsx)(eN,{...u,compact:!0})]}),(0,t.jsx)(Z.TableCell,{className:"font-mono text-xs",children:ex(i.folder,r)}),(0,t.jsx)(Z.TableCell,{children:(0,t.jsx)(e_,{...u,compact:!0})}),(0,t.jsx)(Z.TableCell,{children:(0,t.jsx)(eR,{worktree:i})}),(0,t.jsx)(Z.TableCell,{children:(0,t.jsx)(eB,{...u,compact:!0})}),(0,t.jsx)(Z.TableCell,{children:(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5",children:(0,t.jsx)(eL,{detailsExpanded:p,onToggleDetails:C,worktree:i})})}),(0,t.jsx)(Z.TableCell,{children:(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[(0,t.jsx)(eP,{worktree:i}),i.hasUnstagedChanges&&(0,t.jsx)(O.Badge,{variant:"destructive",children:h("dirty")})]})}),(0,t.jsx)(Z.TableCell,{children:(0,t.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[(0,t.jsx)(eT,{worktree:i}),(0,t.jsx)(eO,{...u})]})})]}),(0,t.jsx)(Z.TableRow,{className:(0,er.cn)(I),children:(0,t.jsx)(Z.TableCell,{colSpan:8,children:(0,t.jsx)(eq,{...u,onCompleted:async()=>{await e.onReload(),p&&await y()}})})}),p&&(0,t.jsx)(Z.TableRow,{className:(0,er.cn)(I),children:(0,t.jsx)(Z.TableCell,{colSpan:8,children:j&&!x?(0,t.jsx)(Q.Spinner,{}):x?(0,t.jsx)(ei.WorktreeDetailPanel,{detail:x,inline:!0}):null})})]})}function eG({tag:e}){return(0,t.jsx)(O.Badge,{className:ev[e.color],children:e.name})}function ez({label:e,value:a,mono:r=!1}){return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e}),(0,t.jsx)("p",{className:(0,er.cn)("flex min-h-6 items-center truncate",r&&"font-mono text-xs"),title:a,children:a})]})}function eK({open:e,onOpenChange:r,tags:s,onChanged:n}){let i=(0,A.useTranslations)("worktrees"),[l,o]=(0,a.useState)(null),[d,c]=(0,a.useState)(""),[u,h]=(0,a.useState)("blue"),[g,p]=(0,a.useState)(null),m=async e=>{e.preventDefault();try{await (0,ea.controlPlaneRequest)("mutation SaveTag($input: SaveWorktreeTagInput!) { saveWorktreeTag(input: $input) { id } }",{input:{id:l?.id??null,name:d,color:u}}),o(null),c(""),h("blue"),p(null),await n()}catch(e){p(e instanceof Error?e.message:String(e))}},x=async e=>{try{await (0,ea.controlPlaneRequest)("mutation DeleteTag($id: ID!) { deleteWorktreeTag(id: $id) }",{id:e}),await n()}catch(e){p(e instanceof Error?e.message:String(e))}};return(0,t.jsx)(F.Dialog,{onOpenChange:r,open:e,children:(0,t.jsxs)(F.DialogContent,{children:[(0,t.jsxs)(F.DialogHeader,{children:[(0,t.jsx)(F.DialogTitle,{children:i("manageTags")}),(0,t.jsx)(F.DialogDescription,{children:i("manageTagsDescription")})]}),g&&(0,t.jsx)($.Alert,{variant:"destructive",children:(0,t.jsx)($.AlertDescription,{children:g})}),(0,t.jsx)(z.ItemGroup,{className:"gap-2",children:s.map(e=>(0,t.jsxs)(z.Item,{size:"sm",variant:"outline",children:[(0,t.jsx)(z.ItemContent,{children:(0,t.jsx)(z.ItemTitle,{children:(0,t.jsx)(eG,{tag:e})})}),(0,t.jsxs)(z.ItemActions,{children:[(0,t.jsx)(M.Button,{onClick:()=>{o(e),c(e.name),h(e.color)},size:"sm",variant:"outline",children:i("edit")}),(0,t.jsx)(M.Button,{onClick:()=>void x(e.id),size:"icon-sm",variant:"destructive",children:(0,t.jsx)(I.Trash2,{})})]})]},e.id))}),(0,t.jsxs)("form",{className:"space-y-3 border-t pt-3",onSubmit:m,children:[(0,t.jsx)(K.Label,{htmlFor:"tag-name",children:l?i("editTag"):i("createTag")}),(0,t.jsx)(G.Input,{id:"tag-name",maxLength:40,onChange:e=>c(e.target.value),required:!0,value:d}),(0,t.jsx)(ee.ToggleGroup,{"aria-label":i("highlight"),className:"grid grid-cols-12 gap-1",onValueChange:e=>{e&&h(e)},size:"sm",spacing:1,type:"single",value:u,variant:"outline",children:eu.map(e=>(0,t.jsx)(ee.ToggleGroupItem,{"aria-label":e,className:(0,er.cn)("size-7 min-w-0 p-0",ef[e],"data-[state=on]:ring-2 data-[state=on]:ring-foreground"),value:e},e))}),(0,t.jsx)(F.DialogFooter,{children:(0,t.jsxs)(M.Button,{type:"submit",children:[(0,t.jsx)(y.Save,{})," ",i("saveTag")]})})]})]})})}function eJ({open:e,onOpenChange:s,onChanged:n}){let i=(0,A.useTranslations)("worktrees"),[l,o]=(0,a.useState)([]),[d,c]=(0,a.useState)(null),u=(0,a.useCallback)(async()=>{try{let e=await (0,ea.controlPlaneRequest)(`query HiddenWorktrees { hiddenWorktrees { ${el.WORKTREE_FIELDS} } }`);o(e.hiddenWorktrees),c(null)}catch(e){c(e instanceof Error?e.message:String(e))}},[]);(0,a.useEffect)(()=>{if(!e)return;let t=window.setTimeout(()=>void u(),0);return()=>window.clearTimeout(t)},[e,u]);let g=async e=>{try{await (0,ea.controlPlaneRequest)(e?"mutation PurgeHidden($id: ID!) { purgeHiddenWorktree(id: $id) }":"mutation PurgeAllHidden { purgeAllHiddenWorktrees }",e?{id:e}:void 0),await u(),await n()}catch(e){c(e instanceof Error?e.message:String(e))}};return(0,t.jsx)(F.Dialog,{onOpenChange:s,open:e,children:(0,t.jsxs)(F.DialogContent,{className:"sm:max-w-3xl",children:[(0,t.jsxs)(F.DialogHeader,{children:[(0,t.jsx)(F.DialogTitle,{children:i("hiddenTitle")}),(0,t.jsx)(F.DialogDescription,{children:i("hiddenDescription")})]}),d&&(0,t.jsx)($.Alert,{variant:"destructive",children:(0,t.jsx)($.AlertDescription,{children:d})}),(0,t.jsx)("div",{className:"max-h-96 overflow-y-auto",children:l.length?(0,t.jsx)(z.ItemGroup,{className:"gap-2",children:l.map(e=>(0,t.jsxs)(z.Item,{variant:"outline",children:[(0,t.jsx)(z.ItemMedia,{variant:"icon",children:(0,t.jsx)(h.GitBranch,{})}),(0,t.jsxs)(z.ItemContent,{className:"min-w-0",children:[(0,t.jsx)(z.ItemTitle,{className:"font-mono",children:e.branch??i("detached")}),(0,t.jsx)(z.ItemDescription,{className:"truncate",title:e.folder,children:e.folder})]}),(0,t.jsx)(z.ItemActions,{children:(0,t.jsxs)(M.Button,{onClick:()=>void g(e.id),size:"sm",variant:"destructive",children:[(0,t.jsx)(I.Trash2,{})," ",i("purge")]})})]},e.id))}):(0,t.jsx)(V.Empty,{className:"border-0 py-8",children:(0,t.jsxs)(V.EmptyHeader,{children:[(0,t.jsx)(V.EmptyMedia,{variant:"icon",children:(0,t.jsx)(r.Archive,{})}),(0,t.jsx)(V.EmptyTitle,{children:i("noHidden")})]})})}),(0,t.jsx)(F.DialogFooter,{children:l.length>0&&(0,t.jsxs)(M.Button,{onClick:()=>void g(),variant:"destructive",children:[(0,t.jsx)(I.Trash2,{})," ",i("purgeAll")]})})]})})}e.s(["ActionRow",0,eq,"BaseBranchControl",0,e_,"BaseFreshnessBadge",0,eR,"OriginStatusBadges",0,eP,"PullRequestBadges",0,eL,"TagManagerDialog",0,eK,"WorktreeMenus",0,eO,"WorktreeMetadata",0,eA,"WorktreeTagsMenu",0,eB,"WorktreeTicketLink",0,eN,"WorktreesPage",0,function(){let e=(0,A.useTranslations)("worktrees"),[s,n]=(0,a.useState)(()=>new URLSearchParams(window.location.search).get("issue")),[i,l]=(0,a.useState)(null),[o,d]=(0,a.useState)(()=>"table"===window.localStorage.getItem(eh)?"table":"cards"),[c,u]=(0,a.useState)(!0),[g,x]=(0,a.useState)(!1),[b,j]=(0,a.useState)(null),[v,f]=(0,a.useState)(null),[k,y]=(0,a.useState)(0),[C,I]=(0,a.useState)(!1),[N,D]=(0,a.useState)(!1),[B,R]=(0,a.useState)(""),[L,W]=(0,a.useState)(eg),[P,O]=(0,a.useState)(eg),U=(0,a.useRef)(0),q=(0,a.useCallback)(async()=>{let e=++U.current;try{let t=await (0,ea.controlPlaneRequest)(`query WorktreeOverview {
|
|
76
|
+
worktreeOverview {
|
|
77
|
+
hiddenCount
|
|
78
|
+
settings { editorVariant updatedAt }
|
|
79
|
+
tags { id name color createdAt updatedAt }
|
|
80
|
+
activeMoves {
|
|
81
|
+
id sourceWorktreeId sourceCodebaseId targetCodebaseId targetWorktreeId destinationMode
|
|
82
|
+
branch headSha deleteSource status sourceJobId targetJobId cleanupJobId error warning
|
|
83
|
+
createdAt updatedAt finishedAt
|
|
84
|
+
}
|
|
85
|
+
agents {
|
|
86
|
+
agent { ${E.AGENT_FIELDS} }
|
|
87
|
+
codebases {
|
|
88
|
+
iosBuildConfigured
|
|
89
|
+
repository { id canonicalOrigin displayOrigin name description jiraBranchRegex keepBaseBranchUpToDate createdAt updatedAt }
|
|
90
|
+
codebase { ${el.CODEBASE_FIELDS} }
|
|
91
|
+
worktrees { ${el.WORKTREE_FIELDS} }
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}`);if(e!==U.current)return;l(t.worktreeOverview),j(null)}catch(t){e===U.current&&j(t instanceof Error?t.message:String(t))}finally{e===U.current&&u(!1)}},[]);(0,a.useEffect)(()=>{let e=window.setTimeout(()=>void q(),0),t=window.setInterval(()=>void q(),3e4),a=(0,ea.controlPlaneSubscriptions)(),r=a.subscribe({query:"subscription WorktreesChanged { worktreeOverviewChanged { worktreeId codebaseId } }"},{next:()=>void q(),error:()=>void 0,complete:()=>void 0}),s=a.subscribe({query:"subscription WorktreeBuildsChanged { buildsChanged { id } }"},{next:()=>void q(),error:()=>void 0,complete:()=>void 0});return()=>{window.clearTimeout(e),window.clearInterval(t),U.current+=1,r(),s()}},[q]),(0,a.useEffect)(()=>{let e=()=>n(new URLSearchParams(window.location.search).get("issue"));return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]);let F=e=>{let t,a;t=new URLSearchParams(window.location.search),e?t.set("issue",e):t.delete("issue"),a=t.toString(),window.history.pushState(null,"",`${window.location.pathname}${a?`?${a}`:""}`),n(e)},H=async()=>{u(!0),x(!0);try{await (0,ea.controlPlaneRequest)(`mutation RefreshWorktrees {
|
|
96
|
+
refreshWorktrees
|
|
97
|
+
}`),await q(),y(e=>e+1),j(null)}catch(e){j(e instanceof Error?e.message:String(e))}finally{x(!1),u(!1)}},z=async()=>{let t=i?.agents.flatMap(e=>e.codebases.map(e=>e.codebase.id))??[];if(t.length){x(!0);try{await (0,ea.controlPlaneRequest)(`mutation FetchWorktreeCodebases($input: RunCodebaseOperationInput!) {
|
|
98
|
+
fetchCodebases(input: $input) { jobs { id } skipped { codebaseId reason } }
|
|
99
|
+
}`,{input:{codebaseIds:t,requestId:(0,et.createClientId)()}}),f(e("fetchStarted")),j(null),await q()}catch(e){j(e instanceof Error?e.message:String(e)),f(null)}finally{x(!1)}}},K=e=>{l(t=>t?{...t,agents:t.agents.map(t=>({...t,codebases:t.codebases.map(t=>({...t,worktrees:t.worktrees.map(t=>t.id===e.id?{...t,...e,ticketKey:e.ticketKey??t.ticketKey,ticketTitle:e.ticketTitle??t.ticketTitle,ticketStatus:e.ticketStatus??t.ticketStatus,pullRequest:e.pullRequest??t.pullRequest}:t)}))}))}:t)},J=(0,a.useMemo)(()=>{let e=new Map;return i?.agents.forEach(t=>t.codebases.forEach(t=>e.set(t.repository.id,{id:t.repository.id,name:t.repository.name}))),[...e.values()].sort((e,t)=>e.name.localeCompare(t.name))},[i]),Y=(0,a.useMemo)(()=>em(i?.agents??[],{query:B,agentId:L===eg?null:L,repositoryId:P===eg?null:P}),[L,i,B,P]),Z=!!B.trim()||L!==eg||P!==eg;return(0,t.jsxs)("section",{className:"flex w-full flex-col gap-6",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:e("title")}),(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e("description")})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsxs)(M.Button,{disabled:g,onClick:()=>void H(),variant:"outline",children:[(0,t.jsx)(w.RefreshCw,{className:c?"animate-spin":void 0})," ",e("refresh")]}),(0,t.jsxs)(M.Button,{disabled:g||!i?.agents.length,onClick:()=>void z(),variant:"outline",children:[(0,t.jsx)(T.Upload,{})," ",e("fetchNow")]}),(0,t.jsxs)(M.Button,{onClick:()=>D(!0),variant:"outline",children:[(0,t.jsx)(r.Archive,{})," ",e("hidden",{count:i?.hiddenCount??0})]}),(0,t.jsxs)(ee.ToggleGroup,{"aria-label":`${e("cards")} / ${e("table")}`,onValueChange:e=>{("cards"===e||"table"===e)&&(d(e),window.localStorage.setItem(eh,e))},size:"sm",spacing:0,type:"single",value:o,variant:"outline",children:[(0,t.jsx)(ee.ToggleGroupItem,{"aria-label":e("cards"),className:"px-2",value:"cards",children:(0,t.jsx)(p.Grid2X2,{})}),(0,t.jsx)(ee.ToggleGroupItem,{"aria-label":e("table"),className:"px-2",value:"table",children:(0,t.jsx)(m.List,{})})]})]})]}),b&&(0,t.jsx)($.Alert,{variant:"destructive",children:(0,t.jsx)($.AlertDescription,{children:b})}),v&&(0,t.jsx)($.Alert,{children:(0,t.jsx)($.AlertDescription,{children:v})}),i&&i.agents.length>0&&(0,t.jsxs)("div",{"aria-label":e("filters"),className:"flex flex-wrap gap-2",role:"search",children:[(0,t.jsxs)("div",{className:"relative min-w-0 flex-[2_1_18rem]",children:[(0,t.jsx)(S.Search,{className:"pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(G.Input,{"aria-label":e("searchWorktrees"),className:"pl-9",onChange:e=>R(e.target.value),placeholder:e("searchWorktreesPlaceholder"),type:"search",value:B})]}),(0,t.jsx)("div",{className:"min-w-0 flex-[1_1_12rem]",children:(0,t.jsxs)(X.Select,{onValueChange:W,value:L,children:[(0,t.jsx)(X.SelectTrigger,{"aria-label":e("filterByAgent"),className:"w-full",children:(0,t.jsx)(X.SelectValue,{})}),(0,t.jsxs)(X.SelectContent,{children:[(0,t.jsx)(X.SelectItem,{value:eg,children:e("allAgents")}),i.agents.map(e=>(0,t.jsx)(X.SelectItem,{value:e.agent.id,children:e.agent.name},e.agent.id))]})]})}),(0,t.jsx)("div",{className:"min-w-0 flex-[1_1_12rem]",children:(0,t.jsxs)(X.Select,{onValueChange:O,value:P,children:[(0,t.jsx)(X.SelectTrigger,{"aria-label":e("filterByRepository"),className:"w-full",children:(0,t.jsx)(X.SelectValue,{})}),(0,t.jsxs)(X.SelectContent,{children:[(0,t.jsx)(X.SelectItem,{value:eg,children:e("allRepositories")}),J.map(e=>(0,t.jsx)(X.SelectItem,{value:e.id,children:e.name},e.id))]})]})})]}),i&&i.activeMoves.length>0&&(0,t.jsx)(ew,{moves:i.activeMoves,onError:j,onNotice:f,onReload:q}),i&&(0,t.jsx)(ey,{onCreated:async()=>{await q(),f(e("worktreeCreated"))},overview:i}),c&&!i?(0,t.jsxs)("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(Q.Spinner,{})," ",e("loading")]}):i?.agents.length?Z&&0===Y.length?(0,t.jsx)(V.Empty,{className:"border py-12",children:(0,t.jsxs)(V.EmptyHeader,{children:[(0,t.jsx)(V.EmptyMedia,{variant:"icon",children:(0,t.jsx)(S.Search,{})}),(0,t.jsx)(V.EmptyTitle,{children:e("noMatchingWorktrees")}),(0,t.jsx)(V.EmptyDescription,{children:e("noMatchingWorktreesDescription")})]})}):Y.map(e=>(0,t.jsx)(eS,{agentGroup:e,allTags:i.tags,editorVariant:i.settings.editorVariant,inspectionRefreshToken:k,layout:o,onError:j,onManageTags:()=>I(!0),onOpenTicket:e=>F(e),onReload:q,onUpdate:K,overview:i},e.agent.id)):(0,t.jsx)(V.Empty,{className:"border py-12",children:(0,t.jsxs)(V.EmptyHeader,{children:[(0,t.jsx)(V.EmptyMedia,{variant:"icon",children:(0,t.jsx)(h.GitBranch,{})}),(0,t.jsx)(V.EmptyTitle,{children:e("emptyTitle")}),(0,t.jsx)(V.EmptyDescription,{children:e("emptyDescription")})]})}),(0,t.jsx)(eK,{onChanged:q,onOpenChange:I,open:C,tags:i?.tags??[]}),(0,t.jsx)(eJ,{onChanged:q,onOpenChange:D,open:N}),(0,t.jsx)(_.JiraTicketDrawer,{issueKey:s,onClose:()=>F(null)})]})},"displayedWorktreePath",0,ex,"filterWorktreeAgentGroups",0,em,"worktreeChangeActionState",0,eb])}]);
|