viba-cli 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page.js +1 -1
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/component-source/resolve/route.js +1 -1
- package/.next/server/app/api/component-source/resolve/route.js.nft.json +1 -1
- package/.next/server/app/api/credentials/github/repos/route.js +1 -1
- package/.next/server/app/api/credentials/github/repos/route.js.nft.json +1 -1
- package/.next/server/app/api/credentials/route.js +1 -1
- package/.next/server/app/api/credentials/route.js.nft.json +1 -1
- package/.next/server/app/api/custom-scripts/route.js.nft.json +1 -1
- package/.next/server/app/api/git/action/route.js +1 -1
- package/.next/server/app/api/git/action/route.js.nft.json +1 -1
- package/.next/server/app/api/git/branches/route.js.nft.json +1 -1
- package/.next/server/app/api/git/diff/route.js +1 -1
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -1
- package/.next/server/app/api/git/log/route.js.nft.json +1 -1
- package/.next/server/app/api/git/status/route.js.nft.json +1 -1
- package/.next/server/app/api/preview-proxy/start/route.js +1 -1
- package/.next/server/app/api/preview-proxy/start/route.js.nft.json +1 -1
- package/.next/server/app/api/repos/clone/route.js +1 -1
- package/.next/server/app/api/repos/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repos/route.js +1 -1
- package/.next/server/app/api/repos/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/credentials/page/server-reference-manifest.json +7 -7
- package/.next/server/app/credentials/page.js +1 -1
- package/.next/server/app/credentials/page.js.nft.json +1 -1
- package/.next/server/app/credentials/page_client-reference-manifest.js +1 -1
- package/.next/server/app/credentials.html +2 -2
- package/.next/server/app/credentials.rsc +4 -4
- package/.next/server/app/credentials.segments/_full.segment.rsc +4 -4
- package/.next/server/app/credentials.segments/_head.segment.rsc +1 -1
- package/.next/server/app/credentials.segments/_index.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/credentials.segment.rsc +1 -1
- package/.next/server/app/git/changes/page.js +1 -1
- package/.next/server/app/git/changes/page.js.nft.json +1 -1
- package/.next/server/app/git/changes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/changes.html +2 -2
- package/.next/server/app/git/changes.rsc +2 -2
- package/.next/server/app/git/changes.segments/_full.segment.rsc +2 -2
- package/.next/server/app/git/changes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git/changes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git/changes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git/changes.segments/git/changes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/git/changes.segments/git/changes.segment.rsc +1 -1
- package/.next/server/app/git/changes.segments/git.segment.rsc +1 -1
- package/.next/server/app/git/custom-scripts/page.js +1 -1
- package/.next/server/app/git/custom-scripts/page.js.nft.json +1 -1
- package/.next/server/app/git/custom-scripts/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/custom-scripts.html +2 -2
- package/.next/server/app/git/custom-scripts.rsc +2 -2
- package/.next/server/app/git/custom-scripts.segments/_full.segment.rsc +2 -2
- package/.next/server/app/git/custom-scripts.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git/custom-scripts.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git/custom-scripts.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git/custom-scripts.segments/git/custom-scripts/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/git/custom-scripts.segments/git/custom-scripts.segment.rsc +1 -1
- package/.next/server/app/git/custom-scripts.segments/git.segment.rsc +1 -1
- package/.next/server/app/git/history/page/server-reference-manifest.json +17 -1
- package/.next/server/app/git/history/page.js +3 -2
- package/.next/server/app/git/history/page.js.nft.json +1 -1
- package/.next/server/app/git/history/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/history.html +2 -2
- package/.next/server/app/git/history.rsc +4 -4
- package/.next/server/app/git/history.segments/_full.segment.rsc +4 -4
- package/.next/server/app/git/history.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git/history.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git/history.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git/history.segments/git/history/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/git/history.segments/git/history.segment.rsc +1 -1
- package/.next/server/app/git/history.segments/git.segment.rsc +1 -1
- package/.next/server/app/git/page/server-reference-manifest.json +17 -1
- package/.next/server/app/git/page.js +3 -2
- package/.next/server/app/git/page.js.nft.json +1 -1
- package/.next/server/app/git/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/stashes/page.js +1 -1
- package/.next/server/app/git/stashes/page.js.nft.json +1 -1
- package/.next/server/app/git/stashes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/stashes.html +2 -2
- package/.next/server/app/git/stashes.rsc +2 -2
- package/.next/server/app/git/stashes.segments/_full.segment.rsc +2 -2
- package/.next/server/app/git/stashes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git/stashes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git/stashes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git/stashes.segments/git/stashes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/git/stashes.segments/git/stashes.segment.rsc +1 -1
- package/.next/server/app/git/stashes.segments/git.segment.rsc +1 -1
- package/.next/server/app/git.html +2 -2
- package/.next/server/app/git.rsc +4 -4
- package/.next/server/app/git.segments/_full.segment.rsc +4 -4
- package/.next/server/app/git.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/git.segments/git.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/new/page/server-reference-manifest.json +29 -29
- package/.next/server/app/new/page.js +3 -3
- package/.next/server/app/new/page.js.nft.json +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page/server-reference-manifest.json +29 -29
- package/.next/server/app/page.js +3 -3
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +34 -19
- package/.next/server/app/session/[sessionId]/page.js +2 -2
- package/.next/server/app/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/server/app/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/[externals]__4610b07e._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__51f9ab28._.js → [root-of-the-server]__093d29e3._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__f52f1c06._.js → [root-of-the-server]__2bdd2171._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__ceda8fbc._.js → [root-of-the-server]__34da758c._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__9af2c9bf._.js → [root-of-the-server]__5ebd9b2a._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__3ffc9919._.js → [root-of-the-server]__6a2576a8._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__5b08b37e._.js → [root-of-the-server]__7147e7f8._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1bf60374._.js → [root-of-the-server]__93d494cc._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__8b29248a._.js → [root-of-the-server]__952874bc._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__05e6fb4c._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__2f5cb477._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0ed2deb1._.js.map → [root-of-the-server]__2f5cb477._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__32cb19cb._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__a65a3900._.js.map → [root-of-the-server]__32cb19cb._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__5be652da._.js → [root-of-the-server]__35dc6469._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__46af1502._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__46af1502._.js.map +1 -1
- package/.next/server/chunks/ssr/{_476e86d1._.js → [root-of-the-server]__4928d640._.js} +3 -3
- package/.next/server/chunks/ssr/{_476e86d1._.js.map → [root-of-the-server]__4928d640._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__6e6c1134._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6e6c1134._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__e86a1b81._.js → [root-of-the-server]__79ab29ee._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__8d19726f._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__8d19726f._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__96a8b4aa._.js → [root-of-the-server]__905c5090._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__1ed5a76d._.js → [root-of-the-server]__afccdb61._.js} +3 -3
- package/.next/server/chunks/ssr/{[root-of-the-server]__1ed5a76d._.js.map → [root-of-the-server]__afccdb61._.js.map} +1 -1
- package/.next/server/chunks/ssr/_1232faca._.js +3 -0
- package/.next/server/chunks/ssr/_1232faca._.js.map +1 -0
- package/.next/server/chunks/ssr/_21376a5e._.js +3 -0
- package/.next/server/chunks/ssr/_21376a5e._.js.map +1 -0
- package/.next/server/chunks/ssr/_25f614f9._.js +3 -0
- package/.next/server/chunks/ssr/_25f614f9._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_next_dist_0ff44e32._.js → _4e480580._.js} +2 -2
- package/.next/server/chunks/ssr/_4e480580._.js.map +1 -0
- package/.next/server/chunks/ssr/_707e5fab._.js +1 -1
- package/.next/server/chunks/ssr/_707e5fab._.js.map +1 -1
- package/.next/server/chunks/ssr/_7e1d1983._.js +3 -0
- package/.next/server/chunks/ssr/_7e1d1983._.js.map +1 -0
- package/.next/server/chunks/ssr/_9493de08._.js +1 -1
- package/.next/server/chunks/ssr/_9493de08._.js.map +1 -1
- package/.next/server/chunks/ssr/{_ebf4c61c._.js → _979edf0c._.js} +2 -2
- package/.next/server/chunks/ssr/_979edf0c._.js.map +1 -0
- package/.next/server/chunks/ssr/_9db6d532._.js +3 -0
- package/.next/server/chunks/ssr/_9db6d532._.js.map +1 -0
- package/.next/server/chunks/ssr/{_a07f93fb._.js → _a30f8faf._.js} +2 -2
- package/.next/server/chunks/ssr/_a30f8faf._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_bf7b09f8._.js → node_modules_3aaf320c._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_3aaf320c._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_8e38eac2._.js → node_modules_f0d9388d._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_f0d9388d._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_3e692bb2._.js → node_modules_fae6b458._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_fae6b458._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_35575f97._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_35575f97._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_b34e0340._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_b34e0340._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_credentials_page_tsx_63d8d34a._.js +1 -1
- package/.next/server/chunks/ssr/src_app_credentials_page_tsx_63d8d34a._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js +3 -3
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_git_history-view_tsx_fd62126a._.js +6 -6
- package/.next/server/chunks/ssr/src_components_git_history-view_tsx_fd62126a._.js.map +1 -1
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +77 -48
- package/.next/static/chunks/15bbad1a4cefc870.js +3 -0
- package/.next/static/chunks/{db4cb4eb290e3be9.js → 2ca45fcc772c4ea0.js} +2 -2
- package/.next/static/chunks/3df671a7fdd91e3e.js +1 -0
- package/.next/static/chunks/53f66f12a3d0dc7f.js +3 -0
- package/.next/static/chunks/6242d36c3f387ddb.js +1 -0
- package/.next/static/chunks/697655e0e9336655.js +1 -0
- package/.next/static/chunks/c08840e14b1e627c.css +1 -0
- package/.next/static/chunks/d6c7a0b35251160d.js +8 -0
- package/.next/static/chunks/dcba19c95b8bc155.js +1 -0
- package/.next/static/chunks/e45cecb04475a86a.js +9 -0
- package/.next/static/chunks/f31a3f4a435e3f86.js +3 -0
- package/README.md +2 -1
- package/bin/viba.mjs +9 -5
- package/package.json +1 -1
- package/.next/server/chunks/[externals]__7ece43c5._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ed2deb1._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__a65a3900._.js +0 -3
- package/.next/server/chunks/ssr/_2eaa7035._.js +0 -3
- package/.next/server/chunks/ssr/_2eaa7035._.js.map +0 -1
- package/.next/server/chunks/ssr/_4343fa01._.js +0 -3
- package/.next/server/chunks/ssr/_4343fa01._.js.map +0 -1
- package/.next/server/chunks/ssr/_a07f93fb._.js.map +0 -1
- package/.next/server/chunks/ssr/_ebf4c61c._.js.map +0 -1
- package/.next/server/chunks/ssr/_ff20dbae._.js +0 -3
- package/.next/server/chunks/ssr/_ff20dbae._.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_git_history_page_actions_9e9b26bc.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_git_history_page_actions_9e9b26bc.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_git_page_actions_511f286b.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_git_page_actions_511f286b.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_3e692bb2._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_50fa454f._.js +0 -5
- package/.next/server/chunks/ssr/node_modules_50fa454f._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_8e38eac2._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_bf7b09f8._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_0ff44e32._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_f6fd30d1._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_f6fd30d1._.js.map +0 -1
- package/.next/server/chunks/ssr/src_408d74ba._.js +0 -3
- package/.next/server/chunks/ssr/src_408d74ba._.js.map +0 -1
- package/.next/server/chunks/ssr/src_49325427._.js +0 -3
- package/.next/server/chunks/ssr/src_49325427._.js.map +0 -1
- package/.next/static/chunks/1ca050861ead915f.js +0 -3
- package/.next/static/chunks/4aab1f3ea2ed1aef.js +0 -1
- package/.next/static/chunks/4de7bc5a00a1aed9.js +0 -3
- package/.next/static/chunks/5e0dada5236f9065.js +0 -8
- package/.next/static/chunks/73f859ef915277c7.js +0 -3
- package/.next/static/chunks/74f887e69c1fcefa.js +0 -9
- package/.next/static/chunks/977137e155012c13.js +0 -1
- package/.next/static/chunks/b18cc1247b979318.js +0 -1
- package/.next/static/chunks/e5bcfa7f94c34b77.js +0 -1
- package/.next/static/chunks/eec24a7b35c2d7bd.css +0 -1
- /package/.next/server/chunks/{[externals]__7ece43c5._.js.map → [externals]__4610b07e._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__51f9ab28._.js.map → [root-of-the-server]__093d29e3._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__f52f1c06._.js.map → [root-of-the-server]__2bdd2171._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__ceda8fbc._.js.map → [root-of-the-server]__34da758c._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__9af2c9bf._.js.map → [root-of-the-server]__5ebd9b2a._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__3ffc9919._.js.map → [root-of-the-server]__6a2576a8._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__5b08b37e._.js.map → [root-of-the-server]__7147e7f8._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1bf60374._.js.map → [root-of-the-server]__93d494cc._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__8b29248a._.js.map → [root-of-the-server]__952874bc._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__5be652da._.js.map → [root-of-the-server]__35dc6469._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__e86a1b81._.js.map → [root-of-the-server]__79ab29ee._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__96a8b4aa._.js.map → [root-of-the-server]__905c5090._.js.map} +0 -0
- /package/.next/static/{SPowgKQ4GVFmr1hEouu16 → f6hBCO8U8SWC5F77QTqGY}/_buildManifest.js +0 -0
- /package/.next/static/{SPowgKQ4GVFmr1hEouu16 → f6hBCO8U8SWC5F77QTqGY}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{SPowgKQ4GVFmr1hEouu16 → f6hBCO8U8SWC5F77QTqGY}/_ssgManifest.js +0 -0
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5951,e=>{"use strict";var t=e.i(43476),a=e.i(71645),r=e.i(75254);let s=(0,r.default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);var l=e.i(7233),i=e.i(37727),n=e.i(63059),o=e.i(64659);let d=(0,r.default)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),c=(0,r.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var x=e.i(27612),m=e.i(65261);let h=(0,r.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var u=e.i(78917);let p=(0,r.default)("cloud-download",[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]]),b=(0,r.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),f=(0,r.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),g=(0,r.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),v=(0,r.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);var y=e.i(55716),k=e.i(95187);let w=(0,k.createServerReference)("4000b972582455e64c1ab00abe5f79db0789385cae",k.callServer,void 0,k.findSourceMapURL,"checkDirectoryAccessible"),j=(0,k.createServerReference)("40bcb98d167ff02ebab0a4e5bd4ddf2ecdf1f61b80",k.callServer,void 0,k.findSourceMapURL,"listDirectories");var N=e.i(84363),S=e.i(27025),C=e.i(71689);let R=(0,r.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);var P=e.i(81016),D=e.i(43733);function L({title:e,initialPath:r,onSelect:s,onCancel:l,checkRepo:i}){let[n,o]=(0,a.useState)(""),[d,c]=(0,a.useState)(""),[x,m]=(0,a.useState)([]),[h,u]=(0,a.useState)(!1),[p,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await (0,N.getHomeDirectory)();if(!e)return;c(t),o(r||t)}catch(t){if(console.error("Failed to resolve home directory:",t),!e)return;b("Failed to access your home directory."),o(r||"/")}})(),()=>{e=!1}},[r]),(0,a.useEffect)(()=>{if(!n)return;let e=!0;return(async()=>{u(!0),b(null);try{let t=await j(n);if(!e)return;if(0===t.length&&d&&n!==d){let t=await w(n);if(!e)return;if(!t){b(`Could not access "${n}". Showing home directory.`),o(d);return}}let a=t.map(e=>({name:e.name,path:e.path,isDirectory:e.isDirectory,isGitRepo:e.isGitRepo}));m(a)}catch(t){if(console.error(t),!e)return;if(d&&n!==d){b(`Could not access "${n}". Showing home directory.`),o(d);return}m([]),b("Failed to load directory contents")}finally{e&&u(!1)}})(),()=>{e=!1}},[n,d]);let f=(0,a.useCallback)(async e=>{if(i&&!await i(e)){b("Selected directory is not a valid git repository."),setTimeout(()=>b(null),3e3);return}await s(e)},[i,s]),g=(0,a.useCallback)(async()=>{await f(n)},[n,f]);return(0,D.useDialogKeyboardShortcuts)({onConfirm:g,onDismiss:l,canConfirm:!!n}),(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,t.jsxs)("div",{className:"bg-base-200 rounded-lg shadow-xl w-full max-w-3xl h-[80vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[(0,t.jsxs)("h2",{className:"text-xl font-bold flex items-center gap-2",children:[(0,t.jsx)(S.Folder,{className:"w-5 h-5"}),e||"Browse Local Repository"]}),(0,t.jsx)("button",{onClick:l,className:"btn btn-sm btn-ghost btn-circle",children:"✕"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-base-300",children:[(0,t.jsx)("button",{onClick:()=>{let e=(0,P.getDirName)(n);e&&e!==n&&o(e)},className:"btn btn-sm btn-square btn-ghost",title:"Go Up",disabled:"/"===n||!n,children:(0,t.jsx)(C.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsx)("div",{className:"flex-1 overflow-x-auto whitespace-nowrap px-2 font-mono text-sm",children:n}),(0,t.jsx)("button",{onClick:g,className:"btn btn-sm btn-primary",children:"Select Current Folder"})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:h?(0,t.jsx)("div",{className:"flex justify-center items-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg"})}):p?(0,t.jsx)("div",{className:"alert alert-error",children:p}):0===x.length?(0,t.jsx)("div",{className:"text-center text-base-content/50 mt-10",children:"Empty directory"}):(0,t.jsx)("div",{className:"grid grid-cols-1 gap-1",children:x.map(e=>(0,t.jsxs)("div",{className:"group flex items-center justify-between p-2 hover:bg-base-100 rounded-md cursor-pointer transition-colors",onClick:()=>{o(e.path)},children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[(0,t.jsx)(S.Folder,{className:`w-5 h-5 ${e.isGitRepo?"text-primary":"text-base-content/70"}`}),(0,t.jsx)("span",{className:"truncate",children:e.name}),e.isGitRepo&&(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px] font-bold bg-slate-200 text-slate-600 border border-slate-300 uppercase tracking-wide",children:"GIT"})]}),e.isGitRepo&&(0,t.jsxs)("button",{className:"flex items-center justify-center p-1.5 rounded-md bg-primary/10 text-primary hover:bg-primary hover:text-white transition-colors",onClick:t=>{t.stopPropagation(),f(e.path)},title:`Select ${e.name}`,children:[(0,t.jsx)(R,{className:"h-[18px] w-[18px]"}),(0,t.jsx)("span",{className:"sr-only",children:"Select"})]})]},e.path))})}),(0,t.jsx)("div",{className:"p-3 border-t border-base-300 text-xs text-base-content/50 text-center",children:'Navigate to a folder and click "Select Current Folder" to choose it.'})]})})}let M=(0,k.createServerReference)("407ceb272444008516d5f4d59070827b023d1bfccb",k.callServer,void 0,k.findSourceMapURL,"checkIsGitRepo"),$=(0,k.createServerReference)("40840d7347bea9b4c4ee1b05b18ef8bb70a8d61c94",k.callServer,void 0,k.findSourceMapURL,"getBranches"),E=(0,k.createServerReference)("60014bab1edd0396e44ce41ee05410733e78a9e289",k.callServer,void 0,k.findSourceMapURL,"checkoutBranch");var A=e.i(36263);let U=(0,k.createServerReference)("7f297b257751e7e19f85ea91b0cef70d46d19533d5",k.callServer,void 0,k.findSourceMapURL,"getStartupScript"),F=(0,k.createServerReference)("7f1b374fdd8af2a813d5c697cc2795318c69ef2f21",k.callServer,void 0,k.findSourceMapURL,"getDefaultDevServerScript"),B=(0,k.createServerReference)("7f4d4efe031b5e6237c2104da524b911956ea41afe",k.callServer,void 0,k.findSourceMapURL,"listRepoFiles"),_=(0,k.createServerReference)("40759173325b9646ec5624f13388be061ee645114b",k.callServer,void 0,k.findSourceMapURL,"checkAgentCliInstalled"),T=(0,k.createServerReference)("402cc9f24e2f01d3cf38b84bce06380a2c8324bf72",k.callServer,void 0,k.findSourceMapURL,"installAgentCli"),I=(0,k.createServerReference)("60370cbf08c36feb62e821a4399d1a0c168e16068f",k.callServer,void 0,k.findSourceMapURL,"cloneRemoteRepository"),G=(0,k.createServerReference)("4056c2d421a6496afc541c171fc8c5f07896f63d9d",k.callServer,void 0,k.findSourceMapURL,"resolveRepositoryByName"),K=(0,k.createServerReference)("70b02a987fc1397aca7320ded1dcc15e452f2897ea",k.callServer,void 0,k.findSourceMapURL,"createSession"),z=(0,k.createServerReference)("40359a46ff3adb05f98426e1a48aedde438fecf99b",k.callServer,void 0,k.findSourceMapURL,"deleteSession"),O=(0,k.createServerReference)("40da6c6fcb5ba59241703ecbdccba707c6ed39c527",k.callServer,void 0,k.findSourceMapURL,"getSessionPrefillContext"),q=(0,k.createServerReference)("40634628ed9cb943f76f6b561a346b4ae6ba9335e3",k.callServer,void 0,k.findSourceMapURL,"listSessions"),H=(0,k.createServerReference)("6039f2db2aff8d97e5fdf12e537278157cb2e4abf9",k.callServer,void 0,k.findSourceMapURL,"saveSessionLaunchContext"),V=(0,k.createServerReference)("40becbae10bf62199024bd208e66b7a8154f9348d8",k.callServer,void 0,k.findSourceMapURL,"deleteDraft"),X=(0,k.createServerReference)("405d04a3fc97df7ce43071e3a04c76b03549d8239d",k.callServer,void 0,k.findSourceMapURL,"listDrafts"),W=(0,k.createServerReference)("40679547d387756c417d2d2f35102b698e0a67d687",k.callServer,void 0,k.findSourceMapURL,"saveDraft");var Y=e.i(64090),J=e.i(31404);let Q=(0,k.createServerReference)("60e267f5fdf59cea403233b78e9c9539fb282154c6",k.callServer,void 0,k.findSourceMapURL,"updateRepoSettings");var Z=e.i(98886),ee=e.i(88585),et=e.i(18566);let ea=[{highlight:"#dce4ff",secondary:"#c7d2fe",baseStart:"#f8fafc",baseEnd:"#f3f6ff",anchorA:[12,10],anchorB:[86,84]},{highlight:"#dcfce7",secondary:"#bbf7d0",baseStart:"#f8fafc",baseEnd:"#effcf4",anchorA:[86,14],anchorB:[14,84]},{highlight:"#fae8ff",secondary:"#f5d0fe",baseStart:"#f8fafc",baseEnd:"#fbf2ff",anchorA:[50,8],anchorB:[50,90]},{highlight:"#ffedd5",secondary:"#fed7aa",baseStart:"#f8fafc",baseEnd:"#fff7ed",anchorA:[35,35],anchorB:[84,86]}];function er(e,t,a){return Math.max(t,Math.min(a,e))}function es(e,t){let a=e.replace("#",""),r=Number.parseInt(3===a.length?a.split("").map(e=>`${e}${e}`).join(""):a,16);return`rgba(${r>>16&255}, ${r>>8&255}, ${255&r}, ${er(t,0,1)})`}function el(e){return[er(e[0],0,100),er(e[1],0,100)]}var ei=e.i(63671),en=e.i(57688),eo=e.i(74216);let ed="npm install",ec="npm run dev",ex="viba:theme-mode",em=["auto","light","dark"];function eh(e){if("github"===e.type)return`GitHub - ${e.username}`;let t=e.serverUrl;try{t=new URL(e.serverUrl).host}catch{}return`GitLab - ${e.username} @ ${t}`}let eu="viba:new-session-mode",ep={codex:"codex"},eb={codex:"Codex CLI"};function ef({mode:e="home",repoPath:r=null,fromRepoName:k=null,prefillFromSession:w=null,predefinedPrompts:j=[]}){let[N,S]=(0,a.useState)(!1),[C,R]=(0,a.useState)(!1),[er,ef]=(0,a.useState)(!1),[eg,ev]=(0,a.useState)(!1),[ey,ek]=(0,a.useState)(""),[ew,ej]=(0,a.useState)("auto"),[eN,eS]=(0,a.useState)(null),[eC,eR]=(0,a.useState)(!1),[eP,eD]=(0,a.useState)(!1),[eL,eM]=(0,a.useState)("auto"),[e$,eE]=(0,a.useState)(!1),[eA,eU]=(0,a.useState)(null),[eF,eB]=(0,a.useState)(null),[e_,eT]=(0,a.useState)(null),[eI,eG]=(0,a.useState)("auto"),[eK,ez]=(0,a.useState)(ed),[eO,eq]=(0,a.useState)(ec),[eH,eV]=(0,a.useState)([]),eX=(0,et.useRouter)(),[eW,eY]=(0,a.useState)([]),[eJ,eQ]=(0,a.useState)(""),[eZ,e0]=(0,a.useState)([]),[e1,e2]=(0,a.useState)([]),[e3,e4]=(0,a.useState)([]),[e5,e6]=(0,a.useState)([]),[e7,e8]=(0,a.useState)(""),[e9,te]=(0,a.useState)(""),[tt,ta]=(0,a.useState)(!1),[tr,ts]=(0,a.useState)(""),[tl,ti]=(0,a.useState)("fast"),[tn,to]=(0,a.useState)([]),[td,tc]=(0,a.useState)(!1),[tx,tm]=(0,a.useState)(""),[th,tu]=(0,a.useState)([]),[tp,tb]=(0,a.useState)(!1),[tf,tg]=(0,a.useState)(!1),[tv,ty]=(0,a.useState)(null),[tk,tw]=(0,a.useState)(null),[tj,tN]=(0,a.useState)(!1),[tS,tC]=(0,a.useState)(!1),[tR,tP]=(0,a.useState)(!1),[tD,tL]=(0,a.useState)(null),[tM,t$]=(0,a.useState)(!1),[tE,tA]=(0,a.useState)(null),[tU,tF]=(0,a.useState)(""),[tB,t_]=(0,a.useState)(""),[tT,tI]=(0,a.useState)(!1),[tG,tK]=(0,a.useState)(null),[tz,tO]=(0,a.useState)(null),[tq,tH]=(0,a.useState)(!1),[tV,tX]=(0,a.useState)(!1),tW=(0,a.useRef)(null),[tY,tJ]=(0,a.useState)(!1),tQ=(0,a.useRef)(!1),tZ=(0,a.useCallback)(()=>{(0,ei.notifySessionsUpdated)()},[]),t0=(0,a.useCallback)(e=>{tQ.current=!0,window.location.assign(`/session/${e}`)},[]),t1=(0,a.useCallback)(async(e=eF)=>{try{let[t,a,r,s]=await Promise.all([q(),e?q(e):Promise.resolve([]),X(),e?X(e):Promise.resolve([])]);e2(t),e6(r),e&&(e0(a),e4(s))}catch(e){console.error("Failed to refresh sessions and drafts",e)}},[eF]),t2=(0,a.useCallback)((e,t=eH)=>{let a=eA?.repoSettings?.[e];if(!a)return"auto";if(a.credentialId)return a.credentialId;let r=a.credentialPreference;if("github"===r||"gitlab"===r){let e=t.find(e=>e.type===r);if(e)return e.id}return"auto"},[eA,eH]),t3=(0,a.useCallback)(e=>{let t=eA?.repoSettings?.[e];if(!t)return"Auto";if(t.credentialId){let e=eH.find(e=>e.id===t.credentialId);return e?eh(e):"Selected credential"}return"github"===t.credentialPreference?"GitHub (legacy)":"gitlab"===t.credentialPreference?"GitLab (legacy)":"Auto"},[eA,eH]),t4=(0,a.useCallback)(()=>{tV||(ef(!1),eT(null),eG("auto"),ez(ed),eq(ec),tO(null),tH(!1))},[tV]),t5=(0,a.useCallback)(()=>{ev(!0),ek(""),ej("auto"),eS(null),eD(!0),(async()=>{try{let e=await (0,ee.listCredentials)();if(!e.success)return void eS(e.error);eV(e.credentials)}catch(e){console.error(e),eS("Failed to load credentials.")}finally{eD(!1)}})()},[]),t6=(0,a.useCallback)(()=>{eC||(ev(!1),ek(""),ej("auto"),eS(null),eD(!1))},[eC]);(0,a.useEffect)(()=>{(async()=>{try{let[e,t,a,r]=await Promise.all([(0,Y.getConfig)(),q(),X(),(0,ee.listCredentials)()]);eU(e),e2(t),e6(a),r.success&&eV(r.credentials)}catch(e){console.error("Failed to load data",e)}finally{tC(!0)}})()},[]),(0,a.useEffect)(()=>{try{let e=window.localStorage.getItem(ex);if("light"===e||"dark"===e||"auto"===e)return void eM(e)}catch{}eM("auto")},[]),(0,a.useEffect)(()=>{let e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>{let t="dark"===eL||"auto"===eL&&e.matches;document.documentElement.classList.toggle("dark",t),document.documentElement.dataset.themeMode=eL,eE(t)};t();try{window.localStorage.setItem(ex,eL)}catch{}if("auto"!==eL)return;let a=()=>{t()};return"function"==typeof e.addEventListener?(e.addEventListener("change",a),()=>{e.removeEventListener("change",a)}):(e.addListener(a),()=>{e.removeListener(a)})},[eL]),(0,a.useEffect)(()=>{if("new"===e)try{let e=window.localStorage.getItem(eu);("fast"===e||"plan"===e)&&ti(e)}catch{}},[e]),(0,a.useEffect)(()=>{let t=()=>{t1("new"===e?eF:null)},a=e=>{e.key===ei.SESSIONS_UPDATED_STORAGE_KEY&&t()},r=()=>{t()},s=()=>{t()};return window.addEventListener("storage",a),window.addEventListener("focus",r),window.addEventListener(ei.SESSIONS_UPDATED_EVENT,s),()=>{window.removeEventListener("storage",a),window.removeEventListener("focus",r),window.removeEventListener(ei.SESSIONS_UPDATED_EVENT,s)}},[e,t1,eF]);let t7=async e=>{eB(e),ay([]),await at(e),await ar(e),await t1(e)},t8=async t=>{tg(!0),tw(null);try{if(!await M(t))return tw("Selected directory is not a valid git repository."),!1;let a=[...(eA||await (0,Y.getConfig)()).recentRepos];a.includes(t)?a=[t,...a.filter(e=>e!==t)]:a.unshift(t);let r=await (0,J.updateConfig)({recentRepos:a});if(eU(r),S(!1),"home"===e)return eX.push(`/new?repo=${encodeURIComponent(t)}`),!0;return await t7(t),!0}catch(e){return console.error(e),tw("Failed to open repository."),!1}finally{tg(!1)}},t9=async()=>{if(eC)return;let e=ey.trim();if(!e)return void eS("Please enter a remote repository URL.");eR(!0),eS(null),tw(null);try{let t=await I(e,"auto"===ew?null:ew);if(!t.success||!t.repoPath)return void eS(t.error||"Failed to clone repository.");if(!await t8(t.repoPath))return void eS("Repository was cloned, but failed to open it.");ev(!1),ek(""),ej("auto"),eS(null)}catch(e){console.error(e),eS("Failed to clone repository.")}finally{eR(!1)}},ae=async t=>{if("new"!==e)return;let a=t.target.value;if(!a||a===eF||!await t8(a)||tQ.current)return;let r=new URLSearchParams;r.set("repo",a),w&&r.set("prefillFromSession",w),eX.replace(`/new?${r.toString()}`)};(0,a.useEffect)(()=>{if("new"===e){if(!r){eB(null),e0([]),eY([]),eQ("");return}r!==eF&&t8(r)}},[e,r,eF]),(0,a.useEffect)(()=>{"new"===e&&eF&&tm(e=>e||eF)},[e,eF]),(0,a.useEffect)(()=>{if("new"!==e)return;if(r)return void tN(!1);let t=k?.trim()??"";if(!t)return void tN(!1);let a=!1;return(async()=>{tw(null),tN(!0);let e=await G(t);if(a)return;if(!e.success){tw(e.error||"Failed to search repositories."),tN(!1);return}if(!e.repoPath){tw(`Could not find a matching repository for "${t}".`),tN(!1);return}let r=new URLSearchParams;r.set("repo",e.repoPath),w&&r.set("prefillFromSession",w),tQ.current||eX.replace(`/new?${r.toString()}`)})(),()=>{a=!0}},[k,e,w,r,eX]),(0,a.useEffect)(()=>{tb(!1),tu([])},[w]),(0,a.useEffect)(()=>{if("new"!==e||!eF||!w||tp)return;let t=!1;return(async()=>{let e=await O(w);if(t)return;if(!e.success||!e.context){e.error&&tw(e.error),tb(!0);return}let a=e.context;a.repoPath!==eF||(ts(a.initialMessage||""),tu(a.attachmentPaths||[]),ta(!0)),tb(!0)})(),()=>{t=!0}},[tp,e,w,eF]);let at=async e=>{let t=eA||await (0,Y.getConfig)();eA||eU(t);let a=t.repoSettings[e]||{},r=a.startupScript,s=a.devServerScript;null!=r?e8(r):e8(await U(e)),null!=s?te(s):te(await F(e))},aa=async e=>{eU(await (0,J.updateConfig)({defaultRoot:e})),R(!1)},ar=async e=>{try{let t=await $(e);eY(t);let a=((eA||await (0,Y.getConfig)()).repoSettings[e]||{}).lastBranch,r=t.find(e=>e.current)?.name;if(a&&t.some(e=>e.name===a)){if(eQ(a),a!==r)try{await E(e,a);let t=await $(e);eY(t)}catch(e){console.warn("Could not auto-checkout to remembered branch",e),r&&eQ(r)}}else r&&eQ(r)}catch(e){console.error("Failed to load branches",e),tw("Failed to load branches.")}},as=async e=>{let t=e.target.value;if(eF){tg(!0);try{await E(eF,t),eQ(t);let e=await Q(eF,{lastBranch:t});eU(e);let a=await $(eF);eY(a)}catch{tw(`Failed to checkout branch ${t}`)}finally{tg(!1)}}},al=async e=>{e8(e.target.value)},ai=async()=>{eF&&eU(await Q(eF,{startupScript:e7}))},an=async e=>{eF&&eU(await Q(eF,{devServerScript:e}))},ao=async()=>{await an(e9)},ad=(0,a.useCallback)(e=>{0!==e.length&&to(t=>Array.from(new Set([...t,...e.map(e=>e.trim()).filter(Boolean)])))},[]),[ac,ax]=(0,a.useState)(!1),[am,ah]=(0,a.useState)([]),[,au]=(0,a.useState)(""),[ap,ab]=(0,a.useState)(0),[af,ag]=(0,a.useState)(0),[av,ay]=(0,a.useState)([]),ak=(0,a.useMemo)(()=>tn.map(e=>(0,P.getBaseName)(e)),[tn]),aw=(0,a.useMemo)(()=>th.map(e=>(0,P.getBaseName)(e)),[th]),aj="new"===e&&j.length>0,aN=(0,a.useCallback)(e=>{ts(e),ab(e.length),ax(!1)},[]),aS=async e=>{let t=e.target.value,a=e.target.selectionStart;ts(t),ab(a);let r=t.substring(0,a),s=r.lastIndexOf("@");if(-1!==s){let e=r.substring(s+1);if(!/\s/.test(e)){if(au(e),ax(!0),eF){var l;let t,a=av;0===av.length&&ay(a=await B(eF)),l=a,t=e.toLowerCase(),ah([...[...ak,...aw].filter(e=>e.toLowerCase().includes(t)),...l.filter(e=>e.toLowerCase().includes(t)).slice(0,20)]),ag(0)}return}}ax(!1)},aC=e=>{let t=tr.substring(0,ap).lastIndexOf("@");if(-1!==t){let a=tr.substring(0,t),r=tr.substring(ap);ts(`${a}@${e} ${r}`),ax(!1)}},aR=async(e,t)=>{if(e.stopPropagation(),eA){let e=eA.recentRepos.filter(e=>e!==t);eU(await (0,J.updateConfig)({recentRepos:e}))}},aP=async(e,t)=>{e.stopPropagation();let a=eA?.repoSettings?.[t];eT(t),eG(t2(t)),ez(a?.startupScript?.trim()?a.startupScript:ed),eq(a?.devServerScript?.trim()?a.devServerScript:ec),tO(null),ef(!0),tH(!0);try{let e=await (0,ee.listCredentials)();e.success?(eV(e.credentials),eG(t2(t,e.credentials))):(tO(e.error),eV([]))}catch(e){console.error(e),tO("Failed to load credentials."),eV([])}finally{tH(!1)}},aD=async()=>{if(!e_)return;let e="auto"===eI?null:eI,t=eK.trim()||ed,a=eO.trim()||ec;if(e&&!eH.some(t=>t.id===e))return void tO("Selected credential no longer exists. Please choose another credential.");tX(!0),tO(null);try{let r=await Q(e_,{credentialId:e,startupScript:t,devServerScript:a,credentialPreference:void 0});eU(r),t4()}catch(e){console.error(e),tO("Failed to save repository settings.")}finally{tX(!1)}},aL=(0,a.useCallback)(()=>{if(!tM||!tU||!tW.current)return;let e=tW.current,t=(a=0)=>{if(a>40)return void tK("Timed out while waiting for terminal to initialize.");try{let r=e.contentWindow;if(r?.term){r.term.paste(`${tU}\r`),tI(!0),tK(null),r.focus();return}setTimeout(()=>t(a+1),300)}catch(e){console.error("Failed to inject login command into terminal iframe:",e),tK("Could not access ttyd terminal. Ensure ttyd is running and try again.")}};setTimeout(()=>t(),500)},[tM,tU]),aM=(0,a.useCallback)(async e=>{try{let t=await (0,Z.listAgentApiCredentials)();if(!t.success)return!1;return t.credentials.some(t=>t.agent===e)}catch{return!1}},[]),a$=(0,a.useCallback)(async()=>{let e="codex",t=await _(e);if(!t.success)return tw(t.error||`Failed to verify ${eb[e]} installation status.`),!1;if(t.installed)return!0;tP(!0),tL(e),tw(null);let a=await T(e);if(tP(!1),tL(null),!a.success)return tw(a.error||`Failed to install ${eb[e]}.`),!1;let r=await (0,A.startTtydProcess)();return r.success?!!await aM(e)||(tA(e),tF(ep[e]),tI(!1),tK(null),t$(!0),!1):(tw(r.error||"Failed to start ttyd"),!1)},[aM]),aE=async(e={})=>{if(eF){tg(!0),tw(null);try{if(!e.skipAgentSetup&&!await a$())return void tg(!1);let t=e9.trim();!t&&(t=await F(eF))&&te(t),await ai(),await an(t);let a=await (0,A.startTtydProcess)();if(!a.success){tw(a.error||"Failed to start ttyd"),tg(!1);return}let r=function(e){let t=e.split(/\r?\n/).map(e=>e.trim()).find(e=>e.length>0);if(t)return t.slice(0,120)}(tr),s=await K(eF,eJ||"main",{agent:"codex",model:"",title:r,devServerScript:t||void 0});if(s.success&&s.sessionName&&s.worktreePath&&s.branchName){let e=Array.from(new Set([...tn,...th].map(e=>e.trim()).filter(Boolean))),t=new Map;for(let a of e){let e=(0,P.getBaseName)(a).trim();e&&(t.has(e)||t.set(e,a))}let a=Array.from(t.keys()),l=tr.trim(),i=l;i=i.replace(/@(\S+)/g,(e,a)=>{let r=t.get(a);return r||a});let n=await H(s.sessionName,{title:r,initialMessage:i||void 0,rawInitialMessage:l||void 0,startupScript:e7||void 0,attachmentPaths:e,attachmentNames:a,agentProvider:"codex",model:"",sessionMode:tl});if(!n.success){tw(n.error||"Failed to save session context"),tg(!1);return}tZ(),t0(s.sessionName);return}tw(s.error||"Failed to create session worktree"),tg(!1)}catch(e){console.error(e),tw("Failed to start session"),tg(!1)}}},aA=()=>{aE()},aU=async()=>{if(eF){tJ(!0),tw(null);try{let e=Date.now().toString(),t=tr.split("\n")[0].trim()||"Untitled Draft",a={id:e,repoPath:eF,branchName:eJ,message:tr,attachmentPaths:[...tn,...th],agentProvider:"codex",model:"",timestamp:new Date().toISOString(),title:t,startupScript:e7,devServerScript:e9,sessionMode:tl},r=await W(a);r.success?await t1(eF):tw(r.error||"Failed to save draft")}catch(e){console.error(e),tw("Failed to save draft")}finally{tJ(!1)}}},aF=async e=>{ts(e.message),to(e.attachmentPaths),tu([]),eQ(e.branchName),e8(e.startupScript||""),te(e.devServerScript||""),ti(e.sessionMode||"fast"),await aB(e.id)},aB=async e=>{try{await V(e),await t1(eF)}catch(e){console.error(e)}},a_=(0,a.useCallback)(()=>{t$(!1),tA(null),tF(""),tI(!1),tK(null)},[]),aT=async()=>{a_(),await aE({skipAgentSetup:!0})};(0,D.useDialogKeyboardShortcuts)({enabled:"new"===e&&tM&&!!tE,onConfirm:aT,onDismiss:a_,canConfirm:!tf}),(0,D.useDialogKeyboardShortcuts)({enabled:"home"===e&&er&&!!e_,onConfirm:aD,onDismiss:t4,canConfirm:!tV}),(0,D.useDialogKeyboardShortcuts)({enabled:"home"===e&&eg,onConfirm:t9,onDismiss:t6,canConfirm:!eC&&ey.trim().length>0&&!eP});let aI=async e=>{if(eF){tg(!0);try{let t=await (0,A.startTtydProcess)();if(!t.success){tw(t.error||"Failed to start ttyd"),tg(!1);return}t0(e.sessionName);return}catch(e){console.error(e),tw("Failed to resume session"),tg(!1)}}},aG=async e=>{if(eF&&confirm(`Delete session "${e.sessionName}"?
|
|
2
|
-
|
|
3
|
-
This will remove the worktree, branch, and session metadata.`)){ty(e.sessionName),tw(null);try{let t=await z(e.sessionName);if(!t.success)return void tw(t.error||"Failed to delete session");let a=await q(eF);e0(a);let r=await q();e2(r),tZ()}catch(e){console.error(e),tw("Failed to delete session")}finally{ty(null)}}},aK=(0,a.useMemo)(()=>{let e=new Map;for(let t of e1)e.set(t.repoPath,(e.get(t.repoPath)??0)+1);return e},[e1]),az=(0,a.useMemo)(()=>{let e=new Map;for(let t of e5)e.set(t.repoPath,(e.get(t.repoPath)??0)+1);return e},[e5]),aO=(0,a.useMemo)(()=>eA?.recentRepos??[],[eA?.recentRepos]),aq=(0,a.useMemo)(()=>{let e=tB.trim().toLowerCase();return e?aO.filter(t=>(0,P.getBaseName)(t).toLowerCase().includes(e)||t.toLowerCase().includes(e)):aO},[tB,aO]),aH=eF?aO.includes(eF)?aO:[eF,...aO]:aO,aV=em.indexOf(eL),aX=em[(aV+1)%em.length],aW="auto"===eL?"Auto":"light"===eL?"Bright":"Dark",aY="auto"===aX?"Auto":"light"===aX?"Bright":"Dark",aJ="auto"===eL?f:"light"===eL?g:v,aQ=(0,a.useCallback)(e=>{let t=e.currentTarget,a=t.querySelector(".repo-card-tilt");if(!a)return;let r=t.getBoundingClientRect(),s=e.clientX-r.left,l=e.clientY-r.top,i=r.width/2,n=r.height/2;i<=0||n<=0||(a.style.setProperty("--tilt-mouse-x",`${s}px`),a.style.setProperty("--tilt-mouse-y",`${l}px`),a.style.setProperty("--tilt-bg-pos-x",`${50+(s-i)/i*40}%`),a.style.setProperty("--tilt-bg-pos-y",`${50+(l-n)/n*40}%`),a.style.setProperty("--tilt-rotate-x",`${(-((l-n)/n*12)).toFixed(2)}deg`),a.style.setProperty("--tilt-rotate-y",`${((s-i)/i*12).toFixed(2)}deg`),a.style.setProperty("--tilt-scale","1.02"))},[]),aZ=(0,a.useCallback)(e=>{let t=e.currentTarget.querySelector(".repo-card-tilt");t&&(t.style.setProperty("--tilt-rotate-x","0deg"),t.style.setProperty("--tilt-rotate-y","0deg"),t.style.setProperty("--tilt-scale","1"),t.style.setProperty("--tilt-bg-pos-x","50%"),t.style.setProperty("--tilt-bg-pos-y","50%"))},[]);return(0,t.jsxs)(t.Fragment,{children:["home"===e&&(0,t.jsxs)("div",{className:"w-full max-w-7xl",children:[(0,t.jsxs)("header",{className:"relative z-10 flex flex-col gap-4 rounded-xl border border-slate-200/80 bg-white/82 px-4 py-4 shadow-[0_14px_36px_-24px_rgba(15,23,42,0.4)] backdrop-blur-md transition-colors md:flex-row md:items-center md:justify-between md:px-7 dark:border-slate-700/75 dark:bg-[#131b2b]/72 dark:shadow-[0_18px_44px_-30px_rgba(0,0,0,0.75)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-slate-100/90 shadow-sm dark:border dark:border-white/5 dark:bg-[#1e2532]",children:(0,t.jsx)(en.default,{src:"/icon.png",alt:"Viba",width:22,height:22,className:"rounded-sm"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold tracking-tight text-slate-900 dark:text-white",children:"Viba"}),(0,t.jsx)("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"AI Coding Agent Dashboard"})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("label",{className:"input input-sm flex h-10 w-full items-center gap-2 border-slate-200 bg-slate-100/90 text-slate-700 shadow-none transition-colors md:w-72 dark:border-slate-700/70 dark:bg-[#1e2532] dark:text-slate-200",children:[(0,t.jsx)(b,{className:"h-4 w-4 text-slate-400 dark:text-slate-500"}),(0,t.jsx)("input",{type:"text",className:"grow text-sm placeholder:text-slate-400 dark:placeholder:text-slate-500",placeholder:"Search repositories...",value:tB,onChange:e=>t_(e.target.value)})]}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2 text-slate-700 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:()=>eX.push("/credentials"),title:"Manage GitHub/GitLab credentials",children:[(0,t.jsx)(m.KeyRound,{className:"h-4 w-4"}),"Credentials"]}),(0,t.jsxs)("button",{className:"btn btn-primary btn-sm gap-2",onClick:t5,children:[(0,t.jsx)(p,{className:"h-4 w-4"}),"New Repository"]}),(0,t.jsx)("button",{className:"btn btn-ghost btn-sm btn-square text-slate-700 dark:border dark:border-slate-700/60 dark:bg-[#1e2532] dark:text-slate-300 dark:hover:bg-[#252d3d] dark:hover:text-white",onClick:()=>{eM(aX)},title:`Theme mode: ${aW}. Click to switch to ${aY}.`,"aria-label":`Theme mode: ${aW}. Click to switch to ${aY}.`,children:(0,t.jsx)(aJ,{className:"h-4 w-4"})})]})]}),(0,t.jsxs)("div",{className:"relative z-10 px-1 py-5 md:py-7",children:[tk&&(0,t.jsx)("div",{className:"mb-4 rounded-xl border border-red-200 bg-red-50 px-4 py-2 text-sm text-red-700 dark:border-red-500/50 dark:bg-red-950/40 dark:text-red-200",children:tk}),tS?0===aq.length?(0,t.jsxs)("div",{className:"flex h-56 flex-col items-center justify-center rounded-2xl border border-slate-200 bg-white/70 text-center dark:border-slate-700/55 dark:bg-[#141d2e]/70",children:[(0,t.jsx)("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:tB.trim()?"No repositories match your search.":"No recent repositories found."}),!tB.trim()&&(0,t.jsxs)("button",{className:"btn btn-primary btn-sm mt-3 gap-2",onClick:t5,children:[(0,t.jsx)(l.Plus,{className:"h-4 w-4"}),"Add your first repository"]})]}):(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-5 md:grid-cols-2 xl:grid-cols-3",children:[aq.map(e=>{let a,r,l,o,d,c,x=t3(e),m=aK.get(e)??0,u=az.get(e)??0,p=(r=ea[(a=function(e){let t=0x811c9dc5;for(let a=0;a<e.length;a+=1)t^=e.charCodeAt(a),t=Math.imul(t,0x1000193);return t>>>0}((0,P.getBaseName)(e).trim().toLowerCase()||"repo"))%ea.length],l=[(a>>>3)%13-6,(a>>>7)%13-6],o=[(a>>>11)%13-6,(a>>>15)%13-6],d=el([r.anchorA[0]+l[0],r.anchorA[1]+l[1]]),c=el([r.anchorB[0]+o[0],r.anchorB[1]+o[1]]),{backgroundImage:`radial-gradient(circle at ${d[0]}% ${d[1]}%, ${es(r.highlight,.82)} 0%, transparent 74%), radial-gradient(circle at ${c[0]}% ${c[1]}%, ${es(r.secondary,.78)} 0%, transparent 74%), radial-gradient(circle at 50% 100%, hsla(${a%360} 82% 86% / ${.16+(a>>>20)%10/100}) 0%, transparent 78%), linear-gradient(145deg, ${r.baseStart} 0%, ${r.baseEnd} 100%)`});return(0,t.jsx)("div",{onClick:()=>t8(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),t8(e))},onMouseMove:aQ,onMouseLeave:aZ,role:"button",tabIndex:0,className:"repo-card-tilt-wrapper group relative h-[248px] cursor-pointer text-left transition-transform duration-200",children:(0,t.jsxs)("div",{className:"repo-card-tilt relative h-full overflow-hidden rounded-2xl border border-white/70 bg-white/55 dark:border-slate-700/40 dark:bg-[#141a25]/64 dark:hover:border-slate-600/55",style:e$?void 0:p,children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-white/38 dark:bg-[#141a25]/58"}),(0,t.jsxs)("div",{className:"repo-card-tilt-content relative flex h-full flex-col justify-between p-5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"relative flex items-center",children:[(0,t.jsx)("div",{className:"repo-card-tilt-icon flex h-10 w-10 items-center justify-center rounded-xl bg-white/90 text-slate-700 shadow-sm dark:border dark:border-white/10 dark:bg-[#1e2532] dark:text-slate-200",children:(0,t.jsx)(s,{className:"h-5 w-5"})}),(0,t.jsxs)("div",{className:"absolute -top-2 -right-4 flex gap-1 z-10",children:[u>0&&(0,t.jsx)("span",{className:"inline-flex h-6 min-w-6 items-center justify-center rounded-full bg-blue-500 px-1.5 text-[11px] font-bold text-white shadow-sm border-2 border-white dark:border-[#141a25]",title:`${u} draft${1===u?"":"s"}`,children:u}),m>0&&(0,t.jsx)("span",{className:"inline-flex h-6 min-w-6 items-center justify-center rounded-full bg-emerald-500 px-1.5 text-[11px] font-bold text-white shadow-sm border-2 border-white dark:border-[#141a25]",title:`${m} running session${1===m?"":"s"}`,style:u>0?{marginLeft:"-0.5rem"}:{},children:m})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:t=>{t.stopPropagation(),eX.push(`/git?path=${encodeURIComponent(e)}`)},className:"btn btn-circle btn-xs border-0 bg-white/70 text-slate-600 opacity-0 shadow-none transition-opacity hover:bg-white hover:text-slate-900 group-hover:opacity-100 dark:bg-[#1e2532]/90 dark:text-slate-300 dark:hover:bg-[#252d3d] dark:hover:text-white",title:"Open Git Workspace",children:(0,t.jsx)(y.GitBranch,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{onClick:t=>{aP(t,e)},className:"btn btn-circle btn-xs border-0 bg-white/70 text-slate-600 opacity-0 shadow-none transition-opacity hover:bg-white hover:text-slate-900 group-hover:opacity-100 dark:bg-[#1e2532]/90 dark:text-slate-300 dark:hover:bg-[#252d3d] dark:hover:text-white",title:"Repository settings",children:(0,t.jsx)(h,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{onClick:t=>aR(t,e),className:"btn btn-circle btn-xs border-0 bg-white/70 text-slate-500 opacity-0 shadow-none transition-opacity hover:bg-white hover:text-rose-600 group-hover:opacity-100 dark:bg-[#1e2532]/90 dark:text-slate-400 dark:hover:bg-[#252d3d] dark:hover:text-rose-300",title:"Remove from history",children:(0,t.jsx)(i.X,{className:"h-3.5 w-3.5"})})]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("h3",{className:"truncate text-lg font-bold text-slate-900 dark:text-white",children:(0,P.getBaseName)(e)}),(0,t.jsx)("p",{className:"truncate font-mono text-xs text-slate-600 dark:text-slate-300",children:e}),(0,t.jsxs)("p",{className:"truncate text-[11px] font-medium text-slate-500 dark:text-slate-400",children:["Credential: ",x]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm font-semibold text-slate-700 dark:text-slate-200",children:[(0,t.jsx)("span",{children:"Open repository"}),(0,t.jsx)(n.ChevronRight,{className:"h-4 w-4 transition-transform group-hover:translate-x-0.5"})]})]})]})},e)}),(0,t.jsxs)("button",{onClick:t5,className:"group flex h-[248px] flex-col items-center justify-center gap-2 rounded-2xl border-2 border-dashed border-slate-300 bg-slate-50/70 text-slate-600 transition-all duration-200 hover:-translate-y-1 hover:border-primary/50 hover:bg-white dark:border-slate-700/35 dark:bg-[#131b2a] dark:text-slate-400 dark:hover:border-slate-600/50 dark:hover:bg-[#1d2638]",children:[(0,t.jsx)("span",{className:"flex h-14 w-14 items-center justify-center rounded-full bg-white shadow-sm transition-transform group-hover:scale-105 dark:border dark:border-slate-700/40 dark:bg-[#1e2532]",children:(0,t.jsx)(l.Plus,{className:"h-7 w-7 text-slate-400 transition-colors group-hover:text-primary"})}),(0,t.jsx)("span",{className:"text-lg font-semibold transition-colors group-hover:text-primary",children:"Add Repository"}),(0,t.jsx)("span",{className:"text-sm text-slate-400 dark:text-slate-500",children:"Import from local or git URL"})]})]}):(0,t.jsx)("div",{className:"flex h-56 items-center justify-center rounded-2xl border border-slate-200 bg-white/70 dark:border-slate-700/55 dark:bg-[#141d2e]/70",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-md text-primary"})})]})]}),"home"===e&&er&&e_&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-slate-900/35 p-4 backdrop-blur-sm",children:(0,t.jsxs)("div",{className:"w-full max-w-xl overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-white/10 dark:bg-[#151b26]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-100 bg-slate-50/70 px-5 py-4 md:px-6 dark:border-white/10 dark:bg-[#1e2532]/75",children:[(0,t.jsx)("h3",{className:"text-lg font-bold text-slate-900 dark:text-white",children:"Repository Settings"}),(0,t.jsx)("button",{className:"btn btn-circle btn-ghost btn-sm text-slate-500 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:t4,disabled:tV,children:(0,t.jsx)(i.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,t.jsx)("p",{className:"text-sm text-slate-600 dark:text-slate-300",children:"Choose which credential this repository should use for authenticated Git operations."}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Repository"}),(0,t.jsx)("div",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 font-mono text-xs text-slate-700 break-all dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",children:e_})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Credential"}),(0,t.jsxs)("select",{className:"select w-full border-slate-200 bg-slate-50 text-slate-700 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",value:eI,onChange:e=>eG(e.target.value),disabled:tV,children:[(0,t.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),eH.map(e=>(0,t.jsx)("option",{value:e.id,children:eh(e)},e.id))]}),0===eH.length&&!tq&&(0,t.jsx)("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:"No credentials found. Add credentials from the Credentials page."})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Start Up Command"}),(0,t.jsx)("input",{className:"input w-full border-slate-200 bg-slate-50 font-mono text-sm text-slate-800 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",value:eK,onChange:e=>ez(e.target.value),placeholder:ed,disabled:tV}),(0,t.jsxs)("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:["Default: ",(0,t.jsx)("span",{className:"font-mono",children:ed})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Dev Server Command"}),(0,t.jsx)("input",{className:"input w-full border-slate-200 bg-slate-50 font-mono text-sm text-slate-800 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",value:eO,onChange:e=>eq(e.target.value),placeholder:ec,disabled:tV}),(0,t.jsxs)("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:["Default: ",(0,t.jsx)("span",{className:"font-mono",children:ec})]})]}),tq&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),tz&&(0,t.jsx)("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700",children:tz}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-slate-100 pt-4 dark:border-white/10",children:[(0,t.jsx)("button",{className:"btn btn-ghost text-slate-700 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:t4,disabled:tV,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:()=>void aD(),disabled:tV||tq,children:[tV?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):null,"Save"]})]})]})]})}),"home"===e&&eg&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-slate-900/40 p-4 backdrop-blur-sm",children:(0,t.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-white/10 dark:bg-[#151b26]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-100 bg-slate-50/60 px-5 py-4 md:px-6 dark:border-white/10 dark:bg-[#1e2532]/75",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-bold text-slate-900 dark:text-white",children:"Add New Repository"}),(0,t.jsx)("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Connect a local folder or clone from URL"})]}),(0,t.jsx)("button",{className:"btn btn-circle btn-ghost btn-sm text-slate-500 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:t6,disabled:eC,children:(0,t.jsx)(i.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col overflow-y-auto md:flex-row",children:[(0,t.jsxs)("div",{className:"flex-1 space-y-4 border-b border-slate-100 p-5 md:border-b-0 md:border-r md:p-6 dark:border-white/10",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Browse Local"}),(0,t.jsx)("p",{className:"text-sm text-slate-600 dark:text-slate-300",children:"Select an existing Git repository folder from your local machine."}),(0,t.jsxs)("div",{className:"rounded-lg border border-slate-200 bg-slate-50 p-3 text-xs text-slate-600 dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-300",children:["Default root: ",(0,t.jsx)("span",{className:"font-mono",children:eA?.defaultRoot||"~"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsxs)("button",{className:"btn btn-primary btn-sm gap-2",onClick:()=>{t6(),S(!0)},children:[(0,t.jsx)(s,{className:"h-4 w-4"}),"Browse Local Repository"]}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2 text-slate-700 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:()=>{t6(),R(!0)},children:[(0,t.jsx)(d,{className:"h-4 w-4"}),"Set Default Folder"]})]})]}),(0,t.jsxs)("div",{className:"w-full space-y-4 bg-slate-50/35 p-5 md:w-[420px] md:p-6 dark:bg-[#111722]",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Clone Remote"}),(0,t.jsxs)("p",{className:"text-sm text-slate-600 dark:text-slate-300",children:["Clone into ",(0,t.jsx)("span",{className:"font-mono",children:"~/.viba/repos"})," and open it immediately."]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Repository URL"}),(0,t.jsx)("input",{className:"input w-full border-slate-200 bg-white font-mono text-sm text-slate-800 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",placeholder:"https://github.com/org/repo.git",value:ey,onChange:e=>ek(e.target.value),disabled:eC})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Credential"}),(0,t.jsxs)("select",{className:"select w-full border-slate-200 bg-white text-slate-700 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",value:ew,onChange:e=>ej(e.target.value),disabled:eC||eP,children:[(0,t.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),eH.map(e=>(0,t.jsx)("option",{value:e.id,children:eh(e)},e.id))]}),0===eH.length&&!eP&&(0,t.jsx)("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:"No credentials found. Clone uses anonymous access unless remote auth is configured."})]}),eP&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),eC&&(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-600 dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-300",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Cloning repository..."]}),eN&&(0,t.jsx)("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700",children:eN}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-slate-100 pt-4 dark:border-white/10",children:[(0,t.jsx)("button",{className:"btn btn-ghost text-slate-700 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:t6,disabled:eC,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary gap-2",onClick:()=>void t9(),disabled:eC||!ey.trim()||eP,children:[eC?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(p,{className:"h-4 w-4"}),"Clone Repository"]})]})]})]})]})}),"new"===e&&eF&&(0,t.jsxs)("div",{className:"w-full max-w-[1240px]",children:[tk&&(0,t.jsx)("div",{className:"mb-4 rounded-xl border border-red-200 bg-red-50 px-4 py-2 text-sm text-red-700 dark:border-red-500/40 dark:bg-red-900/30 dark:text-red-200",children:tk}),(0,t.jsxs)("div",{className:"mb-8",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-4",children:[(0,t.jsx)("button",{type:"button",className:"flex h-10 w-10 items-center justify-center rounded-lg text-slate-500 transition-colors hover:bg-white hover:text-slate-900 dark:text-slate-400 dark:hover:bg-slate-800 dark:hover:text-white",onClick:()=>eX.push("/"),"aria-label":"Back to home",children:(0,t.jsx)(n.ChevronRight,{className:"h-6 w-6 rotate-180"})}),(0,t.jsx)("h1",{className:"text-3xl font-black tracking-[-0.02em] text-slate-900 md:text-4xl dark:text-white",children:"Assign New Task"})]}),(0,t.jsx)("p",{className:"ml-14 text-sm text-slate-500 md:text-base dark:text-slate-400",children:"Configure the environment and describe the work required for your AI agent."})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-12",children:[(0,t.jsxs)("div",{className:"space-y-6 lg:col-span-4",children:[(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:[(0,t.jsxs)("h3",{className:"mb-5 flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white",children:[(0,t.jsx)(s,{className:"h-5 w-5 text-primary"}),"Context Setup"]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:"Select Repository"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{className:"h-12 w-full appearance-none rounded-lg border border-slate-300 bg-white px-3 pr-10 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",value:eF,onChange:e=>{ae(e)},disabled:tf||0===aH.length,children:aH.map(e=>(0,t.jsx)("option",{value:e,children:(0,P.getBaseName)(e)},e))}),(0,t.jsx)(o.ChevronDown,{className:"pointer-events-none absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-slate-500"})]}),(0,t.jsx)("span",{className:"truncate font-mono text-[11px] text-slate-500 dark:text-slate-400",title:eF,children:eF})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:"Base Branch"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{className:"h-12 w-full appearance-none rounded-lg border border-slate-300 bg-white px-3 pr-10 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",value:eJ,onChange:as,disabled:tf,children:eW.map(e=>(0,t.jsxs)("option",{value:e.name,children:[e.name,e.current?" (checked out)":""]},e.name))}),tf?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs absolute right-3 top-1/2 -translate-y-1/2"}):(0,t.jsx)(o.ChevronDown,{className:"pointer-events-none absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-slate-500"})]})]}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-2 text-sm font-medium text-slate-600 transition-colors hover:text-slate-900 dark:text-slate-400 dark:hover:text-white",onClick:()=>ta(e=>!e),children:[(0,t.jsx)(n.ChevronRight,{className:`h-4 w-4 transition-transform ${tt?"rotate-90":""}`}),tt?"Hide Advanced Setup":"Show Session Setup"]}),tt&&(0,t.jsxs)("div",{className:"space-y-4 rounded-xl border border-slate-200 bg-slate-50 p-3 dark:border-[#30363d] dark:bg-[#0d1117]/55",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Start Up Command"}),(0,t.jsx)("input",{type:"text",className:"h-10 rounded-lg border border-slate-300 bg-white px-3 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",placeholder:"npm install",value:e7,onChange:al,onBlur:ai,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),aA())},disabled:tf})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Dev Server Command"}),(0,t.jsx)("input",{type:"text",className:"h-10 rounded-lg border border-slate-300 bg-white px-3 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",placeholder:"npm run dev",value:e9,onChange:e=>{te(e.target.value)},onBlur:ao,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),aA())},disabled:tf})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Session Mode"}),(0,t.jsxs)("select",{className:"h-10 rounded-lg border border-slate-300 bg-white px-3 text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",value:tl,onChange:e=>{let t="plan"===e.target.value?"plan":"fast";ti(t);try{window.localStorage.setItem(eu,t)}catch{}},disabled:tf,children:[(0,t.jsx)("option",{value:"fast",children:"Fast Mode (default)"}),(0,t.jsx)("option",{value:"plan",children:"Plan Mode"})]})]})]})]})]}),(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:[(0,t.jsx)("h3",{className:"mb-4 text-lg font-bold text-slate-900 dark:text-white",children:"Drafts"}),(0,t.jsxs)("div",{className:"space-y-2",children:[0===e3.length&&(0,t.jsx)("div",{className:"rounded-lg border border-dashed border-slate-200 bg-slate-50 px-3 py-4 text-sm text-slate-500 dark:border-[#30363d] dark:bg-[#0d1117]/45 dark:text-slate-400",children:"No drafts for this repository."}),e3.map(e=>(0,t.jsxs)("div",{className:"group flex items-center gap-3 rounded-lg border border-transparent px-3 py-3 transition-colors hover:border-slate-100 hover:bg-slate-50 dark:hover:border-slate-700/70 dark:hover:bg-slate-800/50",children:[(0,t.jsx)("div",{className:"h-2 w-2 flex-shrink-0 rounded-full bg-blue-500"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-slate-900 dark:text-white",children:e.title}),(0,t.jsxs)("p",{className:"truncate text-xs text-slate-500 dark:text-slate-400",children:[(0,P.getBaseName)(e.repoPath)," • ",e.agentProvider]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",children:[(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-primary dark:text-slate-400 dark:hover:text-primary",title:"Open Draft",onClick:()=>aF(e),disabled:tf||tY,children:(0,t.jsx)(u.ExternalLink,{className:"h-4 w-4"})}),(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-red-500 dark:text-slate-400 dark:hover:text-red-400",title:"Delete Draft",onClick:()=>aB(e.id),disabled:tf||tY,children:(0,t.jsx)(x.Trash2,{className:"h-4 w-4"})})]})]},e.id))]})]}),(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:[(0,t.jsx)("h3",{className:"mb-4 text-lg font-bold text-slate-900 dark:text-white",children:"Ongoing Tasks"}),(0,t.jsxs)("div",{className:"space-y-2",children:[0===eZ.length&&(0,t.jsx)("div",{className:"rounded-lg border border-dashed border-slate-200 bg-slate-50 px-3 py-4 text-sm text-slate-500 dark:border-[#30363d] dark:bg-[#0d1117]/45 dark:text-slate-400",children:"No ongoing sessions for this repository."}),eZ.map(e=>(0,t.jsxs)("div",{className:"group flex items-center gap-3 rounded-lg border border-transparent px-3 py-3 transition-colors hover:border-slate-100 hover:bg-slate-50 dark:hover:border-slate-700/70 dark:hover:bg-slate-800/50",children:[(0,t.jsx)("div",{className:`h-2 w-2 flex-shrink-0 rounded-full ${tv===e.sessionName?"animate-pulse bg-amber-400":"bg-emerald-500"}`}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-slate-900 dark:text-white",children:e.title||e.sessionName}),(0,t.jsxs)("p",{className:"truncate text-xs text-slate-500 dark:text-slate-400",children:[(0,P.getBaseName)(e.repoPath)," • ",e.agent]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",children:[(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-primary dark:text-slate-400 dark:hover:text-primary",title:"Open",onClick:()=>aI(e),disabled:tf||tv===e.sessionName,children:(0,t.jsx)(u.ExternalLink,{className:"h-4 w-4"})}),(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-amber-500 dark:text-slate-400 dark:hover:text-amber-400",title:"New Attempt",onClick:()=>(e=>{if(!eF)return;let t=`/new?repo=${encodeURIComponent(eF)}&prefillFromSession=${encodeURIComponent(e.sessionName)}`;eX.push(t)})(e),disabled:tf||tv===e.sessionName,children:(0,t.jsx)(l.Plus,{className:"h-4 w-4"})}),(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-red-500 dark:text-slate-400 dark:hover:text-red-400",title:tv===e.sessionName?"Deleting...":"Delete",onClick:()=>aG(e),disabled:tf||tv===e.sessionName,children:(0,t.jsx)(x.Trash2,{className:"h-4 w-4"})})]})]},e.sessionName))]})]})]}),(0,t.jsx)("div",{className:"flex flex-col lg:col-span-8",children:(0,t.jsxs)("div",{className:"flex h-full flex-col rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:[(0,t.jsxs)("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white",htmlFor:"task-description",children:[(0,t.jsx)(c,{className:"h-5 w-5 text-primary"}),"Task Description"]}),aj&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:j.map(e=>{let a=tr===e.content;return(0,t.jsx)("button",{type:"button",className:`rounded-full border px-3 py-1 text-xs font-semibold transition-colors ${a?"border-primary bg-primary/10 text-primary dark:border-primary dark:bg-primary/20 dark:text-blue-300":"border-slate-300 bg-white text-slate-700 hover:border-primary hover:text-primary dark:border-slate-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:border-primary dark:hover:text-blue-300"}`,onClick:()=>aN(e.content),disabled:tf,"aria-label":`Fill task description with ${e.label} prompt`,children:e.label},e.id)})})]}),(0,t.jsxs)("div",{className:"group relative mb-4 flex h-[360px] flex-grow flex-col md:h-[420px]",children:[(0,t.jsx)("textarea",{id:"task-description",className:"h-full w-full resize-none rounded-xl border border-slate-200 bg-slate-50 p-5 font-mono text-sm leading-relaxed text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/30 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100 dark:placeholder:text-slate-500",placeholder:`Describe the task for the AI agent...
|
|
4
|
-
Example:
|
|
5
|
-
1. Create a new component for the user profile card.
|
|
6
|
-
2. Ensure it fetches data from the /api/user endpoint.
|
|
7
|
-
3. Add error handling for failed requests.
|
|
8
|
-
|
|
9
|
-
Tip: Type @ to mention files.`,value:tr,onChange:aS,onKeyDown:e=>{if((e.metaKey||e.ctrlKey)&&"Enter"===e.key){e.preventDefault(),aA();return}ac&&am.length>0&&("ArrowUp"===e.key?(e.preventDefault(),ag(e=>e>0?e-1:am.length-1)):"ArrowDown"===e.key?(e.preventDefault(),ag(e=>e<am.length-1?e+1:0)):"Enter"===e.key||"Tab"===e.key?(e.preventDefault(),aC(am[af])):"Escape"===e.key&&(e.preventDefault(),ax(!1)))},onClick:e=>{ab(e.currentTarget.selectionStart),ax(!1)},onKeyUp:e=>ab(e.currentTarget.selectionStart),disabled:tf}),ac&&am.length>0&&(0,t.jsx)("div",{className:"absolute left-3 right-3 top-[calc(100%-8rem)] z-50 max-h-48 overflow-y-auto rounded-lg border border-slate-200 bg-white shadow-lg dark:border-[#30363d] dark:bg-[#161b22]",children:am.map((e,a)=>(0,t.jsx)("button",{className:`w-full truncate border-b border-slate-100 px-3 py-2 text-left text-xs last:border-0 ${a===af?"bg-primary text-white":"text-slate-700 hover:bg-slate-50 dark:border-slate-700/60 dark:text-slate-300 dark:hover:bg-slate-800/60"}`,onMouseDown:t=>{t.preventDefault(),aC(e)},children:e},e))})]}),(0,t.jsxs)("div",{className:"border-t border-slate-100 pt-4 dark:border-slate-700/70",children:[(0,t.jsxs)("div",{className:"mb-3 flex flex-col items-start justify-between gap-2 sm:flex-row sm:items-center",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold text-slate-700 dark:text-slate-300",children:"Attachments"}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-2 text-sm font-medium text-primary transition-colors hover:text-blue-700 disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>tc(!0),disabled:tf||!eF,children:[(0,t.jsx)(p,{className:"h-4 w-4"}),"Select Attachments"]})]}),(0,t.jsx)("div",{className:"min-h-[88px] rounded-xl border-2 border-dashed border-slate-200 bg-slate-50/70 p-3 dark:border-slate-700 dark:bg-[#0d1117]/40",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[tn.map((e,a)=>(0,t.jsxs)("span",{className:"inline-flex max-w-full items-center gap-2 rounded-full border border-slate-300 bg-white px-3 py-1 text-xs text-slate-700 dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200",title:e,children:[(0,t.jsx)("span",{className:"truncate",children:(0,P.getBaseName)(e)}),(0,t.jsx)("button",{type:"button",className:"rounded text-slate-500 transition hover:text-red-500 dark:text-slate-400 dark:hover:text-red-400",onClick:()=>{to(e=>e.filter((e,t)=>t!==a))},title:"Remove attachment",children:(0,t.jsx)(i.X,{className:"h-3 w-3"})})]},`upload-${e}-${a}`)),th.map((e,a)=>(0,t.jsxs)("span",{className:"inline-flex max-w-full items-center gap-2 rounded-full border border-slate-300 bg-white px-3 py-1 text-xs text-slate-700 dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200",title:e,children:[(0,t.jsx)("span",{className:"truncate",children:(0,P.getBaseName)(e)}),(0,t.jsx)("button",{type:"button",className:"rounded text-slate-500 transition hover:text-red-500 dark:text-slate-400 dark:hover:text-red-400",onClick:()=>{tu(e=>e.filter((e,t)=>t!==a))},title:"Remove carried attachment",children:(0,t.jsx)(i.X,{className:"h-3 w-3"})})]},`prefill-${e}-${a}`)),0===tn.length&&0===th.length&&(0,t.jsx)("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:"No attachments selected."})]})})]}),(0,t.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-3 border-t border-slate-100 pt-5 dark:border-slate-700/70",children:[(0,t.jsxs)("span",{className:"mr-auto hidden text-xs text-slate-400 dark:text-slate-500 sm:block",children:["Press ",(0,t.jsx)("kbd",{className:"rounded border border-slate-200 bg-slate-100 px-2 py-1 font-sans text-[11px] dark:border-slate-700 dark:bg-slate-800 dark:text-slate-300",children:"Ctrl + Enter"})," to submit"]}),(0,t.jsx)("button",{type:"button",className:"inline-flex items-center gap-2 rounded-lg bg-slate-200 px-5 py-2 text-sm font-semibold text-slate-800 shadow-sm transition hover:bg-slate-300 dark:bg-slate-700 dark:text-white dark:hover:bg-slate-600 disabled:cursor-not-allowed disabled:opacity-70",onClick:aU,disabled:tf||tY,children:tY?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):"Save Draft"}),(0,t.jsx)("button",{type:"button",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2 text-sm font-semibold text-white shadow-md shadow-primary/20 transition hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-70",onClick:aA,disabled:tf||tY,children:tf?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):"Create New Task"})]})]})})]})]}),"new"===e&&!eF&&!!r&&!tk&&(0,t.jsx)("div",{className:"w-full max-w-2xl rounded-2xl border border-slate-200 bg-white p-8 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsx)("h2",{className:"text-lg font-semibold text-slate-900 dark:text-white",children:"Loading repository..."}),(0,t.jsx)("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Preparing your task workspace."})]})}),"new"===e&&tR&&tD&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-base-content/45 px-4",children:(0,t.jsx)("div",{className:"w-full max-w-md rounded-xl border border-base-300 bg-base-100 p-6 shadow-2xl",children:(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("h3",{className:"text-lg font-semibold",children:["Installing ",eb[tD]]}),(0,t.jsx)("p",{className:"text-sm opacity-70",children:"Please wait while we install the coding agent CLI."})]})]})})}),"new"===e&&tM&&tE&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1001] flex items-center justify-center bg-base-content/60 p-4",children:(0,t.jsx)("div",{className:"w-full max-w-5xl rounded-xl border border-base-300 bg-base-100 shadow-2xl",children:(0,t.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"Login Required"}),(0,t.jsxs)("p",{className:"text-sm opacity-80",children:[eb[tE]," has been installed. Complete login in the terminal below, then click Done to continue."]}),(0,t.jsxs)("p",{className:"text-xs opacity-60",children:["Command: ",(0,t.jsx)("span",{className:"font-mono",children:tU})]}),(0,t.jsx)("div",{className:"h-[420px] overflow-hidden rounded-lg border border-base-300 bg-base-200",children:(0,t.jsx)("iframe",{ref:tW,src:"/terminal",className:"h-full w-full border-none",allow:"clipboard-read; clipboard-write",onLoad:aL})}),tG&&(0,t.jsx)("div",{className:"alert alert-error text-sm py-2",children:tG}),!tG&&(0,t.jsx)("div",{className:"text-xs opacity-70",children:tT?"Login command was sent to the terminal automatically.":"Waiting for terminal to initialize..."}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>void aT(),disabled:tf,children:"Done"})})]})})}),"new"===e&&!eF&&(!r||!!tk)&&(0,t.jsx)("div",{className:"card w-full max-w-2xl bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body",children:[(0,t.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,t.jsx)(s,{className:"w-6 h-6 text-primary"}),"Git Repository Selector"]}),tj?(0,t.jsxs)("div",{className:"alert text-sm py-2 px-3 mt-2 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-sm"}),k?`Searching for repository "${k}"...`:"Searching for repository..."]}):tk?(0,t.jsx)("div",{className:"alert alert-error text-sm py-2 px-3 mt-2",children:tk}):(0,t.jsx)("div",{className:"text-sm opacity-70 mt-2",children:"No repository specified."}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>eX.push("/"),children:"Choose Repository"})})]})}),"new"===e&&eF&&td&&(0,t.jsx)(eo.default,{initialPath:tx||eF,onPathChange:tm,onConfirm:async e=>{ad(e),tc(!1)},onCancel:()=>tc(!1)}),"home"===e&&N&&(0,t.jsx)(L,{initialPath:eA?.defaultRoot||void 0,onSelect:t8,onCancel:()=>S(!1),checkRepo:M}),"home"===e&&C&&(0,t.jsx)(L,{title:"Default Root Folder",initialPath:eA?.defaultRoot||void 0,onSelect:aa,onCancel:()=>R(!1)})]})}e.s(["default",()=>ef],5951)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94518,e=>{"use strict";var t=e.i(71645),i=e.i(33794),s=e.i(75157);function l(e,l){let a=(0,i.useRepository)(e);(0,t.useEffect)(()=>{let t=e?a?(0,s.getRepositoryDisplayName)(a):(0,s.getRepoFolderName)(e):"Workspace";document.title=`${t} | ${l}`},[e,a,l])}e.s(["useWorkspaceTitle",()=>l])},942,e=>{"use strict";var t=e.i(43476),i=e.i(33794),s=e.i(71645),l=e.i(63178),a=e.i(75157),r=e.i(87724),n=e.i(30660);function c({repoPath:e,filePath:c}){let{data:o,isLoading:f}=(0,i.useGitDiff)(e,c),d=(0,s.useRef)(null),u="git-web:diff-view-split",[h,m]=(0,s.useState)(()=>{try{let e=localStorage.getItem(u);return null===e||JSON.parse(e)}catch(e){return console.error("Failed to load split view preference:",e),!0}}),[x,p]=(0,s.useState)(null),g=x===c,{resolvedTheme:j}=(0,l.useTheme)();if((0,s.useEffect)(()=>{try{localStorage.setItem(u,JSON.stringify(h))}catch(e){console.error("Failed to save split view preference:",e)}},[h]),(0,s.useEffect)(()=>{if(f)return;let e=requestAnimationFrame(()=>{d.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[c,f]),f)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})});if(!o)return(0,t.jsx)("div",{className:"flex items-center justify-center h-full opacity-50",children:"No diff available"});if((0,a.isImageFile)(c))return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsx)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c})}),(0,t.jsx)("div",{className:"flex-1 overflow-auto",children:(0,t.jsx)(n.ImageDiffView,{filePath:c,imageDiff:o.imageDiff})})]});if((0,a.isFileBinary)(c,o.left,o.right))return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsx)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c})}),(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center opacity-50",children:"Binary file - diff not available"})]});let b=o.diff||"",v=b.length,y=(0,a.getChangedLineCountFromDiff)(b),N=v>102400||y>3e3;return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:[(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:"split-view",className:"text-[10px] uppercase tracking-wider font-bold cursor-pointer opacity-70",children:"Split View"}),(0,t.jsx)("input",{type:"checkbox",id:"split-view",checked:h,onChange:e=>m(e.target.checked),className:"toggle toggle-sm toggle-primary"})]})]}),(0,t.jsx)("div",{ref:d,className:"flex-1 overflow-auto diff-viewer-wrapper",children:N&&!g?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center p-4",children:[(0,t.jsx)("i",{className:"iconoir-warning-triangle text-[40px] text-warning","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Large Diff Detected"}),(0,t.jsxs)("p",{className:"opacity-70",children:["This diff is large (",Math.round(v/1024),"KB, ~",y," changed lines) and may freeze your browser if rendered."]})]}),(0,t.jsx)("button",{className:"btn btn-outline",onClick:()=>p(c),children:"Show Diff Anyway"})]}):(0,t.jsx)(r.GroupedDiffViewer,{oldValue:o.left||"",newValue:o.right||"",splitView:h,useDarkTheme:"dark"===j})})]})}e.s(["DiffView",()=>c])},89413,e=>{"use strict";var t=e.i(43476),i=e.i(71645),s=e.i(63178),l=e.i(33794),a=e.i(75157),r=e.i(87724),n=e.i(30660),c=e.i(28132);function o({status:e}){switch(e){case"A":return(0,t.jsx)("i",{className:"iconoir-plus-circle text-[16px] text-success","aria-hidden":"true"});case"D":return(0,t.jsx)("i",{className:"iconoir-minus-circle text-[16px] text-error","aria-hidden":"true"});case"M":return(0,t.jsx)("i",{className:"iconoir-edit-pencil text-[16px] text-warning","aria-hidden":"true"});default:return(0,t.jsx)("i",{className:"iconoir-page text-[16px] opacity-50","aria-hidden":"true"})}}function f({node:e,selectedFile:i,expandedFolders:s,onToggleFolder:l,onSelectFile:r,depth:n=0}){let c=Array.from(e.children.values()).sort((e,t)=>{let i=e.children.size>0,s=t.children.size>0;return i&&!s?-1:!i&&s?1:e.name.localeCompare(t.name)});return(0,t.jsx)(t.Fragment,{children:c.map(e=>{if(e.children.size>0){let a=s.has(e.path);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-1 px-2 py-1.5 text-xs rounded cursor-pointer hover:bg-base-200 transition-colors opacity-80",style:{paddingLeft:`${12*n+8}px`},onClick:()=>l(e.path),title:e.path,children:[(0,t.jsx)("span",{className:"text-[10px] opacity-70",children:a?"▼":"▶"}),(0,t.jsx)("i",{className:"iconoir-folder text-[14px] opacity-70","aria-hidden":"true"}),(0,t.jsx)("span",{className:"truncate flex-1",children:e.name})]}),a&&(0,t.jsx)(f,{node:e,selectedFile:i,expandedFolders:s,onToggleFolder:l,onSelectFile:r,depth:n+1})]},e.path)}if(!e.file)return null;let c=e.file;return(0,t.jsxs)("div",{className:(0,a.cn)("flex items-center gap-2 px-2 py-1.5 text-xs rounded cursor-pointer hover:bg-base-200 transition-colors",i===c.path&&"bg-base-200 font-medium"),style:{paddingLeft:`${12*n+8}px`},onClick:()=>r(c.path),title:c.path,children:[(0,t.jsx)(o,{status:c.status}),(0,t.jsx)("span",{className:"truncate flex-1 font-mono",children:e.name})]},e.path)})})}var d=e.i(942);function u({repoPath:e,commitHash:c,fromCommitHash:o,toCommitHash:f,filePath:d,splitView:u}){let{data:h,isLoading:m}=(0,l.useCommitFileDiff)(e,d,{commitHash:c,fromCommitHash:o,toCommitHash:f}),{resolvedTheme:x}=(0,s.useTheme)(),p=`${c??""}:${o??""}:${f??""}:${d}`,[g,j]=(0,i.useState)(null),b=g===p,v=(0,i.useRef)(null);if((0,i.useEffect)(()=>{let e=requestAnimationFrame(()=>{v.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[d,c,o,f,m]),m)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})});if(!h)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 opacity-50",children:"No diff available"});if((0,a.isImageFile)(d))return(0,t.jsx)(n.ImageDiffView,{filePath:d,imageDiff:h.imageDiff});if((0,a.isFileBinary)(d,h.left,h.right))return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 opacity-50",children:"Binary file - diff not available"});let y=h.diff||"",N=y.length,w=(0,a.getChangedLineCountFromDiff)(y);return(N>102400||w>3e3)&&!b?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center p-8",children:[(0,t.jsx)("i",{className:"iconoir-warning-triangle text-[32px] text-warning","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Large Diff Detected"}),(0,t.jsxs)("p",{className:"opacity-70",children:["This diff is large (",Math.round(N/1024),"KB, ~",w," changed lines) and may freeze your browser if rendered."]})]}),(0,t.jsx)("button",{className:"btn btn-outline",onClick:()=>j(p),children:"Show Diff Anyway"})]}):(0,t.jsx)("div",{ref:v,className:"overflow-auto h-full",children:(0,t.jsx)(r.GroupedDiffViewer,{oldValue:h.left||"",newValue:h.right||"",splitView:u,useDarkTheme:"dark"===x})})}function h({repoPath:e,commitHash:s=null,fromCommitHash:r=null,toCommitHash:n=null,showWorkingTreeWhenNoCommit:o=!1,fileListWidthClass:h="w-64"}){let m=!!r&&!!n,x=o&&!s&&!r&&!n,p=x?"working-tree":m?`${r}..${n}`:s??"none",{data:g,isLoading:j}=(0,l.useCommitDiff)(e,{commitHash:s,fromCommitHash:r,toCommitHash:n}),{data:b,isLoading:v}=(0,l.useGitStatus)(e),y=b?.files,[N,w]=(0,i.useState)({}),[k,S]=(0,i.useState)(!1),[F,D]=(0,i.useState)({}),C=(0,i.useMemo)(()=>{if(!y||0===y.length)return[];let e=new Map;for(let t of y){let i=[(t.index||"").trim(),(t.working_dir||"").trim()].find(e=>["A","D","R","M"].includes(e))||"M";e.set(t.path,{path:t.path,additions:0,deletions:0,status:i})}return Array.from(e.values())},[y]),T=(0,i.useMemo)(()=>x?C:g?.files??[],[x,C,g?.files]),V=(0,i.useMemo)(()=>(function(e){let t={name:"",path:"",children:new Map};for(let i of e){let e=i.path.split("/").filter(Boolean),s=t,l="";for(let t=0;t<e.length;t++){let a=e[t];l=l?`${l}/${a}`:a,s.children.has(a)||s.children.set(a,{name:a,path:l,children:new Map}),s=s.children.get(a),t===e.length-1&&(s.file=i)}}return t})(T),[T]),A=(0,i.useMemo)(()=>(function e(t){let i=[];return Array.from(t.children.values()).forEach(t=>{t.children.size>0&&(i.push(t.path),i.push(...e(t)))}),i})(V),[V]),E=(0,i.useMemo)(()=>F[p]??new Set,[F,p]),M="git-web:diff-view-split",[$,B]=(0,i.useState)(()=>{try{let e=localStorage.getItem(M);return null===e||JSON.parse(e)}catch(e){return console.error("Failed to load split view preference:",e),!0}}),P=(0,i.useRef)(null),R=(0,i.useMemo)(()=>{if(0===T.length)return null;let e=N[p]??null;return e&&T.some(t=>t.path===e)?e:T[0].path},[T,N,p]),z=(0,i.useCallback)(e=>{w(t=>(t[p]??null)===e?t:{...t,[p]:e})},[p]);(0,i.useEffect)(()=>{try{localStorage.setItem(M,JSON.stringify($))}catch(e){console.error("Failed to save split view preference:",e)}},[$]),(0,i.useEffect)(()=>{if(!R)return;let e=requestAnimationFrame(()=>{P.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[R,p]),(0,c.useEscapeDismiss)(k,()=>S(!1)),(0,i.useEffect)(()=>{if(!k)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[k]);let I=(0,i.useMemo)(()=>{let e=new Set;return A.forEach(t=>{E.has(t)||e.add(t)}),R&&(function(e){let t=e.split("/").filter(Boolean),i=[];for(let e=1;e<t.length;e++)i.push(t.slice(0,e).join("/"));return i})(R).forEach(t=>e.add(t)),e},[A,E,R]),L=(0,i.useCallback)(e=>{D(t=>{let i=new Set(t[p]??new Set);return i.has(e)?i.delete(e):i.add(e),{...t,[p]:i}})},[p]);return(x?v:j)?(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})}):0===T.length?(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full opacity-50",children:x?"No uncommitted local changes":m?"No changes in selected commit range":"No changes in this commit"}):(0,t.jsxs)("div",{className:(0,a.cn)("flex h-full",k&&"fixed inset-0 z-[80] h-auto bg-base-100 shadow-2xl"),children:[(0,t.jsxs)("div",{className:(0,a.cn)(h,"border-r border-base-300 flex flex-col bg-base-200/30 shrink-0"),children:[(0,t.jsxs)("div",{className:"px-3 py-2 text-xs font-bold opacity-70 border-b border-base-300 bg-base-100",children:[T.length," file",1!==T.length?"s":""," changed"]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto min-h-0",children:(0,t.jsx)("div",{className:"p-1",children:(0,t.jsx)(f,{node:V,selectedFile:R,expandedFolders:I,onToggleFolder:L,onSelectFile:z})})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:R?(0,t.jsxs)("div",{className:"h-full flex flex-col",children:[(0,t.jsxs)("div",{className:"px-4 py-2 text-xs font-mono opacity-70 border-b border-base-300 bg-base-100 shrink-0 truncate flex items-center justify-between",children:[(0,t.jsx)("span",{className:"truncate",children:R}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-4",children:[(0,t.jsx)("label",{htmlFor:"commit-diff-split-view",className:"text-[10px] uppercase tracking-wider font-bold cursor-pointer opacity-70",children:"Split View"}),(0,t.jsx)("input",{type:"checkbox",id:"commit-diff-split-view",checked:$,onChange:e=>B(e.target.checked),className:"toggle toggle-xs toggle-primary"}),(0,t.jsx)("button",{type:"button",className:"btn btn-ghost btn-xs btn-square",onClick:()=>S(e=>!e),"aria-label":k?"Exit full-page diff view":"Expand diff viewer to full page",title:k?"Exit full-page diff view":"Expand diff viewer to full page",children:(0,t.jsx)("i",{className:(0,a.cn)(k?"iconoir-collapse":"iconoir-maximize","text-[14px]"),"aria-hidden":"true"})})]})]}),(0,t.jsx)("div",{ref:P,className:"flex-1 overflow-auto diff-viewer-wrapper",children:x?(0,t.jsx)(d.DiffView,{repoPath:e,filePath:R}):(0,t.jsx)(u,{repoPath:e,commitHash:s,fromCommitHash:r,toCommitHash:n,filePath:R,splitView:$},`${p}:${R}`)})]}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full opacity-70 text-sm",children:"Select a file to view changes"})})]})}e.s(["CommitChangesView",()=>h],89413)},76713,e=>{"use strict";var t=e.i(43476),i=e.i(18566),s=e.i(93104),l=e.i(71645),a=e.i(94518);function r(){let e=(0,i.useSearchParams)().get("path");return((0,a.useWorkspaceTitle)(e,"History"),e)?(0,t.jsx)(s.HistoryView,{repoPath:e}):(0,t.jsx)("div",{className:"p-8",children:"No repository path specified."})}function n(){return(0,t.jsx)(l.Suspense,{fallback:(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner"})}),children:(0,t.jsx)(r,{})})}e.s(["default",()=>n])}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94518,e=>{"use strict";var t=e.i(71645),i=e.i(33794),s=e.i(75157);function l(e,l){let a=(0,i.useRepository)(e);(0,t.useEffect)(()=>{let t=e?a?(0,s.getRepositoryDisplayName)(a):(0,s.getRepoFolderName)(e):"Workspace";document.title=`${t} | ${l}`},[e,a,l])}e.s(["useWorkspaceTitle",()=>l])},942,e=>{"use strict";var t=e.i(43476),i=e.i(33794),s=e.i(71645),l=e.i(63178),a=e.i(75157),r=e.i(87724),n=e.i(30660);function c({repoPath:e,filePath:c}){let{data:o,isLoading:f}=(0,i.useGitDiff)(e,c),d=(0,s.useRef)(null),u="git-web:diff-view-split",[h,m]=(0,s.useState)(()=>{try{let e=localStorage.getItem(u);return null===e||JSON.parse(e)}catch(e){return console.error("Failed to load split view preference:",e),!0}}),[x,p]=(0,s.useState)(null),g=x===c,{resolvedTheme:j}=(0,l.useTheme)();if((0,s.useEffect)(()=>{try{localStorage.setItem(u,JSON.stringify(h))}catch(e){console.error("Failed to save split view preference:",e)}},[h]),(0,s.useEffect)(()=>{if(f)return;let e=requestAnimationFrame(()=>{d.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[c,f]),f)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})});if(!o)return(0,t.jsx)("div",{className:"flex items-center justify-center h-full opacity-50",children:"No diff available"});if((0,a.isImageFile)(c))return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsx)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c})}),(0,t.jsx)("div",{className:"flex-1 overflow-auto",children:(0,t.jsx)(n.ImageDiffView,{filePath:c,imageDiff:o.imageDiff})})]});if((0,a.isFileBinary)(c,o.left,o.right))return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsx)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c})}),(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center opacity-50",children:"Binary file - diff not available"})]});let b=o.diff||"",v=b.length,y=(0,a.getChangedLineCountFromDiff)(b),N=v>102400||y>3e3;return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:[(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:"split-view",className:"text-[10px] uppercase tracking-wider font-bold cursor-pointer opacity-70",children:"Split View"}),(0,t.jsx)("input",{type:"checkbox",id:"split-view",checked:h,onChange:e=>m(e.target.checked),className:"toggle toggle-sm toggle-primary"})]})]}),(0,t.jsx)("div",{ref:d,className:"flex-1 overflow-auto diff-viewer-wrapper",children:N&&!g?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center p-4",children:[(0,t.jsx)("i",{className:"iconoir-warning-triangle text-[40px] text-warning","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Large Diff Detected"}),(0,t.jsxs)("p",{className:"opacity-70",children:["This diff is large (",Math.round(v/1024),"KB, ~",y," changed lines) and may freeze your browser if rendered."]})]}),(0,t.jsx)("button",{className:"btn btn-outline",onClick:()=>p(c),children:"Show Diff Anyway"})]}):(0,t.jsx)(r.GroupedDiffViewer,{oldValue:o.left||"",newValue:o.right||"",splitView:h,useDarkTheme:"dark"===j})})]})}e.s(["DiffView",()=>c])},89413,e=>{"use strict";var t=e.i(43476),i=e.i(71645),s=e.i(63178),l=e.i(33794),a=e.i(75157),r=e.i(87724),n=e.i(30660),c=e.i(28132);function o({status:e}){switch(e){case"A":return(0,t.jsx)("i",{className:"iconoir-plus-circle text-[16px] text-success","aria-hidden":"true"});case"D":return(0,t.jsx)("i",{className:"iconoir-minus-circle text-[16px] text-error","aria-hidden":"true"});case"M":return(0,t.jsx)("i",{className:"iconoir-edit-pencil text-[16px] text-warning","aria-hidden":"true"});default:return(0,t.jsx)("i",{className:"iconoir-page text-[16px] opacity-50","aria-hidden":"true"})}}function f({node:e,selectedFile:i,expandedFolders:s,onToggleFolder:l,onSelectFile:r,depth:n=0}){let c=Array.from(e.children.values()).sort((e,t)=>{let i=e.children.size>0,s=t.children.size>0;return i&&!s?-1:!i&&s?1:e.name.localeCompare(t.name)});return(0,t.jsx)(t.Fragment,{children:c.map(e=>{if(e.children.size>0){let a=s.has(e.path);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-1 px-2 py-1.5 text-xs rounded cursor-pointer hover:bg-base-200 transition-colors opacity-80",style:{paddingLeft:`${12*n+8}px`},onClick:()=>l(e.path),title:e.path,children:[(0,t.jsx)("span",{className:"text-[10px] opacity-70",children:a?"▼":"▶"}),(0,t.jsx)("i",{className:"iconoir-folder text-[14px] opacity-70","aria-hidden":"true"}),(0,t.jsx)("span",{className:"truncate flex-1",children:e.name})]}),a&&(0,t.jsx)(f,{node:e,selectedFile:i,expandedFolders:s,onToggleFolder:l,onSelectFile:r,depth:n+1})]},e.path)}if(!e.file)return null;let c=e.file;return(0,t.jsxs)("div",{className:(0,a.cn)("flex items-center gap-2 px-2 py-1.5 text-xs rounded cursor-pointer hover:bg-base-200 transition-colors",i===c.path&&"bg-base-200 font-medium"),style:{paddingLeft:`${12*n+8}px`},onClick:()=>r(c.path),title:c.path,children:[(0,t.jsx)(o,{status:c.status}),(0,t.jsx)("span",{className:"truncate flex-1 font-mono",children:e.name})]},e.path)})})}var d=e.i(942);function u({repoPath:e,commitHash:c,fromCommitHash:o,toCommitHash:f,filePath:d,splitView:u}){let{data:h,isLoading:m}=(0,l.useCommitFileDiff)(e,d,{commitHash:c,fromCommitHash:o,toCommitHash:f}),{resolvedTheme:x}=(0,s.useTheme)(),p=`${c??""}:${o??""}:${f??""}:${d}`,[g,j]=(0,i.useState)(null),b=g===p,v=(0,i.useRef)(null);if((0,i.useEffect)(()=>{let e=requestAnimationFrame(()=>{v.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[d,c,o,f,m]),m)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})});if(!h)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 opacity-50",children:"No diff available"});if((0,a.isImageFile)(d))return(0,t.jsx)(n.ImageDiffView,{filePath:d,imageDiff:h.imageDiff});if((0,a.isFileBinary)(d,h.left,h.right))return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 opacity-50",children:"Binary file - diff not available"});let y=h.diff||"",N=y.length,w=(0,a.getChangedLineCountFromDiff)(y);return(N>102400||w>3e3)&&!b?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center p-8",children:[(0,t.jsx)("i",{className:"iconoir-warning-triangle text-[32px] text-warning","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Large Diff Detected"}),(0,t.jsxs)("p",{className:"opacity-70",children:["This diff is large (",Math.round(N/1024),"KB, ~",w," changed lines) and may freeze your browser if rendered."]})]}),(0,t.jsx)("button",{className:"btn btn-outline",onClick:()=>j(p),children:"Show Diff Anyway"})]}):(0,t.jsx)("div",{ref:v,className:"overflow-auto h-full",children:(0,t.jsx)(r.GroupedDiffViewer,{oldValue:h.left||"",newValue:h.right||"",splitView:u,useDarkTheme:"dark"===x})})}function h({repoPath:e,commitHash:s=null,fromCommitHash:r=null,toCommitHash:n=null,showWorkingTreeWhenNoCommit:o=!1,fileListWidthClass:h="w-64"}){let m=!!r&&!!n,x=o&&!s&&!r&&!n,p=x?"working-tree":m?`${r}..${n}`:s??"none",{data:g,isLoading:j}=(0,l.useCommitDiff)(e,{commitHash:s,fromCommitHash:r,toCommitHash:n}),{data:b,isLoading:v}=(0,l.useGitStatus)(e),y=b?.files,[N,w]=(0,i.useState)({}),[k,S]=(0,i.useState)(!1),[F,D]=(0,i.useState)({}),C=(0,i.useMemo)(()=>{if(!y||0===y.length)return[];let e=new Map;for(let t of y){let i=[(t.index||"").trim(),(t.working_dir||"").trim()].find(e=>["A","D","R","M"].includes(e))||"M";e.set(t.path,{path:t.path,additions:0,deletions:0,status:i})}return Array.from(e.values())},[y]),T=(0,i.useMemo)(()=>x?C:g?.files??[],[x,C,g?.files]),V=(0,i.useMemo)(()=>(function(e){let t={name:"",path:"",children:new Map};for(let i of e){let e=i.path.split("/").filter(Boolean),s=t,l="";for(let t=0;t<e.length;t++){let a=e[t];l=l?`${l}/${a}`:a,s.children.has(a)||s.children.set(a,{name:a,path:l,children:new Map}),s=s.children.get(a),t===e.length-1&&(s.file=i)}}return t})(T),[T]),A=(0,i.useMemo)(()=>(function e(t){let i=[];return Array.from(t.children.values()).forEach(t=>{t.children.size>0&&(i.push(t.path),i.push(...e(t)))}),i})(V),[V]),E=(0,i.useMemo)(()=>F[p]??new Set,[F,p]),M="git-web:diff-view-split",[$,B]=(0,i.useState)(()=>{try{let e=localStorage.getItem(M);return null===e||JSON.parse(e)}catch(e){return console.error("Failed to load split view preference:",e),!0}}),P=(0,i.useRef)(null),R=(0,i.useMemo)(()=>{if(0===T.length)return null;let e=N[p]??null;return e&&T.some(t=>t.path===e)?e:T[0].path},[T,N,p]),z=(0,i.useCallback)(e=>{w(t=>(t[p]??null)===e?t:{...t,[p]:e})},[p]);(0,i.useEffect)(()=>{try{localStorage.setItem(M,JSON.stringify($))}catch(e){console.error("Failed to save split view preference:",e)}},[$]),(0,i.useEffect)(()=>{if(!R)return;let e=requestAnimationFrame(()=>{P.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[R,p]),(0,c.useEscapeDismiss)(k,()=>S(!1)),(0,i.useEffect)(()=>{if(!k)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[k]);let I=(0,i.useMemo)(()=>{let e=new Set;return A.forEach(t=>{E.has(t)||e.add(t)}),R&&(function(e){let t=e.split("/").filter(Boolean),i=[];for(let e=1;e<t.length;e++)i.push(t.slice(0,e).join("/"));return i})(R).forEach(t=>e.add(t)),e},[A,E,R]),L=(0,i.useCallback)(e=>{D(t=>{let i=new Set(t[p]??new Set);return i.has(e)?i.delete(e):i.add(e),{...t,[p]:i}})},[p]);return(x?v:j)?(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})}):0===T.length?(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full opacity-50",children:x?"No uncommitted local changes":m?"No changes in selected commit range":"No changes in this commit"}):(0,t.jsxs)("div",{className:(0,a.cn)("flex h-full",k&&"fixed inset-0 z-[80] h-auto bg-base-100 shadow-2xl"),children:[(0,t.jsxs)("div",{className:(0,a.cn)(h,"border-r border-base-300 flex flex-col bg-base-200/30 shrink-0"),children:[(0,t.jsxs)("div",{className:"px-3 py-2 text-xs font-bold opacity-70 border-b border-base-300 bg-base-100",children:[T.length," file",1!==T.length?"s":""," changed"]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto min-h-0",children:(0,t.jsx)("div",{className:"p-1",children:(0,t.jsx)(f,{node:V,selectedFile:R,expandedFolders:I,onToggleFolder:L,onSelectFile:z})})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:R?(0,t.jsxs)("div",{className:"h-full flex flex-col",children:[(0,t.jsxs)("div",{className:"px-4 py-2 text-xs font-mono opacity-70 border-b border-base-300 bg-base-100 shrink-0 truncate flex items-center justify-between",children:[(0,t.jsx)("span",{className:"truncate",children:R}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-4",children:[(0,t.jsx)("label",{htmlFor:"commit-diff-split-view",className:"text-[10px] uppercase tracking-wider font-bold cursor-pointer opacity-70",children:"Split View"}),(0,t.jsx)("input",{type:"checkbox",id:"commit-diff-split-view",checked:$,onChange:e=>B(e.target.checked),className:"toggle toggle-xs toggle-primary"}),(0,t.jsx)("button",{type:"button",className:"btn btn-ghost btn-xs btn-square",onClick:()=>S(e=>!e),"aria-label":k?"Exit full-page diff view":"Expand diff viewer to full page",title:k?"Exit full-page diff view":"Expand diff viewer to full page",children:(0,t.jsx)("i",{className:(0,a.cn)(k?"iconoir-collapse":"iconoir-maximize","text-[14px]"),"aria-hidden":"true"})})]})]}),(0,t.jsx)("div",{ref:P,className:"flex-1 overflow-auto diff-viewer-wrapper",children:x?(0,t.jsx)(d.DiffView,{repoPath:e,filePath:R}):(0,t.jsx)(u,{repoPath:e,commitHash:s,fromCommitHash:r,toCommitHash:n,filePath:R,splitView:$},`${p}:${R}`)})]}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full opacity-70 text-sm",children:"Select a file to view changes"})})]})}e.s(["CommitChangesView",()=>h],89413)},8156,e=>{"use strict";var t=e.i(43476),i=e.i(18566),s=e.i(93104),l=e.i(71645),a=e.i(94518);function r(){let e=(0,i.useSearchParams)().get("path");return((0,a.useWorkspaceTitle)(e,"History"),e)?(0,t.jsx)(s.HistoryView,{repoPath:e}):(0,t.jsx)("div",{className:"p-8",children:"No repository path specified."})}function n(){return(0,t.jsx)(l.Suspense,{fallback:(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner"})}),children:(0,t.jsx)(r,{})})}e.s(["default",()=>n])}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36438,e=>{"use strict";var t=e.i(43476),r=e.i(71645),a=e.i(18566),n=e.i(95187);let s=(0,n.createServerReference)("408332446dc02dad408161688cbb401a72d91ebb97",n.callServer,void 0,n.findSourceMapURL,"deleteSessionInBackground"),l=(0,n.createServerReference)("400a2fbbbc97983cdf1e0b7ecb2333d6a9cd23cd2d",n.callServer,void 0,n.findSourceMapURL,"getSessionDivergence"),i=(0,n.createServerReference)("407e25b80d6fb52c1cb4f5b9b5e2dfb01dc65fb043",n.callServer,void 0,n.findSourceMapURL,"listSessionBaseBranches"),o=(0,n.createServerReference)("4028996676377f1857cb91ef1125bd419c73c5fea4",n.callServer,void 0,n.findSourceMapURL,"mergeSessionToBase"),c=(0,n.createServerReference)("40d8852935ba1f9d4e40138ba0d8d75f8ecef45ebf",n.callServer,void 0,n.findSourceMapURL,"rebaseSessionOntoBase"),d=(0,n.createServerReference)("605fa32f4968d64da5aa738537f6feef5e5ac5546c",n.callServer,void 0,n.findSourceMapURL,"updateSessionBaseBranch"),u=(0,n.createServerReference)("60a5549138685083ba90bb520c385341df13eb74f8",n.callServer,void 0,n.findSourceMapURL,"writeSessionPromptFile"),h=(0,n.createServerReference)("7fa057c23b672919a4468d94651b3e672f88229d11",n.callServer,void 0,n.findSourceMapURL,"setTmuxSessionMouseMode"),m=(0,n.createServerReference)("7f8957576d4459d07a500bc0f13b9d9cc9666aa369",n.callServer,void 0,n.findSourceMapURL,"setTmuxSessionStatusVisibility");var f=e.i(64090),b=e.i(31404),p=e.i(27612),x=e.i(78917),g=e.i(75254);let v=(0,g.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"}]]),w=(0,g.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]),y=(0,g.default)("git-pull-request-arrow",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M5 9v12",key:"ih889a"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}]]);var k=e.i(55716);let j=(0,g.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),N=(0,g.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),S=(0,g.default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),C=(0,g.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var E=e.i(63059);let R=(0,g.default)("grip",[["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"19",cy:"5",r:"1",key:"w8mnmm"}],["circle",{cx:"5",cy:"5",r:"1",key:"lttvr7"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}],["circle",{cx:"19",cy:"19",r:"1",key:"shf9b7"}],["circle",{cx:"5",cy:"19",r:"1",key:"bfqh0e"}]]);var $=e.i(64659),L=e.i(7233);let M=(0,g.default)("mouse-pointer-2",[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]]);var P=e.i(71689);let T=(0,g.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),B=(0,g.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),I=(0,g.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"}]]),D=(0,g.default)("text-cursor-input",[["path",{d:"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6",key:"1528k5"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1",key:"1mj8rg"}],["path",{d:"M9 6v12",key:"velyjx"}]]);var A=e.i(37727),W=e.i(74216);let _=(0,g.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var U=e.i(33794),F=e.i(89413);function O({repoPath:e,branchHint:a,baseBranchHint:n}){let[s,l]=(0,r.useState)({mode:"auto",hash:null}),{data:i}=(0,U.useGitBranches)(e),{data:o,isLoading:c,isFetching:d,isError:u,error:h,refetch:m}=(0,U.useGitLog)(e,200,{scope:"current"}),f=(0,r.useMemo)(()=>o?.all??[],[o]),b=i?.current?.trim()||a?.trim()||"unknown",p=i?.current?.trim()||a?.trim()||null,x=n?.trim()||null,{data:g}=(0,U.useGitMergeBase)(e,x,p),v=(0,r.useMemo)(()=>{if(!g)return f;let e=g.trim();if(!e)return f;let t=f.findIndex(t=>e.startsWith(t.hash)||t.hash.startsWith(e));return t<0?f:f.slice(0,t+1)},[f,g]),w=(0,r.useMemo)(()=>0===v.length||"unselected"===s.mode?null:"manual"===s.mode&&v.some(e=>e.hash===s.hash)?s.hash:v[0].hash,[v,s]);return(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-slate-50 dark:bg-[#0d1117]",children:[(0,t.jsxs)("div",{className:"flex min-h-0 flex-[2] flex-col border-b border-slate-200 dark:border-[#30363d]",children:[(0,t.jsxs)("div",{className:"flex h-9 shrink-0 items-center justify-between border-b border-slate-200 px-3 text-[11px] font-semibold text-slate-600 dark:border-[#30363d] dark:bg-[#161b22] dark:text-slate-400",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2 uppercase tracking-wide",children:[(0,t.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full bg-emerald-500"}),(0,t.jsx)("span",{className:"truncate",children:"Repo Diff"}),(0,t.jsx)("span",{className:"truncate opacity-70 normal-case",title:b,children:b})]}),(0,t.jsxs)("span",{className:"shrink-0 text-[10px] opacity-70",children:[v.length," commit",1===v.length?"":"s"]})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1",children:(0,t.jsx)(F.CommitChangesView,{repoPath:e,commitHash:w,showWorkingTreeWhenNoCommit:!0,fileListWidthClass:"w-52"})})]}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"flex h-9 shrink-0 items-center justify-between border-b border-slate-200 px-3 text-[11px] font-semibold text-slate-600 dark:border-[#30363d] dark:bg-[#161b22] dark:text-slate-400",children:[(0,t.jsx)("span",{className:"uppercase tracking-wide",children:"Commit History"}),(0,t.jsx)("button",{type:"button",className:"btn btn-ghost btn-xs h-6 min-h-6 w-7 border-none p-0 text-slate-600 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>void m(),title:"Refresh commit history","aria-label":"Refresh commit history",children:(0,t.jsx)(_,{className:`h-3.5 w-3.5 ${d?"animate-spin":""}`})})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:c?(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-slate-500 dark:text-slate-400",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-sm"})}):u?(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-6 text-center text-xs text-red-500 dark:text-red-300",children:h instanceof Error?h.message:"Failed to load commit history"}):0===v.length?(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-6 text-center text-xs text-slate-500 dark:text-slate-400",children:"No commits found on this branch."}):(0,t.jsx)("div",{className:"divide-y divide-slate-200 dark:divide-[#30363d]",children:v.map(e=>{var r;let a,n=w===e.hash;return(0,t.jsxs)("button",{type:"button",onClick:()=>{var t;w===(t=e.hash)?l({mode:"unselected",hash:null}):l({mode:"manual",hash:t})},className:`w-full px-3 py-2 text-left transition-colors ${n?"bg-blue-100/80 dark:bg-[#1f2a3d]":"hover:bg-slate-100 dark:hover:bg-[#161b22]"}`,title:`${e.hash} ${e.message}`.trim(),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[11px] font-mono text-slate-500 dark:text-slate-400",children:[(0,t.jsx)("span",{className:"rounded bg-slate-200 px-1.5 py-0.5 dark:bg-[#30363d]",children:e.hash}),(0,t.jsx)("span",{className:"truncate",children:Number.isNaN(a=Date.parse(r=e.date))?r:new Date(a).toLocaleString()})]}),(0,t.jsx)("div",{className:"mt-1 truncate text-xs font-medium text-slate-800 dark:text-slate-100",children:e.message||"(no subject)"}),(0,t.jsx)("div",{className:"truncate text-[11px] text-slate-500 dark:text-slate-400",children:e.author_name})]},e.hash)})})})]})]})}var q=e.i(81016),H=e.i(63671);function z(e,t,r){var a,n;let s=(a=e,n=t,`viba-${(a.trim().replace(/[^a-zA-Z0-9_-]/g,"-")||"session").slice(0,40)}-${n}`),l=new URLSearchParams;for(let e of(l.append("arg","new-session"),Array.isArray(r)?r:r?[r]:[]))e.value&&(l.append("arg","-e"),l.append("arg",`${e.name}=${e.value}`));return l.append("arg","-A"),l.append("arg","-s"),l.append("arg",s),`/terminal?${l.toString()}`}let K=e=>{let t=e.trim();if(!t)return null;if(/^https?:\/\//i.test(t))return t;if(/^[a-z][a-z0-9+.-]*:\/\//i.test(t)||/^(mailto|javascript|data|tel):/i.test(t))return null;let r=t.split("/")[0]??"",a=r.indexOf(":");if(a>0&&!r.startsWith("[")){let e=r.slice(0,a).toLowerCase(),t=r.slice(a+1);if(!(e.includes(".")||"localhost"===e||/^\d{1,3}(?:\.\d{1,3}){3}$/.test(e)||/^\d+$/.test(t)))return null}let n=r.includes("@")?r.slice(r.lastIndexOf("@")+1):r,s=n.startsWith("[")?n.slice(1,Math.max(1,n.indexOf("]"))).toLowerCase():n.split(":")[0].toLowerCase();return`${"localhost"===s||"127.0.0.1"===s||"::1"===s?"http":"https"}://${t}`},Y=e=>`'${e.replace(/'/g,"'\\''")}'`,G=[{id:"vscode",name:"VS Code",protocol:"vscode"},{id:"cursor",name:"Cursor",protocol:"cursor"},{id:"windsurf",name:"Windsurf",protocol:"windsurf"},{id:"antigravity",name:"Antigravity",protocol:"antigravity"}],V="viba-terminal-size",X="viba-agent-preview-split-ratio",J="__vibaTerminalBootstrapRegistry",Z=/(?:\$|%|#|>) $/,Q={background:"#ffffff",foreground:"#0f172a",cursor:"#0f172a",selectionBackground:"rgba(59, 130, 246, 0.4)",black:"#000000",red:"#cd3131",green:"#00BC00",yellow:"#949800",blue:"#0451a5",magenta:"#bc05bc",cyan:"#0598bc",white:"#555555",brightBlack:"#666666",brightRed:"#cd3131",brightGreen:"#14CE14",brightYellow:"#b5ba00",brightBlue:"#0451a5",brightMagenta:"#bc05bc",brightCyan:"#0598bc",brightWhite:"#a5a5a5"},ee={background:"#0d1117",foreground:"#e6edf3",cursor:"#e6edf3",selectionBackground:"rgba(59, 130, 246, 0.4)",black:"#484f58",red:"#ff7b72",green:"#3fb950",yellow:"#d29922",blue:"#58a6ff",magenta:"#bc8cff",cyan:"#39c5cf",white:"#b1bac4",brightBlack:"#6e7681",brightRed:"#ffa198",brightGreen:"#56d364",brightYellow:"#e3b341",brightBlue:"#79c0ff",brightMagenta:"#d2a8ff",brightCyan:"#56d4dd",brightWhite:"#ffffff"},et=e=>Math.max(.2,Math.min(.8,e)),er=(e,t)=>{let r=e.replace(/\\/g,"/").replace(/\/+$/,""),a=t.replace(/\\/g,"/").replace(/^\/+/,"");return`${r}/${a}`},ea=(e,t)=>{let r=t.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!r)return null;let a=(e=>{let t=e.trim();if(!t)return"";if(t=t.replace(/[#?].*$/,""),/^file:\/\//i.test(t))try{let e=new URL(t);t=decodeURIComponent(e.pathname)}catch{}else if(/^https?:\/\//i.test(t))try{let e=new URL(t);t=decodeURIComponent(e.pathname)}catch{}return(t=t.replace(/^webpack(?:-internal)?:\/\/\/?/,"").replace(/^rsc:\/\//,"").replace(/^\(.*?\)\//,"").replace(/^\/\.\//,"/").replace(/^\.\//,"").replace(/\\/g,"/")).trim()})(e);if(!a)return null;if(a.startsWith("/")||(0,q.isWindowsAbsolutePath)(a))return a;let n=new Set;n.add(a.replace(/^\.\/+/,""));let s=a.indexOf("/src/");for(let e of(s>=0&&n.add(a.slice(s+1)),a.startsWith("src/")&&n.add(a),n))if(e)return er(r,e);return null},en=e=>{let t=e.trim();if(!t)return"";let r=t.match(/[A-Za-z_$][\w$]*/);return r?r[0]:""};function es({repo:e,worktree:a,branch:n,baseBranch:g,sessionName:_,agent:U,startupScript:F,devServerScript:er,initialMessage:es,attachmentPaths:el,attachmentNames:ei,title:eo,sessionMode:ec="fast",onExit:ed,isResume:eu,terminalPersistenceMode:eh="shell",onSessionStart:em,agentTerminalSrc:ef,floatingTerminalSrc:eb}){let ep="hidden min-[1900px]:inline",ex=(0,r.useRef)(null),eg=(0,r.useRef)(null),ev=(0,r.useRef)(null),ew=(0,r.useRef)(null),ey=(0,r.useRef)(null),ek=(0,r.useRef)({startX:0,startRatio:.5}),ej=(0,r.useRef)(null),eN=(0,r.useRef)(null),eS=(0,r.useRef)(null),eC=(0,r.useRef)({injected:!1,timer:null}),eE=(0,r.useMemo)(()=>ef||z(_,"agent"),[ef,_]),eR=(0,r.useMemo)(()=>eb||z(_,"terminal"),[eb,_]),e$=(0,r.useRef)({agent:"idle",terminal:"idle"}),eL=(0,r.useRef)({agent:!1,terminal:!1});(0,r.useEffect)(()=>{e$.current={agent:"idle",terminal:"idle"},eL.current={agent:!1,terminal:!1},null!==eC.current.timer&&window.clearTimeout(eC.current.timer),eC.current={injected:!1,timer:null}},[_]),(0,r.useEffect)(()=>()=>{null!==eC.current.timer&&(window.clearTimeout(eC.current.timer),eC.current.timer=null)},[]);let eM=(0,r.useCallback)(e=>`viba:terminal-bootstrap:${_}:${e}`,[_]),eP=(0,r.useCallback)(e=>`${_}:${e}`,[_]),eT=(0,r.useCallback)(()=>{let e=window;return e[J]||(e[J]={}),e[J]||null},[]),eB=(0,r.useCallback)(e=>{let t=eT();return t&&t[eP(e)]||"idle"},[eT,eP]),eI=(0,r.useCallback)((e,t)=>{let r=eT();r&&(r[eP(e)]=t)},[eT,eP]),eD=(0,r.useCallback)(e=>{if("done"===e$.current[e]||"done"===eB(e))return!0;try{return"1"===window.sessionStorage.getItem(eM(e))}catch{return!1}},[eB,eM]),eA=(0,r.useCallback)(e=>{let t=e$.current[e],r=eB(e);return"done"!==t&&"in_progress"!==t&&"done"!==r&&"in_progress"!==r&&(e$.current[e]="in_progress",eI(e,"in_progress"),!0)},[eB,eI]),eW=(0,r.useCallback)(e=>{"done"!==e$.current[e]&&(e$.current[e]="idle"),"done"!==eB(e)&&eI(e,"idle")},[eB,eI]),e_=(0,r.useCallback)(e=>{e$.current[e]="done",eI(e,"done");try{window.sessionStorage.setItem(eM(e),"1")}catch{}},[eM,eI]),eU=(0,r.useCallback)(e=>{let t=e?.buffer?.active;if(!t||"function"!=typeof t.getLine)return!0;let r=t.baseY+t.cursorY;for(let e=0;e<6;e+=1){let a=t.getLine(r-e),n=a?.translateToString(!0)??"";if(n.trim())return Z.test(n)}return!1},[]),eF=(0,r.useCallback)(()=>{eS.current&&(eS.current(),eS.current=null)},[]),eO=(0,r.useCallback)((e,t)=>{eF();let r=!1,a=null,n=null,s=null,l=()=>{if(r)return;let e=!eU(t);eQ(t=>t===e?t:e)};l(),s=window.setInterval(l,1e3);try{if("function"==typeof t.onWriteParsed)a=t.onWriteParsed(l)||null;else{let t=e.contentDocument?.querySelector(".xterm-screen")||e.contentDocument?.body;t&&(n=new MutationObserver(l)).observe(t,{childList:!0,subtree:!0,characterData:!0})}}catch(e){console.error("Failed to setup terminal process monitor:",e)}eS.current=()=>{r=!0,null!==s&&(window.clearInterval(s),s=null),a&&"function"==typeof a.dispose&&a.dispose(),n?.disconnect()}},[eU,eF]);(0,r.useEffect)(()=>()=>{eF()},[eF]),(0,r.useEffect)(()=>{eQ(!1),eF()},[_,eF]);let eq=(0,r.useCallback)((e,t,r)=>{if(eu)return!1;let a=F?.trim();return!!a&&!eC.current.injected&&(eC.current.injected=!0,null!==eC.current.timer&&window.clearTimeout(eC.current.timer),eC.current.timer=window.setTimeout(()=>{eC.current.timer=null;try{let n;r.paste(a),(n=e.contentDocument?.querySelector("textarea.xterm-helper-textarea"))?n.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:t})):r.paste("\r")}catch(e){eC.current.injected=!1,console.error("Failed to inject startup script into terminal iframe:",e)}},500),!0)},[eu,F]);(0,r.useEffect)(()=>{if(eu||!F?.trim()||eC.current.injected)return;let e=!1,t=(r=0)=>{if(e||eC.current.injected||r>30)return;if(!eD("terminal"))return void window.setTimeout(()=>t(r+1),200);let a=eg.current;if(a){try{let e=a.contentWindow;if(e?.term)return void eq(a,e,e.term)}catch{}window.setTimeout(()=>t(r+1),200)}};return t(),()=>{e=!0}},[eD,eq,eu,F]);let[eH,ez]=(0,r.useState)("Initializing..."),[eK,eY]=(0,r.useState)("idle"),[eG,eV]=(0,r.useState)(null),[eX,eJ]=(0,r.useState)(!1),[eZ,eQ]=(0,r.useState)(!1),[e0,e1]=(0,r.useState)(!1),[e3,e2]=(0,r.useState)(!1),[e6,e5]=(0,r.useState)(!1),[e7,e4]=(0,r.useState)(a||e),[e9,e8]=(0,r.useState)(!1),[te,tt]=(0,r.useState)(g?.trim()||""),[tr,ta]=(0,r.useState)([]),[tn,ts]=(0,r.useState)(!1),tl=(0,r.useRef)(!1),[ti,to]=(0,r.useState)(!1),[tc,td]=(0,r.useState)({ahead:0,behind:0}),[tu,th]=(0,r.useState)(!0),[tm,tf]=(0,r.useState)(""),[tb,tp]=(0,r.useState)(""),[tx,tg]=(0,r.useState)(!1),[tv,tw]=(0,r.useState)(!1),[ty,tk]=(0,r.useState)(!1),[tj,tN]=(0,r.useState)(.5),[tS,tC]=(0,r.useState)(!1),[tE,tR]=(0,r.useState)(!0),[t$,tL]=(0,r.useState)(!1),[tM,tP]=(0,r.useState)(!1);(0,r.useEffect)(()=>{tP(document.documentElement.classList.contains("dark"));let e=new MutationObserver(e=>{e.forEach(e=>{"class"===e.attributeName&&tP(document.documentElement.classList.contains("dark"))})});return e.observe(document.documentElement,{attributes:!0}),()=>e.disconnect()},[]),(0,r.useEffect)(()=>{let e=e=>{if(e)try{let t=e.contentWindow;t&&t.term&&(t.term.options.theme={...t.term.options.theme||{},...tM?ee:Q})}catch(e){}};e(ex.current),e(eg.current)},[tM]);let[tT,tB]=(0,r.useState)({width:460,height:320}),[tI,tD]=(0,r.useState)(!1),[tA,tW]=(0,r.useState)(!1),t_=(0,r.useRef)({startX:0,startY:0,startWidth:0,startHeight:0}),[tU,tF]=(0,r.useState)("scroll"),[tO,tq]=(0,r.useState)(!1),tH=(0,r.useRef)(0);(0,r.useEffect)(()=>{e4(a||e)},[e,a]),(0,r.useEffect)(()=>{let e=localStorage.getItem(V);if(e)try{tB(JSON.parse(e))}catch(e){console.error("Failed to parse saved terminal size",e)}let t=localStorage.getItem(X);if(t){let e=Number.parseFloat(t);Number.isNaN(e)||tN(et(e))}tR(!0),tW(!0)},[]),(0,r.useEffect)(()=>{if(!tI)return;let e=e=>{let t=t_.current.startX-e.clientX,r=t_.current.startY-e.clientY;tB({width:Math.max(300,Math.min(window.innerWidth-32,t_.current.startWidth+t)),height:Math.max(100,Math.min(window.innerHeight-32,t_.current.startHeight+r))})},t=()=>{tD(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[tI]),(0,r.useEffect)(()=>{tA&&!tI&&localStorage.setItem(V,JSON.stringify(tT))},[tA,tI,tT]),(0,r.useEffect)(()=>{tA&&!tS&&localStorage.setItem(X,String(tj))},[tj,tA,tS]),(0,r.useEffect)(()=>{tA&&localStorage.setItem("viba-right-panel-collapsed",tE?"1":"0")},[tA,tE]),(0,r.useEffect)(()=>{tE&&tC(!1)},[tE]);let tz=(0,r.useCallback)(()=>{tR(e=>!e)},[]),tK=(0,r.useCallback)(()=>{tE&&tR(!1),tk(e=>!e)},[tE]);(0,r.useEffect)(()=>{if(!tS)return;let e=e=>{let t=ey.current;if(!t)return;let r=t.getBoundingClientRect();if(r.width<=0)return;let a=e.clientX-ek.current.startX;tN(et((ek.current.startRatio*r.width+a)/r.width))},t=()=>{tC(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[tS]),(0,r.useEffect)(()=>{if(!t$&&eg.current){let e=eg.current;setTimeout(()=>{try{let t=e.contentWindow;if(t&&t.term){t.term.scrollToBottom?.(),t.focus();let r=e.contentDocument?.querySelector("textarea.xterm-helper-textarea");r&&r.focus()}}catch(e){console.error("Failed to focus/scroll terminal on restore:",e)}},100)}},[t$]);let[tY,tG]=(0,r.useState)("vscode");(0,r.useEffect)(()=>{let e=eo?.trim();if(e)return document.title=`${e} | Viba`,()=>{document.title="Viba"};document.title="Viba"},[eo]),(0,r.useEffect)(()=>{(async()=>{let e=await (0,f.getConfig)();e.selectedIde&&G.some(t=>t.id===e.selectedIde)&&tG(e.selectedIde)})()},[]),(0,r.useEffect)(()=>{tt(g?.trim()||""),ta([])},[g,_]),(0,r.useEffect)(()=>{tF("scroll"),tq(!1),tH.current+=1},[_]);let tV=async e=>{let t=e.target.value;tG(t),await (0,b.updateConfig)({selectedIde:t})},tX=(0,r.useCallback)(async(e,t)=>{if("tmux"!==eh)return!0;let r=++tH.current;t?.silent||tq(!0);let a="scroll"===e,[n,s]=await Promise.all([h(_,"agent",a),h(_,"terminal",a)]);return r===tH.current&&((t?.silent||tq(!1),[n,s].find(e=>!e.success))?(t?.silent||ez(`Failed to switch to ${"scroll"===e?"scroll mode":"text select mode"}`),!1):(t?.silent||ez("scroll"===e?"Terminal mode: Scroll":"Terminal mode: Text Select"),!0))},[_,eh]),tJ=(0,r.useCallback)(e=>{"tmux"!==eh||eL.current[e]||(async()=>{let t=await m(_,e,!1);t.success&&t.applied?eL.current[e]=!0:t.success||console.error(`Failed to hide tmux status bar for ${e}:`,t.error)})()},[_,eh]);(0,r.useEffect)(()=>{"tmux"===eh&&tX("scroll",{silent:!0})},[tX,eh]);let tZ=(0,r.useCallback)(()=>{if("tmux"!==eh||tO)return;let e="scroll"===tU?"select":"scroll";tF(e),(async()=>{await tX(e)||tF(tU)})()},[tX,tO,tU,eh]),tQ=async(t=!0)=>{if(!e||!a||!n||t&&!confirm("Are you sure you want to delete this session? This will remove the branch and worktree."))return!1;eV(null),eY("idle"),ez("Purging session...");try{let e=await s(_);if(!e.success)return console.error("Cleanup failed:",e.error||"Unknown error"),eY("error"),eV(e.error||"Failed to delete session"),!1;(0,H.notifySessionsUpdated)()}catch(e){return console.error("Cleanup request failed:",e),eY("error"),eV(e instanceof Error?e.message:"Unknown error"),!1}return ed(!0),!0},t0=async()=>{await tQ(!0)},t1=(0,r.useCallback)(e=>new Promise(t=>{let r=ex.current;if(!r)return void t(!1);let a=(n=0)=>{if(n>30)return void t(!1);try{let s=r.contentWindow;if(!s||!s.term)return void setTimeout(()=>a(n+1),300);s.term.paste(e);let l=r.contentDocument?.querySelector("textarea.xterm-helper-textarea");l&&l.focus(),s.focus(),t(!0)}catch(e){console.error("Failed to paste into agent iframe:",e),setTimeout(()=>a(n+1),300)}};a()}),[]),t3=(0,r.useCallback)(async e=>{if(0===e.length)return;e8(!0);let t=`${e.join(" ")} `;ez(await t1(t)?`Inserted ${e.length} file path${1===e.length?"":"s"} into agent input`:"Failed to insert file paths into agent input"),e8(!1)},[t1]),t2=(0,r.useCallback)(async t=>{let r=t.map(en).filter(Boolean);if(0===r.length)return null;let n=Array.from(new Set([e,a].map(e=>(e||"").trim()).filter(Boolean)));if(0===n.length)return null;for(let e of n)try{let t=await fetch("/api/component-source/resolve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({componentNames:r,workspaceRoot:e})}),a=await t.json().catch(()=>null);if(!t.ok){console.warn("Component source resolve miss",{componentNames:r,workspaceRoot:e,error:a?.error||t.statusText});continue}let n="string"==typeof a?.sourcePath?a.sourcePath.trim():"",s="string"==typeof a?.resolvedName?a.resolvedName.trim():"";if(n&&s)return{sourcePath:n,resolvedName:s}}catch(e){console.error("Failed to resolve component source path:",e)}return null},[e,a]),t6=(0,r.useCallback)(async()=>{if(_&&!tl.current){tl.current=!0,ts(!0);try{let e=await i(_);e.success?(ta(e.branches??[]),tt(e.baseBranch?.trim()||"")):e.error&&ez(`Failed to load branches: ${e.error}`)}catch(e){console.error("Failed to load base branches:",e)}finally{tl.current=!1,ts(!1)}}},[_]);(0,r.useEffect)(()=>{_&&t6()},[t6,_]);let t5=(0,r.useCallback)(async()=>{if(_)try{let e=await l(_);e.success&&"number"==typeof e.ahead&&"number"==typeof e.behind&&td({ahead:e.ahead,behind:e.behind})}catch(e){console.error("Failed to load branch divergence:",e)}},[_]);(0,r.useEffect)(()=>{if(!_||!te)return void td({ahead:0,behind:0});t5();let e=window.setInterval(()=>{t5()},6e4);return()=>window.clearInterval(e)},[te,t5,_]);let t7=async()=>{if(!_||!te)return!1;e1(!0),ez("Merging session branch...");try{let e=await o(_);if(e.success)return ez(`Merged ${e.branchName} into ${e.baseBranch}`),t5(),!0;return ez(`Merge failed: ${e.error}`),!1}catch(e){return console.error("Merge request failed:",e),ez("Merge failed"),!1}finally{e1(!1)}},t4=async()=>{await t7()},[t9,t8]=(0,r.useState)(!1),re=(0,r.useRef)(null);(0,r.useEffect)(()=>{let e=e=>{re.current&&!re.current.contains(e.target)&&t8(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let rt=async e=>{if(t8(!1),!_)return;let t=e!==te;e2(!0),ez(t?`Updating base to ${e} and rebasing...`:"Rebasing session branch...");try{if(t){let t=await d(_,e);if(!t.success){ez(`Failed to update base branch: ${t.error}`),e2(!1);return}tt(t.baseBranch),await t6()}let r=await c(_);r.success?(ez(`Rebased ${r.branchName} onto ${r.baseBranch}`),t5()):ez(`Rebase failed: ${r.error}`)}catch(e){console.error("Rebase request failed:",e),ez("Rebase failed")}finally{e2(!1)}},rr=(0,r.useCallback)(async(e,t)=>{let r=K(e);if(!r)return ez("Please enter a preview URL"),!1;tf(r),tg(!1),ez(`Loading preview: ${r}`);try{let e=await fetch("/api/preview-proxy/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:r})}),a=await e.json().catch(()=>null);if(!e.ok||!a?.proxyUrl)throw Error(a?.error||"Failed to start preview proxy");return tp(a.proxyUrl),t&&th(!0),ez(`Loaded preview: ${r}`),!0}catch(t){let e=t instanceof Error?t.message:"Failed to load preview";return console.error("Failed to load preview via proxy:",t),ez(`Failed to load preview: ${e}`),!1}},[]),ra=(0,r.useCallback)(()=>{if(!tb)return void ez("Load a preview before picking elements");let e=ev.current?.contentWindow;if(!e)return void ez("Preview is not ready yet");let t=!tx;e.postMessage({type:"viba:preview-picker-toggle",active:t},"*"),tg(t),ez(t?"Picker enabled: click an element in the preview":"Picker disabled")},[tx,tb]),rn=(0,r.useCallback)(e=>{let t=ev.current?.contentWindow;return t?(t.postMessage(e,"*"),!0):(ez("Preview is not ready yet"),!1)},[]),rs=(0,r.useCallback)(e=>{tb?rn({type:"viba:preview-navigation",action:e})&&"reload"===e&&ez("Reloading preview..."):ez("Load a preview before using navigation controls")},[rn,tb]),rl=(0,r.useCallback)(()=>{tb?(tp(""),tg(!1),ez("Preview unloaded")):ez("Preview is already unloaded")},[tb]),ri=(0,r.useCallback)(()=>{rn({type:"viba:preview-location-request"})},[rn]),{attachTerminalLinkHandler:ro}=function({onLoadPreview:e}){let t=(0,r.useCallback)((t,r)=>{let a=K(t);return!!a&&("new_tab"===r?window.open(a,"_blank","noopener,noreferrer"):e(a,!0),!0)},[e]),a=(0,r.useCallback)((e,r,a)=>{r.current?.();let n=e.contentWindow,s=n?.term;if(!n||!s)return;let l=a?.onLinkActivated,i=a?.directOpenBehavior??"preview",o=a?.modifierOpenBehavior??"new_tab",c=e=>e?o:i,d=[],u=e.contentDocument,h={metaKey:!1,ctrlKey:!1,at:0};if(u){let e=e=>{h={metaKey:e.metaKey,ctrlKey:e.ctrlKey,at:Date.now()}};u.addEventListener("mousedown",e,!0),u.addEventListener("click",e,!0),d.push(()=>{u.removeEventListener("mousedown",e,!0),u.removeEventListener("click",e,!0)})}let m=n.open.bind(n);n.open=(...e)=>{let r=c(Date.now()-h.at<1e3&&(h.metaKey||h.ctrlKey));if("string"==typeof e[0]&&e[0].trim())return(l?.(),t(e[0],r))?null:m(...e);if(0===e.length){let e=null;return{opener:null,location:{set href(url){if(l?.(),!t(url,r)&&(e=m())){try{e.opener=null}catch{}e.location.href=url}},get href(){return""}}}}return m(...e)},d.push(()=>{n.open=m});let f=s._core?._linkProviderService?.linkProviders;if(f instanceof Map){for(let e of f.values())if(e&&"object"==typeof e){if("function"==typeof e._handler){let r=e._handler;e._handler=(e,a)=>{l?.(),t(a,c(!!(e?.metaKey||e?.ctrlKey)))||r(e,a)},d.push(()=>{e._handler=r})}if("function"==typeof e.provideLinks){let r=e.provideLinks.bind(e);e.provideLinks=(e,a)=>{r(e,e=>{if(Array.isArray(e))for(let r of e){if(!r||"object"!=typeof r||"function"!=typeof r.activate)continue;let e=r.activate.bind(r);r.activate=(r,a)=>{l?.(),t(a,c(!!(r?.metaKey||r?.ctrlKey)))||e(r,a)}}a(e)})},d.push(()=>{e.provideLinks=r})}}}let b=s.options.linkHandler,p={allowNonHttpProtocols:b?.allowNonHttpProtocols??!1,activate:(e,r,a)=>{l?.(),t(r,c(!!(e?.metaKey||e?.ctrlKey)))||b?.activate?.(e,r,a)},hover:(e,t,r)=>{b?.hover?.(e,t,r)},leave:(e,t,r)=>{b?.leave?.(e,t,r)}};s.options.linkHandler=p,d.push(()=>{s.options.linkHandler=b??null}),r.current=()=>{for(let e of d)e();r.current=null}},[t]);return{handleTerminalLinkOpen:t,attachTerminalLinkHandler:a}}({onLoadPreview:rr});(0,r.useEffect)(()=>{if(!tu||tm.trim())return;let e=window.setTimeout(()=>{ew.current?.focus()},0);return()=>{window.clearTimeout(e)}},[tu,tm]),(0,r.useEffect)(()=>{let t=t=>{if(!ev.current||t.source!==ev.current.contentWindow)return;let r=t.data;if(r&&"object"==typeof r){if("viba:preview-picker-state"===r.type)return void tg(!!r.active);if("viba:preview-picker-ready"===r.type){let e=ev.current?.contentWindow;e&&e.postMessage({type:"viba:preview-location-request"},"*");return}if("viba:preview-link-open"===r.type){"string"==typeof r.url&&r.url.trim().length>0&&window.open(r.url,"_blank","noopener,noreferrer");return}if("viba:preview-location-change"===r.type){"string"==typeof r.url&&r.url.trim().length>0&&tf(r.url);return}if("viba:preview-element-selected"===r.type){let t=r.element&&"object"==typeof r.element?r.element:null,n=Array.isArray(t?.reactComponentStack)?t.reactComponentStack:[],s=((e,t)=>{for(let r of e){if(!r||"object"!=typeof r)continue;let e="string"==typeof r.name?r.name.trim():"";if(!e)continue;let a="string"==typeof r.source?.fileName?r.source.fileName.trim():"",n=a?ea(a,t):null;if(n)return`${e} (${n})`}return null})(n,a||e),l=n[0]&&"object"==typeof n[0]?n[0].name:void 0,i="string"==typeof l&&l.trim().length>0?l.trim():"",o=new Set(["Suspense","ErrorBoundary","Router","AppRouter","LayoutRouter","RenderFromTemplateContext","ScrollAndFocusHandler","InnerLayoutRouter","RedirectErrorBoundary","NotFoundBoundary","LoadingBoundary","ReactDevOverlay","HotReload","AppContainer","Route","Link","Image","OuterLayoutRouter","Head","StringRefs","Fragment","Profiler","StrictMode","SuspenseList","Script","Page","__next_root_layout_boundary__"]),c=Array.from(new Set(n.map(e=>{if(!e||"object"!=typeof e)return"";let t=e.name;return"string"==typeof t?t.trim():""}).filter(e=>!(!e||o.has(e)||e.startsWith("styled.")||e.startsWith("Styled(")))));console.log("Filtered stack component names:",c);let d=s||i||("string"==typeof t?.selector?t.selector:"");if(console.log("Preview selected element:",t),console.log("Preview selected reactComponentStack:",n),console.log("Preview selected identifier:",d),tg(!1),!d)return void ez("Element selected. No identifier was resolved.");(async()=>{let e=s||"";if(!e&&c.length>0){tw(!0);try{let t=await t2(c);t?.resolvedName&&t?.sourcePath&&(e=`${t.resolvedName} (${t.sourcePath})`)}finally{tw(!1)}}if(!e){if(c.length>0)return ez("Element selected, but source file path could not be resolved for the component");e=d}console.log("Final resolved component identifier:",e),ez(await t1(`${e} `)?`Element identifier sent to agent: ${e}`:"Element selected, but failed to send identifier to agent input")})()}}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}},[t1,e,t2,a]),(0,r.useEffect)(()=>{tg(!1)},[tb]);let rc=(0,r.useCallback)(()=>{let e=K(tm.trim()||tb);e?(window.open(e,"_blank","noopener,noreferrer"),ez(`Opened preview in new tab: ${e}`)):ez("Please enter a preview URL")},[tm,tb]);if(!e)return(0,t.jsx)("div",{className:"p-4 text-error dark:bg-[#0d1117] dark:text-red-300",children:"No repository specified"});if("error"===eK)return(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-[#f6f6f8] dark:bg-[#0d1117]",children:(0,t.jsx)("div",{className:"card w-96 border border-slate-200 bg-white shadow-xl dark:border-[#30363d] dark:bg-[#161b22]",children:(0,t.jsxs)("div",{className:"card-body items-center text-center",children:[(0,t.jsx)("h2",{className:"card-title text-error dark:text-red-300",children:"Cleanup failed"}),(0,t.jsx)("p",{className:"text-slate-700 dark:text-slate-300",children:eG||"An unknown error occurred while cleaning up this session."}),(0,t.jsx)("div",{className:"card-actions justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>ed(),children:"Back to Home"})})]})})});let rd=Array.from(new Set([...te?[te]:[],...tr])).filter(e=>e!==n||e===te),ru=!!er?.trim();return(0,t.jsxs)("div",{className:`flex h-screen w-full flex-col overflow-hidden bg-[#f6f6f8] dark:bg-[#0d1117] ${tI||tS?"select-none":""}`,children:[(tI||tS)&&(0,t.jsx)("div",{className:`fixed inset-0 z-[9999] ${tI?"cursor-row-resize":"cursor-col-resize"}`}),(0,t.jsxs)("div",{className:"z-20 flex items-center justify-between border-b border-slate-200 bg-white px-4 py-2 text-xs font-mono shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:text-slate-300",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 px-1 text-slate-600 hover:bg-base-content/10 dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>ed(),title:"Back to Home",children:(0,t.jsx)(C,{className:"w-4 h-4"})}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"opacity-50",children:"Repo:"}),(0,t.jsx)("span",{className:"font-bold",children:(0,q.getBaseName)(e)})]}),_&&(0,t.jsxs)("div",{className:"hidden min-[1200px]:flex min-w-0 items-center gap-2 text-[10px] opacity-70",children:[(0,t.jsx)("span",{children:"Session:"}),(0,t.jsx)("span",{className:"truncate max-w-[220px]",title:_,children:_})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("div",{className:"flex items-center overflow-hidden rounded border border-base-content/20 bg-base-100 dark:border-[#30363d] dark:bg-[#0d1117]",children:(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 rounded-none border-none px-2 text-slate-700 hover:bg-base-content/10 dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>{if(!e||!_)return;let t=`/new?repo=${encodeURIComponent(e)}&prefillFromSession=${encodeURIComponent(_)}`;window.open(t,"_blank","noopener,noreferrer")},title:"Start a new attempt in a new tab with this session context",children:[(0,t.jsx)(L.Plus,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:ep,children:"New Attempt"})]})}),(0,t.jsxs)("div",{className:"relative flex items-center rounded border border-base-content/20 bg-base-100 dark:border-[#30363d] dark:bg-[#0d1117]",ref:re,children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 rounded-none rounded-l border-none px-2 text-slate-700 hover:bg-base-content/10 dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>{t8(!t9)},disabled:e3||e0||ti,title:"Select base branch and rebase",children:[e3?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(w,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:ep,children:"Rebase"}),(0,t.jsx)($.ChevronDown,{className:"w-3 h-3 opacity-50 ml-0.5"})]}),t9&&(0,t.jsxs)("div",{className:"dropdown-content absolute left-0 top-full z-50 mt-1 flex max-h-80 w-64 flex-col overflow-hidden rounded-box border border-base-content/20 bg-base-200 p-0 shadow-xl dark:border-[#30363d] dark:bg-[#161b22] dark:text-slate-300",children:[(0,t.jsxs)("div",{className:"flex shrink-0 items-center justify-between border-b border-base-content/10 bg-base-200 px-4 py-2 text-[10px] font-bold uppercase tracking-wider opacity-50 dark:border-[#30363d] dark:bg-[#161b22]",children:[(0,t.jsx)("span",{children:"Select Base Branch"}),(tn||ti)&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})]}),(0,t.jsxs)("ul",{className:"menu custom-scrollbar w-full flex-nowrap overflow-y-auto overflow-x-hidden p-0",children:[rd.length>0?rd.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("button",{onClick:()=>rt(e),className:`flex max-w-full items-center justify-between truncate rounded-none py-2 text-xs hover:bg-base-content/10 dark:hover:bg-[#30363d]/60 ${e===te?"active font-bold":""}`,title:e,children:[(0,t.jsx)("span",{className:"truncate",children:e}),e===te&&(0,t.jsx)("span",{className:"opacity-70 text-[10px] ml-2 shrink-0",children:"(Current)"})]})},e)):(0,t.jsx)("li",{className:"text-xs px-4 py-2 opacity-50 italic text-center",children:"No other branches found"}),(0,t.jsx)("div",{className:"divider my-1 opacity-50 dark:before:bg-[#30363d] dark:after:bg-[#30363d]"}),(0,t.jsx)("li",{children:(0,t.jsx)("button",{onClick:()=>void t6(),className:"text-[10px] justify-center opacity-70 hover:opacity-100",children:"Refresh Branches"})})]})]})]}),(0,t.jsx)("div",{className:"h-4 w-[1px] bg-base-content/10 dark:bg-[#30363d]"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs btn-success h-6 min-h-6 rounded-none border-none px-2 hover:border-transparent hover:bg-success/20 dark:text-emerald-300",onClick:t4,disabled:e0||e3||ti||!te,title:te?`Merge current branch (${n}) into target branch (${te})`:"Target branch unavailable for this session",children:[e0?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(y,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:ep,children:"Merge"})]}),(0,t.jsx)("div",{className:"h-4 w-[1px] bg-base-content/10 dark:bg-[#30363d]"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-error btn-xs h-6 min-h-6 rounded-none rounded-r border-none px-2 hover:border-transparent hover:bg-error/20 dark:text-red-300",onClick:t0,disabled:e0||e3||!a,title:"Clean up and exit",children:[(0,t.jsx)(p.Trash2,{className:"w-3 h-3"}),(0,t.jsx)("span",{className:ep,children:"Delete"})]})]}),(0,t.jsx)("div",{className:"flex items-center overflow-hidden rounded border border-base-content/20 bg-base-100 dark:border-[#30363d] dark:bg-[#0d1117]",children:(0,t.jsxs)("button",{type:"button",className:`btn btn-ghost btn-xs h-6 min-h-6 rounded-none border-none px-2 hover:bg-base-content/10 dark:hover:bg-[#30363d]/60 ${ty?"bg-slate-100 text-slate-900 dark:bg-[#30363d] dark:text-slate-100":"text-slate-700 dark:text-slate-300"}`,onClick:tK,"aria-pressed":ty,title:ty?"Show preview and terminal panel":"Show repository viewer",children:[(0,t.jsx)(k.GitBranch,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:ep,children:"Repo"})]})}),te&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs opacity-80",title:`Divergence against ${te}`,children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)(j,{className:"w-3 h-3"}),tc.ahead]}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)(N,{className:"w-3 h-3"}),tc.behind]})]}),(0,t.jsx)("div",{className:"mx-2 hidden h-4 w-[1px] bg-base-content/20 dark:bg-[#30363d] min-[1200px]:block"}),(0,t.jsxs)("div",{className:"hidden min-[1200px]:flex min-w-0 max-w-[280px] items-center gap-2",children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${eH.includes("Error")||eH.includes("failed")?"bg-error":eH.includes("started")||eH.includes("Merged")||eH.includes("Rebased")||eH.includes("sent")?"bg-success":"bg-warning"}`}),(0,t.jsx)("span",{className:"truncate",title:eH,children:eH})]})]})]}),(0,t.jsxs)("div",{ref:ey,className:`relative flex min-h-0 flex-1 overflow-x-hidden bg-[#f6f6f8] p-3 dark:bg-[#0d1117] ${tE?"gap-0":"gap-3"}`,children:[(0,t.jsxs)("div",{className:"agent-activity-panel flex h-full min-w-0 flex-col overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm transition-[width] duration-300 ease-in-out dark:border-[#30363d] dark:bg-[#161b22]",style:{width:tE?"100%":`${100*tj}%`},children:[(0,t.jsxs)("div",{className:"flex h-9 items-center justify-between gap-3 border-b border-slate-200 px-3 text-[11px] font-semibold text-slate-600 dark:border-[#30363d] dark:bg-[#161b22] dark:text-slate-400",children:[(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-2 uppercase tracking-wide",children:[(0,t.jsx)("span",{className:"h-2 w-2 rounded-full bg-blue-500"}),"Agent Activity"]}),(0,t.jsxs)("div",{className:"flex min-w-0 items-center justify-end gap-2 overflow-x-auto py-1 text-xs font-medium normal-case",children:[(0,t.jsxs)("div",{className:"flex shrink-0 items-center overflow-hidden rounded border border-slate-200 bg-white dark:border-[#30363d] dark:bg-[#0d1117]",children:[(0,t.jsx)("select",{className:"select select-xs h-6 min-h-6 rounded-none border-none bg-slate-100 pr-7 text-slate-700 focus:outline-none dark:bg-[#161b22] dark:text-slate-300",value:tY,onChange:tV,children:G.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))}),(0,t.jsx)("div",{className:"h-4 w-[1px] bg-slate-200 dark:bg-[#30363d]"}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 rounded-none border-none px-2 text-slate-700 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>{if(!a)return;let e=G.find(e=>e.id===tY);if(!e)return;let t=`${e.protocol}://file/${encodeURI(a)}`;window.open(t,"_blank")},title:`Open in ${G.find(e=>e.id===tY)?.name}`,"aria-label":"Open in IDE",children:[(0,t.jsx)(x.ExternalLink,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"agent-activity-action-label",children:"Open in IDE"})]})]}),(0,t.jsx)("div",{className:"flex shrink-0 items-center overflow-hidden rounded border border-slate-200 bg-white dark:border-[#30363d] dark:bg-[#0d1117]",children:(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 rounded-none border-none px-2 text-slate-700 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>e5(!0),disabled:e9,title:"Browse files and insert absolute paths into the agent input","aria-label":"Add files",children:[e9?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(S,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"agent-activity-action-label",children:"Add Files"})]})}),(0,t.jsx)("div",{className:"flex shrink-0 items-center overflow-hidden rounded border border-slate-200 bg-white dark:border-[#30363d] dark:bg-[#0d1117]",children:(0,t.jsx)("button",{className:`btn btn-ghost btn-xs h-6 min-h-6 w-7 rounded-none border-none p-0 text-slate-700 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-[#30363d]/60 ${"select"===tU?"text-warning":""}`,onClick:tZ,disabled:"tmux"!==eh||tO,title:"tmux"===eh?"scroll"===tU?"Switch to text select mode for easier copy":"Switch to scroll mode for wheel scrollback":"Mode toggle is available only in tmux persistence mode","aria-label":"scroll"===tU?"Switch to text mode":"Switch to scroll mode",children:tO?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):"scroll"===tU?(0,t.jsx)(I,{className:"h-3.5 w-3.5"}):(0,t.jsx)(D,{className:"h-3.5 w-3.5"})})})]})]}),(0,t.jsx)("iframe",{ref:ex,src:eE,className:`h-full w-full border-none ${tI||tS?"pointer-events-none":""}`,allow:"clipboard-read; clipboard-write",onLoad:()=>{if(!ex.current)return;let t=ex.current;try{t.contentWindow}catch(e){ez("Error: Cross-Origin access blocked. Ensure proxy is working.");return}t.contentWindow&&(t.contentWindow.onbeforeunload=null,t.contentWindow.addEventListener("beforeunload",e=>{e.stopImmediatePropagation()},!0)),ez("Connecting to terminal...");let r=(n=0)=>{if(n>30)return void ez("Timeout waiting for terminal to be ready");try{let s=t.contentWindow;if(s&&s.term){tJ("agent");let l=s.term;if(ro(t,ej,{directOpenBehavior:"new_tab",modifierOpenBehavior:"new_tab"}),!l.__vibaClearLineShortcutInstalled&&"function"==typeof l.attachCustomKeyEventHandler){let e=l.customKeyEventHandler;l.attachCustomKeyEventHandler(r=>{if("keydown"===r.type&&r.metaKey&&("Backspace"===r.key||"Delete"===r.key)){let e=l._core?.coreService;if(e&&"function"==typeof e.triggerDataEvent)e.triggerDataEvent("\x15",!0);else{let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e?e.dispatchEvent(new KeyboardEvent("keydown",{bubbles:!0,cancelable:!0,key:"u",keyCode:85,ctrlKey:!0,view:s})):l.paste("\x15")}return!1}if("function"==typeof e)try{return!1!==e.call(l,r)}catch(e){console.error("Existing terminal key handler failed:",e)}return!0}),l.__vibaClearLineShortcutInstalled=!0}try{l.options.theme={...l.options.theme||{},...tM?ee:Q}}catch{}let i=eD("agent"),o=!!eu&&"tmux"===eh;if(i||o){o&&!i?(e_("agent"),ez("Attached to persisted terminal")):ez("Reconnected to terminal"),s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}if(!eU(l)&&n<10)return void setTimeout(()=>r(n+1),200);if(!eA("agent")){ez("Reconnected to terminal"),s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}let c=a||e,d=`cd ${Y(c)}`;l.paste(d);let h=()=>{let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e?e.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:s})):l.paste("\r")};if(h(),e_("agent"),U){let t=async()=>{let t="",r=e=>`if [ -n "$OPENAI_API_KEY" ]; then printenv OPENAI_API_KEY | codex login --with-api-key || exit 1; fi; ${e}`;if(eu)t=r("codex resume --last --sandbox danger-full-access --ask-for-approval on-request --search");else{let n=es?.trim()||"",s=(el&&el.length>0?el:(ei||[]).map(t=>`${a||e}-attachments/${t}`)).map(e=>e.trim()).filter(Boolean),l=Array.from(new Set(s)),i=[];n&&i.push(n),l.length>0&&i.push(["Attachments:",...l.map(e=>`- ${e}`)].join("\n"));let o=i.join("\n\n"),c="";if(o){let e=[];"plan"===ec&&e.push("Plan mode: inspect the relevant code first, present a concrete implementation plan, and wait for explicit user approval before any file edits or write commands."),e.push("After each round, if work is complete and files changed, commit all changes without confirmation. Use a commit message with a clear title and a detailed body explaining what changed and why. If GITHUB_TOKEN or GITLAB_TOKEN is set, push the current branch after committed rounds and create (or update) a pull/merge request with an appropriate title and description; include the pull/merge request link in the first push reply."),e.push("For visual web tasks, use the `agent-browser` skill (https://skills.sh/vercel-labs/agent-browser/agent-browser)."),e.push("For bugfix/debugging tasks, use the `systematic-debugging` skill (https://github.com/obra/superpowers)."),e.push("When working on a visual-related feature or bugfix in a web project, after coding is complete, use `agent-browser` or equivalent Chrome MCP tooling to load the relevant page, take screenshot(s), and include them as evidence in the pull/merge request."),e.push("When your task is completed or you need user attention (for plan approval, permissions, or blockers), send a notification to the matching Viba session.");let t=`${window.location.origin}/api/notifications`;e.push(`Notification API endpoint: ${t} (POST JSON with sessionId, title, and description).`),e.push(`Notification payload template: {"sessionId":"${_}","title":"<short title>","description":"<clear detail about completion or required attention>"}.`);let r=["# Instructions\n",e.map(e=>`- ${e}`).join("\n"),"\n# Task\n",o].join("\n");try{let e=await u(_,r);e.success&&e.filePath?c=` "$(cat ${Y(e.filePath)})"`:(console.error("Failed to write prompt file, falling back to inline prompt",e.error),c=` ${Y(r)}`)}catch(e){console.error("Exception writing prompt file",e),c=` ${Y(r)}`}}let d=`codex --sandbox danger-full-access --ask-for-approval on-request --search${c}`;t=r(d)}t&&(l.paste(t),h(),ez(eu?"Resumed session with codex":"Session started with codex"),!eu&&em&&em())};setTimeout(()=>t(),500)}else ez(`Session started ${a?"(Worktree)":""}`),!eu&&em&&em();s.focus();let m=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");m&&m.focus()}else setTimeout(()=>r(n+1),500)}catch(e){eW("agent"),console.error("Access error during injection:",e),ez("Error accessing terminal: "+String(e))}};setTimeout(()=>r(),1e3)}})]}),(0,t.jsx)("div",{className:`relative h-full shrink-0 rounded transition-all duration-300 ease-in-out ${tE?"w-0 cursor-default opacity-0 pointer-events-none":"w-2 cursor-col-resize bg-slate-200 opacity-100 hover:bg-primary/40 dark:bg-[#30363d] dark:hover:bg-primary/60"}`,onMouseDown:e=>{tE||(e.preventDefault(),tC(!0),ek.current={startX:e.clientX,startRatio:tj})},role:tE?void 0:"separator","aria-orientation":tE?void 0:"vertical","aria-label":tE?void 0:"Resize preview panel","aria-hidden":tE,title:tE?void 0:"Drag to resize preview panel",children:!tE&&(0,t.jsx)("div",{className:"absolute left-1/2 top-1/2 h-12 w-[2px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-slate-400 dark:bg-slate-500"})}),(0,t.jsxs)("div",{className:`relative h-full transition-[width,min-width,flex-basis] duration-300 ease-in-out ${tE?"w-0 min-w-0 flex-none":"min-w-[360px] flex-1"}`,children:[(0,t.jsx)("button",{className:"btn btn-ghost btn-xs absolute left-0 top-3 z-20 h-7 w-7 min-h-7 -translate-x-1/2 rounded-full border border-slate-200 bg-white/95 p-0 text-slate-600 shadow-sm hover:bg-slate-100 dark:border-[#30363d] dark:bg-[#161b22]/95 dark:text-slate-300 dark:hover:bg-[#30363d]/80",onClick:tz,type:"button",title:tE?"Expand right panel":"Collapse right panel","aria-label":tE?"Expand right panel":"Collapse right panel","aria-pressed":tE,children:tE?(0,t.jsx)(C,{className:"h-4 w-4"}):(0,t.jsx)(E.ChevronRight,{className:"h-4 w-4"})}),!tE&&(0,t.jsx)("div",{className:"absolute inset-y-0 left-0 flex h-full w-full flex-col overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm dark:border-[#30363d] dark:bg-[#161b22]",children:ty?(0,t.jsx)(O,{repoPath:a||e,branchHint:n,baseBranchHint:te||g}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{className:"min-h-0 flex flex-1 flex-col",children:[(0,t.jsxs)("form",{className:"flex h-9 items-center gap-2 border-b border-slate-200 bg-white px-3 dark:border-[#30363d] dark:bg-[#161b22]",onSubmit:e=>{e.preventDefault(),rr(tm,!0)},children:[(0,t.jsxs)("div",{className:"mr-1 flex gap-1.5",children:[(0,t.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-red-400"}),(0,t.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-yellow-400"}),(0,t.jsx)("span",{className:"h-2.5 w-2.5 rounded-full bg-green-400"})]}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0 text-slate-500 hover:bg-slate-100 dark:text-slate-400 dark:hover:bg-[#30363d]/60",type:"button",onClick:()=>rs("back"),disabled:!tb,title:"Go back","aria-label":"Go back",children:(0,t.jsx)(P.ArrowLeft,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0 text-slate-500 hover:bg-slate-100 dark:text-slate-400 dark:hover:bg-[#30363d]/60",type:"button",onClick:()=>rs("forward"),disabled:!tb,title:"Go forward","aria-label":"Go forward",children:(0,t.jsx)(T,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0 text-slate-500 hover:bg-slate-100 dark:text-slate-400 dark:hover:bg-[#30363d]/60",type:"button",onClick:()=>rs("reload"),disabled:!tb,title:"Reload preview","aria-label":"Reload preview",children:(0,t.jsx)(B,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0 text-slate-500 hover:bg-slate-100 dark:text-slate-400 dark:hover:bg-[#30363d]/60",type:"button",onClick:rl,disabled:!tb,title:"Unload preview","aria-label":"Unload preview",children:(0,t.jsx)(A.X,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("input",{ref:ew,type:"text",className:"input input-xs h-7 min-h-7 w-full border-slate-200 bg-slate-100 font-mono text-slate-700 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-300 dark:placeholder:text-slate-500",value:tm,onChange:e=>tf(e.target.value),placeholder:"http://127.0.0.1:3000",spellCheck:!1}),(0,t.jsx)("button",{className:`btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0 ${tx?"text-success":"text-slate-500 dark:text-slate-400"} hover:bg-slate-100 dark:hover:bg-[#30363d]/60`,type:"button",onClick:ra,disabled:!tb||tv,title:tx?"Disable picker":"Pick element from preview",children:tv?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs w-3 h-3"}):(0,t.jsx)(M,{className:"h-3 w-3"})}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-7 min-h-7 w-7 p-0 text-slate-500 hover:bg-slate-100 dark:text-slate-400 dark:hover:bg-[#30363d]/60",type:"button",onClick:rc,title:"Open preview in new tab","aria-label":"Open preview in new tab",children:(0,t.jsx)(x.ExternalLink,{className:"h-3.5 w-3.5"})})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 bg-slate-50 dark:bg-[#0d1117]",children:tu?tb?(0,t.jsx)("iframe",{ref:ev,src:tb,className:`h-full w-full border-none ${tI||tS?"pointer-events-none":""}`,title:"Dev server preview",onLoad:ri,sandbox:"allow-forms allow-modals allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-downloads"}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-6 text-center text-xs text-slate-500 dark:text-slate-400",children:"Run the dev server, or enter a URL above to load a preview."}):(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-3 px-6 text-center text-xs text-slate-500 dark:text-slate-400",children:[(0,t.jsx)("p",{children:"Preview is hidden. Use the header Preview button to show it."}),(0,t.jsx)("button",{type:"button",className:"btn btn-xs border-slate-200 bg-white text-slate-700 hover:bg-slate-50 dark:border-[#30363d] dark:bg-[#161b22] dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>th(!0),children:"Show Preview"})]})}),!t$&&(0,t.jsx)("div",{className:"flex h-2 cursor-row-resize items-center justify-center border-y border-slate-200 bg-slate-100 dark:border-[#30363d] dark:bg-[#0d1117]",onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),tD(!0),t_.current={startX:e.clientX,startY:e.clientY,startWidth:tT.width,startHeight:tT.height}},role:"separator","aria-orientation":"horizontal","aria-label":"Resize build output panel",title:"Drag to resize build output panel",children:(0,t.jsx)(R,{className:"h-3 w-3 text-slate-400 dark:text-slate-500"})}),(0,t.jsxs)("div",{className:`${t$?"h-9":"min-h-[160px]"} flex shrink-0 flex-col bg-slate-50 dark:bg-[#161b22]`,style:{height:t$?36:tT.height},children:[(0,t.jsxs)("div",{className:"flex h-9 items-center justify-between border-t border-slate-200 px-3 text-xs font-semibold text-slate-700 dark:border-[#30363d] dark:text-slate-300",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 uppercase tracking-wide",children:[(0,t.jsx)("span",{className:"h-2 w-2 rounded-full bg-amber-500"}),"Terminal"]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 border-none px-2 text-slate-700 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>{let e=er?.trim();if(!e||!eg.current||eZ)return;tL(!1);let t=eg.current;eJ(!0),ez("Starting dev server...");let r=(a=0)=>{if(a>30){ez("Failed to start dev server: terminal is not ready"),eJ(!1);return}try{let n=t.contentWindow;if(n&&n.term){n.term.paste(e);let r=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");r?r.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:n})):n.term.paste("\r"),n.focus(),r&&r.focus(),ez("Dev server start command sent"),eJ(!1)}else setTimeout(()=>r(a+1),300)}catch(e){console.error("Dev server injection error",e),ez("Failed to start dev server"),eJ(!1)}};r()},disabled:!ru||eX||eZ,title:ru?eZ?"A process is already running in the terminal":"Run dev server script in terminal":"Set a dev server script to enable this button",type:"button",children:[eX?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(v,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"hidden min-[1700px]:inline",children:"Dev"})]}),(0,t.jsx)("button",{className:"btn btn-ghost btn-xs h-6 min-h-6 w-7 border-none p-0 text-slate-700 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-[#30363d]/60",onClick:()=>tL(e=>!e),title:t$?"Expand terminal":"Collapse terminal","aria-label":t$?"Expand terminal":"Collapse terminal",type:"button",children:(0,t.jsx)($.ChevronDown,{className:`h-4 w-4 transition-transform ${t$?"rotate-180":""}`})})]})]}),(0,t.jsx)("div",{className:`${t$?"h-0 overflow-hidden":"min-h-0 flex-1 overflow-hidden border-t border-slate-200 bg-white dark:border-[#30363d] dark:bg-[#0d1117]"}`,children:(0,t.jsx)("iframe",{ref:eg,src:eR,className:`h-full w-full border-none ${tI||tS?"pointer-events-none":""}`,allow:"clipboard-read; clipboard-write",onLoad:()=>{if(!eg.current)return;let t=eg.current;eF(),eQ(!1);try{t.contentWindow}catch(e){console.error("Secondary terminal: Cross-Origin access blocked.");return}t.contentWindow&&(t.contentWindow.onbeforeunload=null,t.contentWindow.addEventListener("beforeunload",e=>{e.stopImmediatePropagation()},!0));let r=(n=0)=>{if(!(n>30))try{let s=t.contentWindow;if(s&&s.term){let l;tJ("terminal");let i=s.term;ro(t,eN,{onLinkActivated:()=>tL(!0),directOpenBehavior:"preview",modifierOpenBehavior:"new_tab"});try{i.options.theme={...i.options.theme||{},...tM?ee:Q}}catch{}eO(t,i);try{let e=()=>{let e=i.buffer?.active,t="number"==typeof e?.baseY?e.baseY:0;"number"==typeof e?.viewportY&&e.viewportY,i.scrollToBottom?.()};if("function"==typeof i.onWriteParsed)i.onWriteParsed(e);else{let r=t.contentDocument?.querySelector(".xterm-screen")||t.contentDocument?.body;r&&new MutationObserver(e).observe(r,{childList:!0,subtree:!0,characterData:!0})}}catch(e){console.error("Failed to setup auto-scroll:",e)}let o=eD("terminal"),c=!!eu&&"tmux"===eh;if(o||c){c&&!o&&e_("terminal"),o&&eq(t,s,i),s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}if(!eU(i)&&n<10)return void setTimeout(()=>r(n+1),200);if(!eA("terminal")){s.focus();let e=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");e&&e.focus();return}let d=a||e,u=`cd ${Y(d)}`;i.paste(u),(l=t.contentDocument?.querySelector("textarea.xterm-helper-textarea"))?l.dispatchEvent(new KeyboardEvent("keypress",{bubbles:!0,cancelable:!0,charCode:13,keyCode:13,key:"Enter",view:s})):i.paste("\r"),e_("terminal"),eq(t,s,i),s.focus();let h=t.contentDocument?.querySelector("textarea.xterm-helper-textarea");h&&h.focus()}else setTimeout(()=>r(n+1),500)}catch(e){eQ(!1),eW("terminal"),console.error("Secondary terminal injection error",e)}};setTimeout(()=>r(),1e3)}})})]})]})})})]})]}),e6&&(0,t.jsx)(W.default,{initialPath:e7,worktreePath:a,onPathChange:e4,onConfirm:e=>{e5(!1),t3(e)},onCancel:()=>e5(!1)})]})}let el=(0,n.createServerReference)("40873d33d73dfed79b33eef8e4fc285f3bacd1c2c6",n.callServer,void 0,n.findSourceMapURL,"consumeSessionLaunchContext"),ei=(0,n.createServerReference)("4099ecafa3cbde3c39baecdacbcacab9ffe05762d3",n.callServer,void 0,n.findSourceMapURL,"getSessionMetadata"),eo=(0,n.createServerReference)("402464c5c866ef8494d748952b4ba26f6692c7a923",n.callServer,void 0,n.findSourceMapURL,"markSessionInitialized"),ec=(0,n.createServerReference)("7ffd1d7a123a75b75602aec263d51e6f4fb4f60132",n.callServer,void 0,n.findSourceMapURL,"getSessionTerminalSources");var ed=e.i(36263);function eu(){let e=(0,a.useParams)().sessionId,n=Array.isArray(e)?e[0]:e,s=(0,a.useRouter)(),[l,i]=(0,r.useState)(null),[o,c]=(0,r.useState)(!0),[d,u]=(0,r.useState)(null),[h,m]=(0,r.useState)(null),[f,b]=(0,r.useState)(void 0),[p,x]=(0,r.useState)(void 0),[g,v]=(0,r.useState)(void 0),[w,y]=(0,r.useState)(void 0),[k,j]=(0,r.useState)(void 0),[N,S]=(0,r.useState)([]),[C,E]=(0,r.useState)(!0),[R,$]=(0,r.useState)("shell"),L=(0,r.useCallback)(()=>{if(!n)return;window.focus();let e=`/session/${n}`;window.location.pathname!==e&&s.push(e)},[s,n]);(0,r.useEffect)(()=>(document.documentElement.classList.add("session-page"),()=>{document.documentElement.classList.remove("session-page")}),[]),(0,r.useEffect)(()=>{if(!n)return;let e=!1,t=null,r=null,a=0,s=null,l=()=>{null!==r&&(window.clearTimeout(r),r=null)},i=()=>{if(e)return;let t=Math.min(1e4,1e3*2**a);a+=1,r=window.setTimeout(()=>{r=null,c()},t)},o=async e=>{if(!("Notification"in window))return;let t=Notification.permission;"default"===t&&(t=await Notification.requestPermission()),"granted"===t&&(s&&s.close(),(s=new Notification(e.title,{body:e.description,tag:`viba-session-notification-${e.sessionId}`})).onclick=e=>{e.preventDefault(),L(),s?.close()})},c=async()=>{try{let r=await fetch(`/api/notifications/socket?sessionId=${encodeURIComponent(n)}`,{cache:"no-store"});if(!r.ok)throw Error("Failed to initialize notification socket");let s=await r.json();if(!s.wsUrl)throw Error("Notification socket URL missing");if(e)return;(t=new WebSocket(s.wsUrl)).onopen=()=>{a=0,l()},t.onerror=()=>{t?.close()},t.onclose=()=>{e||i()},t.onmessage=e=>{try{let t=JSON.parse(e.data);if("session-notification"!==t.type||t.sessionId!==n||"string"!=typeof t.title||!t.title.trim()||"string"!=typeof t.description||!t.description.trim()||"string"!=typeof t.timestamp)return;o(t)}catch{}}}catch{i()}};return c(),()=>{e=!0,l(),t?.close(),s?.close()}},[L,n]),(0,r.useEffect)(()=>{n&&(async()=>{try{m(null);let e=await (0,ed.startTtydProcess)();if(!e.success){u("Failed to start terminal service"),c(!1);return}$("tmux"===e.persistenceMode?"tmux":"shell");let t=await ei(n);if(!t){u("Session not found"),c(!1);return}i(t);let r=await ec(t.sessionName,t.repoPath,t.agent);if(m(r),!1===t.initialized){let e=await el(n);if(e.success&&e.context){let r=e.context;b(r.initialMessage),x(r.startupScript),v(r.title),y(r.agentProvider),j(r.sessionMode);let a=(r.attachmentPaths||[]).map(e=>e.trim()).filter(Boolean),n=a.length>0?Array.from(new Set(a)):Array.from(new Set((r.attachmentNames||[]).map(e=>e.trim()).filter(Boolean).map(e=>`${t.worktreePath}-attachments/${e}`)));S(n)}E(!1)}else E(!0);c(!1)}catch(e){console.error("Failed to load session:",e),u("Failed to load session"),c(!1)}})()},[n]);let M=e=>{e?window.location.href="/":s.push("/")},P=async()=>{n&&await eo(n)};return o?(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-[#f6f6f8] dark:bg-[#0d1117]",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsx)("p",{className:"opacity-60 dark:text-slate-400",children:"Loading session..."})]})}):d||!l?(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-[#f6f6f8] dark:bg-[#0d1117]",children:(0,t.jsx)("div",{className:"card w-96 border border-slate-200 bg-white shadow-xl dark:border-[#30363d] dark:bg-[#161b22]",children:(0,t.jsxs)("div",{className:"card-body items-center text-center",children:[(0,t.jsx)("h2",{className:"card-title text-error dark:text-red-300",children:"Error"}),(0,t.jsx)("p",{className:"text-slate-700 dark:text-slate-300",children:d||"Session not found"}),(0,t.jsx)("div",{className:"card-actions justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>M(),children:"Back to Home"})})]})})}):h?(0,t.jsx)(es,{repo:l.repoPath,worktree:l.worktreePath,branch:l.branchName,baseBranch:l.baseBranch,sessionName:l.sessionName,agent:w||l.agent,startupScript:p,devServerScript:l.devServerScript,initialMessage:f,attachmentPaths:N,title:g||l.title,sessionMode:k,onExit:M,isResume:C,terminalPersistenceMode:R,onSessionStart:P,agentTerminalSrc:h.agentTerminalSrc,floatingTerminalSrc:h.floatingTerminalSrc}):(0,t.jsx)("div",{className:"flex h-screen w-full items-center justify-center bg-[#f6f6f8] dark:bg-[#0d1117]",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsx)("p",{className:"opacity-60 dark:text-slate-400",children:"Initializing terminals..."})]})})}e.s(["default",()=>eu],36438)}]);
|