viba-cli 0.37.0 → 0.38.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/app-path-routes-manifest.json +18 -0
- package/.next/build-manifest.json +7 -6
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/prerender-manifest.json +123 -3
- package/.next/routes-manifest.json +108 -0
- package/.next/server/app/_global-error/page/build-manifest.json +5 -4
- 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/page_client-reference-manifest.js +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/build-manifest.json +5 -4
- package/.next/server/app/_not-found/page.js +2 -2
- 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 +18 -16
- package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -16
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -4
- 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 +3 -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/app-paths-manifest.json +3 -0
- package/.next/server/app/api/credentials/github/repos/route/build-manifest.json +11 -0
- package/.next/server/app/api/credentials/github/repos/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/credentials/github/repos/route.js +8 -0
- package/.next/server/app/api/credentials/github/repos/route.js.map +5 -0
- package/.next/server/app/api/credentials/github/repos/route.js.nft.json +1 -0
- package/.next/server/app/api/credentials/github/repos/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/credentials/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/credentials/route/build-manifest.json +11 -0
- package/.next/server/app/api/credentials/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/credentials/route.js +8 -0
- package/.next/server/app/api/credentials/route.js.map +5 -0
- package/.next/server/app/api/credentials/route.js.nft.json +1 -0
- package/.next/server/app/api/credentials/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/custom-scripts/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/custom-scripts/route/build-manifest.json +11 -0
- package/.next/server/app/api/custom-scripts/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/custom-scripts/route.js +10 -0
- package/.next/server/app/api/custom-scripts/route.js.map +5 -0
- package/.next/server/app/api/custom-scripts/route.js.nft.json +1 -0
- package/.next/server/app/api/custom-scripts/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/file-thumbnail/route.js +1 -1
- package/.next/server/app/api/file-thumbnail/route.js.nft.json +1 -1
- package/.next/server/app/api/fs/open/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/fs/open/route/build-manifest.json +11 -0
- package/.next/server/app/api/fs/open/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/fs/open/route.js +8 -0
- package/.next/server/app/api/fs/open/route.js.map +5 -0
- package/.next/server/app/api/fs/open/route.js.nft.json +1 -0
- package/.next/server/app/api/fs/open/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/fs/open-terminal/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/fs/open-terminal/route/build-manifest.json +11 -0
- package/.next/server/app/api/fs/open-terminal/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/fs/open-terminal/route.js +8 -0
- package/.next/server/app/api/fs/open-terminal/route.js.map +5 -0
- package/.next/server/app/api/fs/open-terminal/route.js.nft.json +1 -0
- package/.next/server/app/api/fs/open-terminal/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/action/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/action/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/action/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/action/route.js +10 -0
- package/.next/server/app/api/git/action/route.js.map +5 -0
- package/.next/server/app/api/git/action/route.js.nft.json +1 -0
- package/.next/server/app/api/git/action/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/branches/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/branches/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/branches/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/branches/route.js +10 -0
- package/.next/server/app/api/git/branches/route.js.map +5 -0
- package/.next/server/app/api/git/branches/route.js.nft.json +1 -0
- package/.next/server/app/api/git/branches/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/diff/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/diff/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/diff/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/diff/route.js +9 -0
- package/.next/server/app/api/git/diff/route.js.map +5 -0
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/log/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/log/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/log/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/log/route.js +10 -0
- package/.next/server/app/api/git/log/route.js.map +5 -0
- package/.next/server/app/api/git/log/route.js.nft.json +1 -0
- package/.next/server/app/api/git/log/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/status/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/status/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/status/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/status/route.js +10 -0
- package/.next/server/app/api/git/status/route.js.map +5 -0
- package/.next/server/app/api/git/status/route.js.nft.json +1 -0
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/preview-proxy/start/route.js +2 -2
- package/.next/server/app/api/preview-proxy/start/route.js.nft.json +1 -1
- package/.next/server/app/api/repos/clone/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/repos/clone/route/build-manifest.json +11 -0
- package/.next/server/app/api/repos/clone/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/repos/clone/route.js +9 -0
- package/.next/server/app/api/repos/clone/route.js.map +5 -0
- package/.next/server/app/api/repos/clone/route.js.nft.json +1 -0
- package/.next/server/app/api/repos/clone/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/repos/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/repos/route/build-manifest.json +11 -0
- package/.next/server/app/api/repos/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/repos/route.js +9 -0
- package/.next/server/app/api/repos/route.js.map +5 -0
- package/.next/server/app/api/repos/route.js.nft.json +1 -0
- package/.next/server/app/api/repos/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/settings/route/build-manifest.json +11 -0
- package/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/settings/route.js +8 -0
- package/.next/server/app/api/settings/route.js.map +5 -0
- package/.next/server/app/api/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/settings/route_client-reference-manifest.js +2 -0
- package/.next/server/app/credentials/page/build-manifest.json +5 -4
- package/.next/server/app/credentials/page/server-reference-manifest.json +7 -7
- package/.next/server/app/credentials/page.js +4 -3
- 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 +22 -20
- package/.next/server/app/credentials.segments/_full.segment.rsc +22 -20
- package/.next/server/app/credentials.segments/_head.segment.rsc +1 -1
- package/.next/server/app/credentials.segments/_index.segment.rsc +6 -4
- package/.next/server/app/credentials.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/credentials.segments/credentials.segment.rsc +1 -1
- package/.next/server/app/git/changes/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/changes/page/build-manifest.json +18 -0
- package/.next/server/app/git/changes/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/changes/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/changes/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/changes/page.js +18 -0
- package/.next/server/app/git/changes/page.js.map +5 -0
- package/.next/server/app/git/changes/page.js.nft.json +1 -0
- package/.next/server/app/git/changes/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/changes.html +54 -0
- package/.next/server/app/git/changes.meta +16 -0
- package/.next/server/app/git/changes.rsc +83 -0
- package/.next/server/app/git/changes.segments/_full.segment.rsc +83 -0
- package/.next/server/app/git/changes.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git/changes.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git/changes.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/git/changes.segments/git/changes/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/git/changes.segments/git/changes.segment.rsc +4 -0
- package/.next/server/app/git/changes.segments/git.segment.rsc +7 -0
- package/.next/server/app/git/custom-scripts/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/custom-scripts/page/build-manifest.json +18 -0
- package/.next/server/app/git/custom-scripts/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/custom-scripts/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/custom-scripts/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/custom-scripts/page.js +18 -0
- package/.next/server/app/git/custom-scripts/page.js.map +5 -0
- package/.next/server/app/git/custom-scripts/page.js.nft.json +1 -0
- package/.next/server/app/git/custom-scripts/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/custom-scripts.html +54 -0
- package/.next/server/app/git/custom-scripts.meta +16 -0
- package/.next/server/app/git/custom-scripts.rsc +82 -0
- package/.next/server/app/git/custom-scripts.segments/_full.segment.rsc +82 -0
- package/.next/server/app/git/custom-scripts.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git/custom-scripts.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git/custom-scripts.segments/_tree.segment.rsc +6 -0
- package/.next/server/app/git/custom-scripts.segments/git/custom-scripts/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/git/custom-scripts.segments/git/custom-scripts.segment.rsc +4 -0
- package/.next/server/app/git/custom-scripts.segments/git.segment.rsc +7 -0
- package/.next/server/app/git/history/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/history/page/build-manifest.json +18 -0
- package/.next/server/app/git/history/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/history/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/history/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/history/page.js +18 -0
- package/.next/server/app/git/history/page.js.map +5 -0
- package/.next/server/app/git/history/page.js.nft.json +1 -0
- package/.next/server/app/git/history/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/history.html +54 -0
- package/.next/server/app/git/history.meta +16 -0
- package/.next/server/app/git/history.rsc +83 -0
- package/.next/server/app/git/history.segments/_full.segment.rsc +83 -0
- package/.next/server/app/git/history.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git/history.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git/history.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/git/history.segments/git/history/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/git/history.segments/git/history.segment.rsc +4 -0
- package/.next/server/app/git/history.segments/git.segment.rsc +7 -0
- package/.next/server/app/git/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/page/build-manifest.json +18 -0
- package/.next/server/app/git/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/page.js +18 -0
- package/.next/server/app/git/page.js.map +5 -0
- package/.next/server/app/git/page.js.nft.json +1 -0
- package/.next/server/app/git/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/stashes/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/stashes/page/build-manifest.json +18 -0
- package/.next/server/app/git/stashes/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/stashes/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/stashes/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/stashes/page.js +18 -0
- package/.next/server/app/git/stashes/page.js.map +5 -0
- package/.next/server/app/git/stashes/page.js.nft.json +1 -0
- package/.next/server/app/git/stashes/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/stashes.html +54 -0
- package/.next/server/app/git/stashes.meta +16 -0
- package/.next/server/app/git/stashes.rsc +83 -0
- package/.next/server/app/git/stashes.segments/_full.segment.rsc +83 -0
- package/.next/server/app/git/stashes.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git/stashes.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git/stashes.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/git/stashes.segments/git/stashes/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/git/stashes.segments/git/stashes.segment.rsc +4 -0
- package/.next/server/app/git/stashes.segments/git.segment.rsc +7 -0
- package/.next/server/app/git.html +54 -0
- package/.next/server/app/git.meta +15 -0
- package/.next/server/app/git.rsc +82 -0
- package/.next/server/app/git.segments/_full.segment.rsc +82 -0
- package/.next/server/app/git.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/git.segments/git.segment.rsc +7 -0
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +21 -19
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +21 -19
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +6 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/new/page/build-manifest.json +5 -4
- package/.next/server/app/new/page/server-reference-manifest.json +29 -29
- package/.next/server/app/new/page.js +5 -5
- 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/build-manifest.json +5 -4
- package/.next/server/app/page/server-reference-manifest.json +29 -29
- package/.next/server/app/page.js +5 -5
- 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/build-manifest.json +5 -4
- package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +19 -19
- package/.next/server/app/session/[sessionId]/page.js +4 -4
- 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/app-paths-manifest.json +18 -0
- package/.next/server/chunks/[externals]__7ece43c5._.js +3 -0
- package/.next/server/chunks/[externals]_keytar_23140f5c._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01a6baa7._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01a6baa7._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1bf60374._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1bf60374._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__2dcb1454._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__2dcb1454._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__3ffc9919._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__3ffc9919._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__462092c0._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__462092c0._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__5349b858._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__5349b858._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__597e4f2f._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__597e4f2f._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__7324fe0b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__7324fe0b._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__7f2f8f49._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__7f2f8f49._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__82d53572._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__82d53572._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__85af257a._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__85af257a._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__9af2c9bf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__9af2c9bf._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__a0cc36ad._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__a0cc36ad._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__afea2116._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__afea2116._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__b17e6c62._.js +7 -0
- package/.next/server/chunks/[root-of-the-server]__b17e6c62._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__c2ff0bd8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__c2ff0bd8._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__ceda8fbc._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__ceda8fbc._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__e1b60268._.js +519 -0
- package/.next/server/chunks/[root-of-the-server]__e1b60268._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__ed7be8e0._.js → [root-of-the-server]__e993c1a5._.js} +2 -2
- package/.next/server/chunks/_next-internal_server_app_api_credentials_github_repos_route_actions_29e1f39a.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_credentials_github_repos_route_actions_29e1f39a.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_credentials_route_actions_ec24437f.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_credentials_route_actions_ec24437f.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_custom-scripts_route_actions_895ba0fd.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_custom-scripts_route_actions_895ba0fd.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_fs_open-terminal_route_actions_e2201c01.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_fs_open-terminal_route_actions_e2201c01.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_fs_open_route_actions_140e2d00.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_fs_open_route_actions_140e2d00.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_action_route_actions_696a03a1.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_action_route_actions_696a03a1.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_branches_route_actions_716a58c0.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_branches_route_actions_716a58c0.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_diff_route_actions_7bd2d341.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_diff_route_actions_7bd2d341.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_log_route_actions_1660bf04.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_log_route_actions_1660bf04.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_status_route_actions_71f3da53.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_status_route_actions_71f3da53.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_repos_clone_route_actions_ef268146.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_repos_clone_route_actions_ef268146.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_repos_route_actions_cd76e461.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_repos_route_actions_cd76e461.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_a476013b.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_a476013b.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0002606b.js +3 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0002606b.js.map +1 -0
- package/.next/server/chunks/node_modules_zod_v4_classic_external_fa90cebf.js +39 -0
- package/.next/server/chunks/node_modules_zod_v4_classic_external_fa90cebf.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__05b3451a._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__05b3451a._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__59834c63._.js → [root-of-the-server]__05e6fb4c._.js} +3 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__05e6fb4c._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__4c388861._.js → [root-of-the-server]__2798aa4d._.js} +3 -3
- package/.next/server/chunks/ssr/{[root-of-the-server]__4c388861._.js.map → [root-of-the-server]__2798aa4d._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__2c252246._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__2c252246._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__3cd44871._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__3cd44871._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__46af1502._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__46af1502._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__52b5581b._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__52b5581b._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__5be652da._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__9f8d4cf6._.js.map → [root-of-the-server]__5be652da._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__5e499636._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__5e499636._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6afa74ac._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6afa74ac._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__79a7a15d._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__79a7a15d._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__96a8b4aa._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__012c2bdd._.js.map → [root-of-the-server]__96a8b4aa._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__9a619a34._.js +56 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__9a619a34._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ab761bdf._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ab761bdf._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__b77b4157._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__b77b4157._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__d45abc45._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__d45abc45._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e86a1b81._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__7cd07782._.js.map → [root-of-the-server]__e86a1b81._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__e8b7f48a._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e8b7f48a._.js.map +1 -0
- package/.next/server/chunks/ssr/_2a7fa4b0._.js +3 -0
- package/.next/server/chunks/ssr/_2a7fa4b0._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0522f852._.js → _476e86d1._.js} +3 -3
- package/.next/server/chunks/ssr/_476e86d1._.js.map +1 -0
- package/.next/server/chunks/ssr/_4d07d45e._.js +3 -0
- package/.next/server/chunks/ssr/_4d07d45e._.js.map +1 -0
- package/.next/server/chunks/ssr/_523ff032._.js +3 -0
- package/.next/server/chunks/ssr/_523ff032._.js.map +1 -0
- package/.next/server/chunks/ssr/_57f63a65._.js +3 -0
- package/.next/server/chunks/ssr/_57f63a65._.js.map +1 -0
- package/.next/server/chunks/ssr/_707e5fab._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__9201693f._.js.map → _707e5fab._.js.map} +1 -1
- package/.next/server/chunks/ssr/_787bdec7._.js +3 -0
- package/.next/server/chunks/ssr/_787bdec7._.js.map +1 -0
- package/.next/server/chunks/ssr/_85a742de._.js +4 -0
- package/.next/server/chunks/ssr/_85a742de._.js.map +1 -0
- package/.next/server/chunks/ssr/_9493de08._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__352d2b3c._.js.map → _9493de08._.js.map} +1 -1
- package/.next/server/chunks/ssr/_9769f5e5._.js +4 -0
- package/.next/server/chunks/ssr/_9769f5e5._.js.map +1 -0
- package/.next/server/chunks/ssr/_a7a8132a._.js +4 -0
- package/.next/server/chunks/ssr/_a7a8132a._.js.map +1 -0
- package/.next/server/chunks/ssr/_be721a9c._.js +3 -0
- package/.next/server/chunks/ssr/_be721a9c._.js.map +1 -0
- package/.next/server/chunks/ssr/_df00ee4d._.js +4 -0
- package/.next/server/chunks/ssr/_df00ee4d._.js.map +1 -0
- package/.next/server/chunks/ssr/_e17414c3._.js +3 -0
- package/.next/server/chunks/ssr/_e17414c3._.js.map +1 -0
- package/.next/server/chunks/ssr/_fc027e1f._.js +4 -0
- package/.next/server/chunks/ssr/_fc027e1f._.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_changes_page_actions_6b75ad0c.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_changes_page_actions_6b75ad0c.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_custom-scripts_page_actions_c3e2453e.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_custom-scripts_page_actions_c3e2453e.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_history_page_actions_9e9b26bc.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_history_page_actions_9e9b26bc.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_page_actions_511f286b.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_page_actions_511f286b.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_stashes_page_actions_44843274.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_stashes_page_actions_44843274.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_3e692bb2._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_3e692bb2._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_50fa454f._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_50fa454f._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_8e38eac2._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_8e38eac2._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_bf7b09f8._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_bf7b09f8._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_5999d873._.js → node_modules_cf1f3d2c._.js} +2 -4
- package/.next/server/chunks/ssr/node_modules_cf1f3d2c._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0ff44e32._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0ff44e32._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_f6fd30d1._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_f6fd30d1._.js.map +1 -0
- package/.next/server/chunks/ssr/src_408d74ba._.js +3 -0
- package/.next/server/chunks/ssr/src_408d74ba._.js.map +1 -0
- package/.next/server/chunks/ssr/src_49325427._.js +3 -0
- package/.next/server/chunks/ssr/src_49325427._.js.map +1 -0
- package/.next/server/chunks/ssr/src_91238eaa._.js +3 -0
- package/.next/server/chunks/ssr/src_91238eaa._.js.map +1 -0
- package/.next/server/chunks/ssr/src_9994126b._.js +3 -0
- package/.next/server/chunks/ssr/src_9994126b._.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_git_changes_page_tsx_f6dc28dc._.js +5 -0
- package/.next/server/chunks/ssr/src_app_git_changes_page_tsx_f6dc28dc._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_providers_tsx_2ae5be81._.js +3 -0
- package/.next/server/chunks/ssr/src_app_providers_tsx_2ae5be81._.js.map +1 -0
- 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_grouped-diff-viewer_tsx_41b8ab60._.js +20 -0
- package/.next/server/chunks/ssr/src_components_git_grouped-diff-viewer_tsx_41b8ab60._.js.map +1 -0
- package/.next/server/chunks/ssr/src_components_git_history-view_tsx_fd62126a._.js +10 -0
- package/.next/server/chunks/ssr/src_components_git_history-view_tsx_fd62126a._.js.map +1 -0
- package/.next/server/chunks/ssr/src_hooks_use-workspace-title_ts_9edd343b._.js +3 -0
- package/.next/server/chunks/ssr/src_hooks_use-workspace-title_ts_9edd343b._.js.map +1 -0
- package/.next/server/functions-config-manifest.json +3 -0
- package/.next/server/middleware-build-manifest.js +5 -4
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +20 -0
- 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 +48 -48
- package/.next/static/chunks/068649e8eb29b8d9.js +2 -0
- package/.next/static/chunks/0eca2eff234acf1b.js +1 -0
- package/.next/static/chunks/46c9f58659e11b7d.js +1 -0
- package/.next/static/chunks/47ad182e478611c4.css +1 -0
- package/.next/static/chunks/4b818f2593bc4300.js +1 -0
- package/.next/static/chunks/4cabe8a0df24e6d1.js +1 -0
- package/.next/static/chunks/4d93976ea0e8b685.js +9 -0
- package/.next/static/chunks/58e245f27f38e5ff.js +1 -0
- package/.next/static/chunks/5d6988fe9dd191e1.js +1 -0
- package/.next/static/chunks/73b3e447914a757b.js +1 -0
- package/.next/static/chunks/76c064224d953678.js +4 -0
- package/.next/static/chunks/78859d33c5671d29.js +8 -0
- package/.next/static/chunks/94fb2462104985a8.js +3 -0
- package/.next/static/chunks/9f82d45ee88d5dc1.js +3 -0
- package/.next/static/chunks/a29874cab09f6b0f.js +3 -0
- package/.next/static/chunks/b4077ef0304a2ff4.js +18 -0
- package/.next/static/chunks/bcc203fd591a3e1b.js +3 -0
- package/.next/static/chunks/c1a983df0a5e5f3a.css +1 -0
- package/.next/static/chunks/c7c82526da1ea165.js +1 -0
- package/.next/static/chunks/e152c322e888ccea.js +1 -0
- package/.next/static/chunks/ff0443d5f56a7060.js +3 -0
- package/.next/static/chunks/fff7986d66d302cf.js +1 -0
- package/.next/static/chunks/turbopack-e9cbd31f7b697763.js +4 -0
- package/package.json +4 -1
- package/.next/server/chunks/[externals]__6f5f63a1._.js +0 -3
- package/.next/server/chunks/[externals]__ad3eabe7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1368fab8._.js +0 -519
- package/.next/server/chunks/[root-of-the-server]__1368fab8._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__012c2bdd._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__03608b11._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__03608b11._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0522f852._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__11fa4345._.js +0 -56
- package/.next/server/chunks/ssr/[root-of-the-server]__11fa4345._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__352d2b3c._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__59834c63._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__5afb130a._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__5afb130a._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__7cd07782._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__90f3f366._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__90f3f366._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__9201693f._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__9f8d4cf6._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__addaed13._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__addaed13._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ebb382fb._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__ebb382fb._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__f493cc72._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__f493cc72._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__f56dd853._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__f56dd853._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ff79e2be._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__ff79e2be._.js.map +0 -1
- package/.next/server/chunks/ssr/_7ce14682._.js +0 -3
- package/.next/server/chunks/ssr/_7ce14682._.js.map +0 -1
- package/.next/server/chunks/ssr/_c4899d4c._.js +0 -3
- package/.next/server/chunks/ssr/_c4899d4c._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_04e0be7d._.js +0 -8
- package/.next/server/chunks/ssr/node_modules_04e0be7d._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_358ee037._.js +0 -8
- package/.next/server/chunks/ssr/node_modules_358ee037._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_5999d873._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_a8dcdfed._.js +0 -8
- package/.next/server/chunks/ssr/node_modules_a8dcdfed._.js.map +0 -1
- package/.next/static/chunks/0b5678df432c3623.js +0 -4
- package/.next/static/chunks/0dfa5be743492ce2.js +0 -2
- package/.next/static/chunks/1084ea77114042eb.css +0 -1
- package/.next/static/chunks/2f4149693b1e0875.js +0 -3
- package/.next/static/chunks/3856bc9dcb46c1fd.js +0 -3
- package/.next/static/chunks/a4f4322edc25e6b4.js +0 -3
- package/.next/static/chunks/a5ee8f49aed07f5b.js +0 -9
- package/.next/static/chunks/b77fa77a013ad38a.js +0 -1
- package/.next/static/chunks/cfb8404eba3fd259.js +0 -1
- package/.next/static/chunks/f10df459d17d0aff.js +0 -3
- package/.next/static/chunks/turbopack-18722873613a4289.js +0 -4
- /package/.next/server/chunks/{[externals]__6f5f63a1._.js.map → [externals]__7ece43c5._.js.map} +0 -0
- /package/.next/server/chunks/{[externals]__ad3eabe7._.js.map → [externals]_keytar_23140f5c._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__ed7be8e0._.js.map → [root-of-the-server]__e993c1a5._.js.map} +0 -0
- /package/.next/static/{qoMjwwKLHSCKURVHnc41W → mx8z_YoNSm8FluLvondrw}/_buildManifest.js +0 -0
- /package/.next/static/{qoMjwwKLHSCKURVHnc41W → mx8z_YoNSm8FluLvondrw}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{qoMjwwKLHSCKURVHnc41W → mx8z_YoNSm8FluLvondrw}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[70406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},24951,(a,b,c)=>{"use strict";b.exports=a.r(18622)},11857,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackServer},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},7997,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactJsxRuntime},717,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].React},4276,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>"))},82509,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js"))},66114,a=>{"use strict";a.i(4276);var b=a.i(82509);a.n(b)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__012c2bdd._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[11129,a=>{"use strict";var b=a.i(15271),c=a.i(98624),d=a.i(51817),e=a.i(54569),f=a.i(38642),g=a.i(37359);a.s([],53565),a.i(53565),a.s(["008ac664cbc3777b0553b0d0f25f0118c4efd8338a",()=>f.getConfig,"00a804398f4b1e56ea556c75876f5d10ed7a1d3ae2",()=>g.listAgentApiCredentials,"00b8e61defc839f7f0caa3058b3e540a47a6ae775a",()=>g.listCredentials,"00cc819232baef1beeabfcef2aaeaffc75431ae8b8",()=>b.getHomeDirectory,"40078496772745d07a206c9636088dc8d94b044691",()=>c.resolveRepositoryByName,"40115312ffedb0704eed94cc5c403dda3d0686e100",()=>b.listDirectories,"402638a770ee194da35a8eaed89f801d682128055e",()=>e.listDrafts,"40327aa59eff9a8def506c4abafedac2bc8ed0aea8",()=>b.checkDirectoryAccessible,"406e37bc6adf270b823abe7311f0b83b33f61a0d71",()=>f.updateConfig,"40749b7eac03cc003d013325247185e5ef33879336",()=>d.deleteSession,"407507e2a2c5b89065df3c382ca9c31adae264a920",()=>e.saveDraft,"408498ae87fc2d350e653bad9d133f44aefe5845be",()=>b.listPathEntries,"40915354c52a3224d3698f71bbccf620704db3bda2",()=>b.getBranches,"409194f14016fda079f074737210f553cf4eabc693",()=>b.installAgentCli,"40a5d31946904b1d2ef8abc1846b9d89e31e47dd77",()=>d.listSessions,"40b0312cceabed94effc89b993c91037bcf99ddd84",()=>b.checkAgentCliInstalled,"40c164f805b6faaf1b88d130c43bfff6d5bdfeec6a",()=>e.deleteDraft,"40f2a89521115ed55b72e742e675356cccd7d5ab27",()=>b.checkIsGitRepo,"40fd221658abfefaecd9d614e645a1408c2a103f63",()=>d.getSessionPrefillContext,"60117d726ffa3b429c349053f1d5ee2566f7782656",()=>b.checkoutBranch,"60195d69a92ca7d0603a7bc2d321a387de7136b1d7",()=>c.cloneRemoteRepository,"607214d2f625468791a9feafd1c1f811910351fe78",()=>d.saveSessionLaunchContext,"60c7b95e80e7e8aaeb7ef9e79d9e50daba0ed5fc2a",()=>f.updateRepoSettings,"70239890805b2c7647946243c21dc6ff30196fc5c6",()=>d.createSession,"7f011ecc10ad810ca13854f2a96fbdb6139fa0cf27",()=>b.getDefaultDevServerScript,"7f743591f9daf981fe1fe4e244eb29814fc4592e2e",()=>b.saveAttachments,"7f93ee21df4a3db1cfe82c9ad31034ce96a9df8052",()=>b.startTtydProcess,"7fd22e4388d4a12aacaa32ad07e8e8ee39b2e18409",()=>b.getStartupScript,"7fd7478520462e34cbb18689feba2d1e6c65c924c1",()=>b.listRepoFiles],11129)},45581,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_keytar_23140f5c._.js"].map(b=>a.l(b))).then(()=>b(83034)))},44264,a=>{a.v(a=>Promise.resolve().then(()=>a(33405)))},37706,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__edf0aa7a._.js"].map(b=>a.l(b))).then(()=>b(78775)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__03608b11._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../.next-internal/server/app/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {checkDirectoryAccessible as '40327aa59eff9a8def506c4abafedac2bc8ed0aea8'} from 'ACTIONS_MODULE0'\nexport {listDirectories as '40115312ffedb0704eed94cc5c403dda3d0686e100'} from 'ACTIONS_MODULE0'\nexport {getHomeDirectory as '00cc819232baef1beeabfcef2aaeaffc75431ae8b8'} from 'ACTIONS_MODULE0'\nexport {checkIsGitRepo as '40f2a89521115ed55b72e742e675356cccd7d5ab27'} from 'ACTIONS_MODULE0'\nexport {getBranches as '40915354c52a3224d3698f71bbccf620704db3bda2'} from 'ACTIONS_MODULE0'\nexport {checkoutBranch as '60117d726ffa3b429c349053f1d5ee2566f7782656'} from 'ACTIONS_MODULE0'\nexport {startTtydProcess as '7f93ee21df4a3db1cfe82c9ad31034ce96a9df8052'} from 'ACTIONS_MODULE0'\nexport {getStartupScript as '7fd22e4388d4a12aacaa32ad07e8e8ee39b2e18409'} from 'ACTIONS_MODULE0'\nexport {getDefaultDevServerScript as '7f011ecc10ad810ca13854f2a96fbdb6139fa0cf27'} from 'ACTIONS_MODULE0'\nexport {listRepoFiles as '7fd7478520462e34cbb18689feba2d1e6c65c924c1'} from 'ACTIONS_MODULE0'\nexport {checkAgentCliInstalled as '40b0312cceabed94effc89b993c91037bcf99ddd84'} from 'ACTIONS_MODULE0'\nexport {installAgentCli as '409194f14016fda079f074737210f553cf4eabc693'} from 'ACTIONS_MODULE0'\nexport {cloneRemoteRepository as '60195d69a92ca7d0603a7bc2d321a387de7136b1d7'} from 'ACTIONS_MODULE1'\nexport {resolveRepositoryByName as '40078496772745d07a206c9636088dc8d94b044691'} from 'ACTIONS_MODULE1'\nexport {createSession as '70239890805b2c7647946243c21dc6ff30196fc5c6'} from 'ACTIONS_MODULE2'\nexport {deleteSession as '40749b7eac03cc003d013325247185e5ef33879336'} from 'ACTIONS_MODULE2'\nexport {getSessionPrefillContext as '40fd221658abfefaecd9d614e645a1408c2a103f63'} from 'ACTIONS_MODULE2'\nexport {listSessions as '40a5d31946904b1d2ef8abc1846b9d89e31e47dd77'} from 'ACTIONS_MODULE2'\nexport {saveSessionLaunchContext as '607214d2f625468791a9feafd1c1f811910351fe78'} from 'ACTIONS_MODULE2'\nexport {deleteDraft as '40c164f805b6faaf1b88d130c43bfff6d5bdfeec6a'} from 'ACTIONS_MODULE3'\nexport {listDrafts as '402638a770ee194da35a8eaed89f801d682128055e'} from 'ACTIONS_MODULE3'\nexport {saveDraft as '407507e2a2c5b89065df3c382ca9c31adae264a920'} from 'ACTIONS_MODULE3'\nexport {getConfig as '008ac664cbc3777b0553b0d0f25f0118c4efd8338a'} from 'ACTIONS_MODULE4'\nexport {updateConfig as '406e37bc6adf270b823abe7311f0b83b33f61a0d71'} from 'ACTIONS_MODULE4'\nexport {updateRepoSettings as '60c7b95e80e7e8aaeb7ef9e79d9e50daba0ed5fc2a'} from 'ACTIONS_MODULE4'\nexport {listAgentApiCredentials as '00a804398f4b1e56ea556c75876f5d10ed7a1d3ae2'} from 'ACTIONS_MODULE5'\nexport {listCredentials as '00b8e61defc839f7f0caa3058b3e540a47a6ae775a'} from 'ACTIONS_MODULE5'\nexport {listPathEntries as '408498ae87fc2d350e653bad9d133f44aefe5845be'} from 'ACTIONS_MODULE0'\nexport {saveAttachments as '7f743591f9daf981fe1fe4e244eb29814fc4592e2e'} from 'ACTIONS_MODULE0'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OAYA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OAKA,EAAA,EAAA,CAAA,CAAA,OAGA,EAAA,EAAA,CAAA,CAAA,OAGA,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../src/lib/agent-api-credentials.ts","../../../../src/lib/credentials.ts","../../../../src/app/actions/credentials.ts","../../../../src/app/actions/repository.ts","../../../../src/lib/repo-resolver.ts","../../../../src/app/actions/draft.ts"],"sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","import fs from 'fs/promises';\nimport os from 'os';\nimport path from 'path';\n\nconst SERVICE_NAME = 'viba-agent-api-credentials';\nconst CONFIGS_FILE_NAME = 'agent-api-configs.json';\nconst SUPPORTED_AGENT_APIS = ['codex'] as const;\n\nexport type AgentApiCredentialAgent = typeof SUPPORTED_AGENT_APIS[number];\n\nexport interface AgentApiCredential {\n agent: AgentApiCredentialAgent;\n apiProxy?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface AgentApiCredentialSecret {\n agent: AgentApiCredentialAgent;\n apiKey: string;\n apiProxy?: string;\n}\n\ntype AgentApiCredentialMetadata = {\n agent: AgentApiCredentialAgent;\n apiProxy?: string;\n createdAt: string;\n updatedAt: string;\n keytarAccount?: string;\n};\n\ntype KeytarModule = {\n getPassword(service: string, account: string): Promise<string | null>;\n setPassword(service: string, account: string, password: string): Promise<void>;\n deletePassword(service: string, account: string): Promise<boolean>;\n};\n\nlet keytarPromise: Promise<KeytarModule | null> | null = null;\nlet keytarUnavailableReason: string | null = null;\nlet didLogKeytarWarning = false;\n\nfunction isSupportedAgentApi(value: string): value is AgentApiCredentialAgent {\n return SUPPORTED_AGENT_APIS.includes(value as AgentApiCredentialAgent);\n}\n\nfunction keytarUnavailableMessage(): string {\n if (keytarUnavailableReason) {\n return `Secure credential storage is unavailable: ${keytarUnavailableReason}`;\n }\n return 'Secure credential storage is unavailable in this runtime.';\n}\n\nasync function loadKeytar(): Promise<KeytarModule | null> {\n if (!keytarPromise) {\n keytarPromise = import('keytar')\n .then((module) => (module.default ?? module) as KeytarModule)\n .catch((error: unknown) => {\n keytarUnavailableReason = error instanceof Error ? error.message : String(error);\n if (!didLogKeytarWarning) {\n didLogKeytarWarning = true;\n console.warn(`[agent-api-credentials] ${keytarUnavailableMessage()}`);\n }\n return null;\n });\n }\n\n return keytarPromise;\n}\n\nasync function requireKeytar(): Promise<KeytarModule> {\n const keytar = await loadKeytar();\n if (!keytar) {\n throw new Error(keytarUnavailableMessage());\n }\n return keytar;\n}\n\nfunction getDefaultKeytarAccount(agent: AgentApiCredentialAgent): string {\n return `agent-api-${agent}`;\n}\n\nfunction getKeytarAccountForMetadata(metadata: AgentApiCredentialMetadata): string {\n return metadata.keytarAccount || getDefaultKeytarAccount(metadata.agent);\n}\n\nfunction normalizeApiProxy(apiProxy: string): string | undefined {\n const trimmed = apiProxy.trim();\n if (!trimmed) return undefined;\n\n try {\n // Validate and persist as-entered once it is a valid URL.\n new URL(trimmed);\n } catch {\n throw new Error('API proxy must be a valid URL.');\n }\n\n return trimmed;\n}\n\nfunction toAgentApiCredential(metadata: AgentApiCredentialMetadata): AgentApiCredential {\n return {\n agent: metadata.agent,\n apiProxy: metadata.apiProxy,\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n };\n}\n\nfunction isAgentApiCredentialMetadata(value: unknown): value is AgentApiCredentialMetadata {\n if (!value || typeof value !== 'object') return false;\n\n const candidate = value as Record<string, unknown>;\n if (typeof candidate.agent !== 'string' || !isSupportedAgentApi(candidate.agent)) return false;\n if (typeof candidate.createdAt !== 'string') return false;\n if (typeof candidate.updatedAt !== 'string') return false;\n if (candidate.apiProxy !== undefined && typeof candidate.apiProxy !== 'string') return false;\n if (candidate.keytarAccount !== undefined && typeof candidate.keytarAccount !== 'string') return false;\n\n return true;\n}\n\nasync function getConfigsFilePath(): Promise<string> {\n const vibaDir = path.join(os.homedir(), '.viba');\n await fs.mkdir(vibaDir, { recursive: true });\n return path.join(vibaDir, CONFIGS_FILE_NAME);\n}\n\nasync function writeAgentApiCredentialMetadata(metadata: AgentApiCredentialMetadata[]): Promise<void> {\n const configsFilePath = await getConfigsFilePath();\n await fs.writeFile(configsFilePath, JSON.stringify(metadata, null, 2), 'utf-8');\n}\n\nasync function readAgentApiCredentialMetadata(): Promise<AgentApiCredentialMetadata[]> {\n const configsFilePath = await getConfigsFilePath();\n\n try {\n const content = await fs.readFile(configsFilePath, 'utf-8');\n const parsed = JSON.parse(content) as unknown;\n\n if (Array.isArray(parsed)) {\n return parsed.filter(isAgentApiCredentialMetadata);\n }\n\n if (!parsed || typeof parsed !== 'object') {\n return [];\n }\n\n // Legacy map shape: { codex: { ... }, ... }\n const entries = Object.entries(parsed as Record<string, unknown>);\n const migrated = entries\n .filter(([agent]) => isSupportedAgentApi(agent))\n .map(([agent, value]) => {\n if (!value || typeof value !== 'object') return null;\n const candidate = value as Record<string, unknown>;\n if (candidate.agent === undefined) {\n return {\n ...candidate,\n agent,\n } as unknown;\n }\n return candidate;\n })\n .filter(isAgentApiCredentialMetadata);\n\n if (migrated.length > 0) {\n await writeAgentApiCredentialMetadata(migrated);\n }\n\n return migrated;\n } catch (error) {\n if ((error as NodeJS.ErrnoException)?.code === 'ENOENT') {\n return [];\n }\n\n console.error('Failed to parse agent API credential metadata:', error);\n return [];\n }\n}\n\nexport async function getAllAgentApiCredentials(): Promise<AgentApiCredential[]> {\n const metadata = await readAgentApiCredentialMetadata();\n return metadata\n .map(toAgentApiCredential)\n .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));\n}\n\nexport async function createOrUpdateAgentApiCredential(\n agent: AgentApiCredentialAgent,\n apiKey: string,\n apiProxy: string,\n): Promise<{ success: boolean; credential?: AgentApiCredential; error?: string }> {\n if (!isSupportedAgentApi(agent)) {\n return { success: false, error: `Unsupported agent: ${agent}` };\n }\n\n const trimmedApiKey = apiKey.trim();\n if (!trimmedApiKey) {\n return { success: false, error: 'API key is required.' };\n }\n\n let normalizedApiProxy: string | undefined;\n try {\n normalizedApiProxy = normalizeApiProxy(apiProxy);\n } catch (error) {\n return { success: false, error: (error as Error).message };\n }\n\n let keytar: KeytarModule;\n try {\n keytar = await requireKeytar();\n } catch (error) {\n return { success: false, error: (error as Error).message };\n }\n\n const metadata = await readAgentApiCredentialMetadata();\n const now = new Date().toISOString();\n const index = metadata.findIndex((credential) => credential.agent === agent);\n const keytarAccount = index >= 0\n ? getKeytarAccountForMetadata(metadata[index])\n : getDefaultKeytarAccount(agent);\n\n await keytar.setPassword(SERVICE_NAME, keytarAccount, trimmedApiKey);\n\n if (index >= 0) {\n const existing = metadata[index];\n metadata[index] = {\n ...existing,\n apiProxy: normalizedApiProxy,\n updatedAt: now,\n keytarAccount,\n };\n } else {\n metadata.push({\n agent,\n apiProxy: normalizedApiProxy,\n createdAt: now,\n updatedAt: now,\n keytarAccount,\n });\n }\n\n await writeAgentApiCredentialMetadata(metadata);\n\n const saved = metadata.find((credential) => credential.agent === agent);\n if (!saved) {\n return { success: false, error: 'Failed to persist agent API credential.' };\n }\n\n return { success: true, credential: toAgentApiCredential(saved) };\n}\n\nexport async function deleteAgentApiCredential(\n agent: AgentApiCredentialAgent,\n): Promise<{ success: boolean; error?: string }> {\n if (!isSupportedAgentApi(agent)) {\n return { success: false, error: `Unsupported agent: ${agent}` };\n }\n\n const metadata = await readAgentApiCredentialMetadata();\n const index = metadata.findIndex((credential) => credential.agent === agent);\n if (index === -1) {\n return { success: false, error: 'Agent API credential not found.' };\n }\n\n const [removed] = metadata.splice(index, 1);\n await writeAgentApiCredentialMetadata(metadata);\n\n const keytar = await loadKeytar();\n if (keytar) {\n await keytar.deletePassword(SERVICE_NAME, getKeytarAccountForMetadata(removed));\n }\n\n return { success: true };\n}\n\nexport async function getAgentApiCredentialSecret(\n agent: AgentApiCredentialAgent,\n): Promise<AgentApiCredentialSecret | null> {\n if (!isSupportedAgentApi(agent)) {\n return null;\n }\n\n const metadata = await readAgentApiCredentialMetadata();\n const found = metadata.find((credential) => credential.agent === agent);\n if (!found) {\n return null;\n }\n\n const keytar = await loadKeytar();\n if (!keytar) {\n return null;\n }\n\n const apiKey = await keytar.getPassword(SERVICE_NAME, getKeytarAccountForMetadata(found));\n if (!apiKey) {\n return null;\n }\n\n return {\n agent: found.agent,\n apiKey,\n apiProxy: found.apiProxy,\n };\n}\n","import fs from 'fs/promises';\nimport os from 'os';\nimport path from 'path';\n\nconst SERVICE_NAME = 'viba-git-credentials';\nconst CREDENTIALS_FILE_NAME = 'credentials.json';\n\nexport type CredentialType = 'github' | 'gitlab';\n\nexport interface BaseCredential {\n id: string;\n type: CredentialType;\n username: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface GitHubCredential extends BaseCredential {\n type: 'github';\n}\n\nexport interface GitLabCredential extends BaseCredential {\n type: 'gitlab';\n serverUrl: string;\n}\n\nexport type Credential = GitHubCredential | GitLabCredential;\n\ntype CredentialMetadata = {\n id: string;\n type: CredentialType;\n username: string;\n serverUrl?: string;\n createdAt: string;\n updatedAt: string;\n keytarAccount?: string;\n};\n\ntype LegacyCredentialMetadata = {\n type: CredentialType;\n username: string;\n serverUrl?: string;\n createdAt: string;\n updatedAt: string;\n};\n\ntype KeytarModule = {\n getPassword(service: string, account: string): Promise<string | null>;\n setPassword(service: string, account: string, password: string): Promise<void>;\n deletePassword(service: string, account: string): Promise<boolean>;\n};\n\nlet keytarPromise: Promise<KeytarModule | null> | null = null;\nlet keytarUnavailableReason: string | null = null;\nlet didLogKeytarWarning = false;\n\nfunction keytarUnavailableMessage(): string {\n if (keytarUnavailableReason) {\n return `Secure credential storage is unavailable: ${keytarUnavailableReason}`;\n }\n return 'Secure credential storage is unavailable in this runtime.';\n}\n\nasync function loadKeytar(): Promise<KeytarModule | null> {\n if (!keytarPromise) {\n keytarPromise = import('keytar')\n .then((module) => (module.default ?? module) as KeytarModule)\n .catch((error: unknown) => {\n keytarUnavailableReason = error instanceof Error ? error.message : String(error);\n if (!didLogKeytarWarning) {\n didLogKeytarWarning = true;\n console.warn(`[credentials] ${keytarUnavailableMessage()}`);\n }\n return null;\n });\n }\n\n return keytarPromise;\n}\n\nasync function requireKeytar(): Promise<KeytarModule> {\n const keytar = await loadKeytar();\n if (!keytar) {\n throw new Error(keytarUnavailableMessage());\n }\n return keytar;\n}\n\nfunction generateId(): string {\n return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;\n}\n\nfunction normalizeGitLabServerUrl(serverUrl: string): string {\n return serverUrl.trim().replace(/\\/$/, '');\n}\n\nfunction getDefaultKeytarAccount(id: string): string {\n return `credential-${id}`;\n}\n\nfunction getLegacyKeytarAccount(type: CredentialType): string {\n return `credential-${type}`;\n}\n\nfunction getKeytarAccountForMetadata(metadata: CredentialMetadata): string {\n return metadata.keytarAccount || getDefaultKeytarAccount(metadata.id);\n}\n\nfunction toCredential(metadata: CredentialMetadata): Credential {\n if (metadata.type === 'gitlab') {\n return {\n id: metadata.id,\n type: 'gitlab',\n username: metadata.username,\n serverUrl: metadata.serverUrl || 'https://gitlab.com',\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n };\n }\n\n return {\n id: metadata.id,\n type: 'github',\n username: metadata.username,\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n };\n}\n\nasync function getCredentialsFilePath(): Promise<string> {\n const vibaDir = path.join(os.homedir(), '.viba');\n await fs.mkdir(vibaDir, { recursive: true });\n return path.join(vibaDir, CREDENTIALS_FILE_NAME);\n}\n\nfunction isLegacyCredentialMetadata(value: unknown, expectedType: CredentialType): value is LegacyCredentialMetadata {\n if (!value || typeof value !== 'object') return false;\n\n const candidate = value as Record<string, unknown>;\n if (candidate.type !== expectedType) return false;\n if (typeof candidate.username !== 'string') return false;\n if (typeof candidate.createdAt !== 'string') return false;\n if (typeof candidate.updatedAt !== 'string') return false;\n\n if (expectedType === 'gitlab') {\n return typeof candidate.serverUrl === 'string';\n }\n\n return true;\n}\n\nfunction isCredentialMetadata(value: unknown): value is CredentialMetadata {\n if (!value || typeof value !== 'object') return false;\n\n const candidate = value as Record<string, unknown>;\n if (typeof candidate.id !== 'string' || !candidate.id.trim()) return false;\n if (candidate.type !== 'github' && candidate.type !== 'gitlab') return false;\n if (typeof candidate.username !== 'string') return false;\n if (typeof candidate.createdAt !== 'string') return false;\n if (typeof candidate.updatedAt !== 'string') return false;\n if (candidate.keytarAccount !== undefined && typeof candidate.keytarAccount !== 'string') return false;\n\n if (candidate.type === 'gitlab') {\n return typeof candidate.serverUrl === 'string';\n }\n\n return true;\n}\n\nasync function writeCredentialsMetadata(metadata: CredentialMetadata[]): Promise<void> {\n const credentialsFilePath = await getCredentialsFilePath();\n await fs.writeFile(credentialsFilePath, JSON.stringify(metadata, null, 2), 'utf-8');\n}\n\nasync function readCredentialsMetadata(): Promise<CredentialMetadata[]> {\n const credentialsFilePath = await getCredentialsFilePath();\n\n try {\n const content = await fs.readFile(credentialsFilePath, 'utf-8');\n const parsed = JSON.parse(content) as unknown;\n\n if (Array.isArray(parsed)) {\n return parsed.filter(isCredentialMetadata);\n }\n\n if (!parsed || typeof parsed !== 'object') {\n return [];\n }\n\n const legacyMapped = parsed as Record<string, unknown>;\n const migrated: CredentialMetadata[] = [];\n\n if (isLegacyCredentialMetadata(legacyMapped.github, 'github')) {\n const metadata = legacyMapped.github;\n migrated.push({\n id: generateId(),\n type: 'github',\n username: metadata.username,\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n keytarAccount: getLegacyKeytarAccount('github'),\n });\n }\n\n if (isLegacyCredentialMetadata(legacyMapped.gitlab, 'gitlab')) {\n const metadata = legacyMapped.gitlab;\n migrated.push({\n id: generateId(),\n type: 'gitlab',\n username: metadata.username,\n serverUrl: metadata.serverUrl,\n createdAt: metadata.createdAt,\n updatedAt: metadata.updatedAt,\n keytarAccount: getLegacyKeytarAccount('gitlab'),\n });\n }\n\n if (migrated.length > 0) {\n await writeCredentialsMetadata(migrated);\n }\n\n return migrated;\n } catch (error) {\n if ((error as NodeJS.ErrnoException)?.code === 'ENOENT') {\n return [];\n }\n\n console.error('Failed to parse credentials metadata:', error);\n return [];\n }\n}\n\nexport async function getAllCredentials(): Promise<Credential[]> {\n const metadata = await readCredentialsMetadata();\n\n return metadata\n .map(toCredential)\n .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));\n}\n\nexport async function getCredentialById(id: string): Promise<Credential | null> {\n const metadata = await readCredentialsMetadata();\n const found = metadata.find((credential) => credential.id === id);\n return found ? toCredential(found) : null;\n}\n\nexport async function getCredentialToken(id: string): Promise<string | null> {\n const metadata = await readCredentialsMetadata();\n const found = metadata.find((credential) => credential.id === id);\n if (!found) {\n return null;\n }\n\n const keytar = await loadKeytar();\n if (!keytar) {\n return null;\n }\n\n return keytar.getPassword(SERVICE_NAME, getKeytarAccountForMetadata(found));\n}\n\nasync function verifyGitHubToken(token: string): Promise<{ valid: boolean; username?: string; error?: string }> {\n try {\n const response = await fetch('https://api.github.com/user', {\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/vnd.github+json',\n 'X-GitHub-Api-Version': '2022-11-28',\n },\n });\n\n if (!response.ok) {\n if (response.status === 401) {\n return { valid: false, error: 'Invalid or expired GitHub token.' };\n }\n return { valid: false, error: `GitHub API returned ${response.status}.` };\n }\n\n const data = await response.json();\n const username = typeof data?.login === 'string' ? data.login : null;\n if (!username) {\n return { valid: false, error: 'GitHub API response did not include a username.' };\n }\n\n return { valid: true, username };\n } catch (error) {\n return { valid: false, error: `Failed to verify GitHub token: ${(error as Error).message}` };\n }\n}\n\nasync function verifyGitLabToken(serverUrl: string, token: string): Promise<{ valid: boolean; username?: string; error?: string }> {\n try {\n const normalizedUrl = normalizeGitLabServerUrl(serverUrl);\n const response = await fetch(`${normalizedUrl}/api/v4/user`, {\n headers: {\n 'PRIVATE-TOKEN': token,\n },\n });\n\n if (!response.ok) {\n if (response.status === 401) {\n return { valid: false, error: 'Invalid or expired GitLab token.' };\n }\n return { valid: false, error: `GitLab API returned ${response.status}.` };\n }\n\n const data = await response.json();\n const username = typeof data?.username === 'string' ? data.username : null;\n if (!username) {\n return { valid: false, error: 'GitLab API response did not include a username.' };\n }\n\n return { valid: true, username };\n } catch (error) {\n return { valid: false, error: `Failed to verify GitLab token: ${(error as Error).message}` };\n }\n}\n\nexport async function createGitHubCredential(token: string): Promise<{ success: boolean; credential?: GitHubCredential; error?: string }> {\n const trimmedToken = token.trim();\n if (!trimmedToken) {\n return { success: false, error: 'GitHub token is required.' };\n }\n\n let keytar: KeytarModule;\n try {\n keytar = await requireKeytar();\n } catch (error) {\n return { success: false, error: (error as Error).message };\n }\n\n const verification = await verifyGitHubToken(trimmedToken);\n if (!verification.valid || !verification.username) {\n return { success: false, error: verification.error || 'Failed to verify GitHub token.' };\n }\n\n const metadata = await readCredentialsMetadata();\n const duplicate = metadata.find((credential) => (\n credential.type === 'github'\n && credential.username === verification.username\n ));\n\n if (duplicate) {\n return { success: false, error: `A GitHub credential for ${verification.username} already exists.` };\n }\n\n const id = generateId();\n const now = new Date().toISOString();\n const keytarAccount = getDefaultKeytarAccount(id);\n\n await keytar.setPassword(SERVICE_NAME, keytarAccount, trimmedToken);\n\n const created: CredentialMetadata = {\n id,\n type: 'github',\n username: verification.username,\n createdAt: now,\n updatedAt: now,\n keytarAccount,\n };\n\n metadata.push(created);\n await writeCredentialsMetadata(metadata);\n\n return {\n success: true,\n credential: {\n id: created.id,\n type: 'github',\n username: created.username,\n createdAt: created.createdAt,\n updatedAt: created.updatedAt,\n },\n };\n}\n\nexport async function createGitLabCredential(\n serverUrl: string,\n token: string,\n): Promise<{ success: boolean; credential?: GitLabCredential; error?: string }> {\n const normalizedServerUrl = normalizeGitLabServerUrl(serverUrl);\n const trimmedToken = token.trim();\n\n if (!normalizedServerUrl) {\n return { success: false, error: 'GitLab server URL is required.' };\n }\n\n try {\n new URL(normalizedServerUrl);\n } catch {\n return { success: false, error: 'GitLab server URL must be a valid URL.' };\n }\n\n if (!trimmedToken) {\n return { success: false, error: 'GitLab token is required.' };\n }\n\n let keytar: KeytarModule;\n try {\n keytar = await requireKeytar();\n } catch (error) {\n return { success: false, error: (error as Error).message };\n }\n\n const verification = await verifyGitLabToken(normalizedServerUrl, trimmedToken);\n if (!verification.valid || !verification.username) {\n return { success: false, error: verification.error || 'Failed to verify GitLab token.' };\n }\n\n const metadata = await readCredentialsMetadata();\n const duplicate = metadata.find((credential) => (\n credential.type === 'gitlab'\n && credential.username === verification.username\n && credential.serverUrl === normalizedServerUrl\n ));\n\n if (duplicate) {\n return {\n success: false,\n error: `A GitLab credential for ${verification.username} on ${normalizedServerUrl} already exists.`,\n };\n }\n\n const id = generateId();\n const now = new Date().toISOString();\n const keytarAccount = getDefaultKeytarAccount(id);\n\n await keytar.setPassword(SERVICE_NAME, keytarAccount, trimmedToken);\n\n const created: CredentialMetadata = {\n id,\n type: 'gitlab',\n username: verification.username,\n serverUrl: normalizedServerUrl,\n createdAt: now,\n updatedAt: now,\n keytarAccount,\n };\n\n metadata.push(created);\n await writeCredentialsMetadata(metadata);\n\n return {\n success: true,\n credential: {\n id: created.id,\n type: 'gitlab',\n username: created.username,\n serverUrl: created.serverUrl || normalizedServerUrl,\n createdAt: created.createdAt,\n updatedAt: created.updatedAt,\n },\n };\n}\n\nexport async function deleteCredential(id: string): Promise<{ success: boolean; error?: string }> {\n const metadata = await readCredentialsMetadata();\n const index = metadata.findIndex((credential) => credential.id === id);\n\n if (index === -1) {\n return { success: false, error: 'Credential not found.' };\n }\n\n const credential = metadata[index];\n metadata.splice(index, 1);\n await writeCredentialsMetadata(metadata);\n\n const keytar = await loadKeytar();\n if (keytar) {\n await keytar.deletePassword(SERVICE_NAME, getKeytarAccountForMetadata(credential));\n }\n\n return { success: true };\n}\n","'use server';\n\nimport {\n createGitHubCredential,\n createGitLabCredential,\n deleteCredential,\n getAllCredentials,\n} from '@/lib/credentials';\nimport type { Credential } from '@/lib/credentials';\nimport {\n createOrUpdateAgentApiCredential,\n deleteAgentApiCredential,\n getAllAgentApiCredentials,\n} from '@/lib/agent-api-credentials';\nimport type {\n AgentApiCredential,\n AgentApiCredentialAgent,\n} from '@/lib/agent-api-credentials';\n\ntype ListCredentialsResult =\n | { success: true; credentials: Credential[] }\n | { success: false; error: string };\n\nexport async function listCredentials(): Promise<ListCredentialsResult> {\n try {\n const credentials = await getAllCredentials();\n return { success: true, credentials };\n } catch (error) {\n console.error('Failed to list credentials:', error);\n return { success: false, error: 'Failed to load credentials.' };\n }\n}\n\ntype SaveCredentialResult =\n | { success: true; credential: Credential }\n | { success: false; error: string };\n\nexport async function saveGitHubCredential(token: string): Promise<SaveCredentialResult> {\n const result = await createGitHubCredential(token);\n if (!result.success || !result.credential) {\n return { success: false, error: result.error || 'Failed to save GitHub credential.' };\n }\n\n return { success: true, credential: result.credential };\n}\n\nexport async function saveGitLabCredential(serverUrl: string, token: string): Promise<SaveCredentialResult> {\n const result = await createGitLabCredential(serverUrl, token);\n if (!result.success || !result.credential) {\n return { success: false, error: result.error || 'Failed to save GitLab credential.' };\n }\n\n return { success: true, credential: result.credential };\n}\n\ntype ListAgentApiCredentialsResult =\n | { success: true; credentials: AgentApiCredential[] }\n | { success: false; error: string };\n\nexport async function listAgentApiCredentials(): Promise<ListAgentApiCredentialsResult> {\n try {\n const credentials = await getAllAgentApiCredentials();\n return { success: true, credentials };\n } catch (error) {\n console.error('Failed to list agent API credentials:', error);\n return { success: false, error: 'Failed to load agent API credentials.' };\n }\n}\n\ntype SaveAgentApiCredentialResult =\n | { success: true; credential: AgentApiCredential }\n | { success: false; error: string };\n\nexport async function saveAgentApiCredential(\n agent: AgentApiCredentialAgent,\n apiKey: string,\n apiProxy: string,\n): Promise<SaveAgentApiCredentialResult> {\n const result = await createOrUpdateAgentApiCredential(agent, apiKey, apiProxy);\n if (!result.success || !result.credential) {\n return { success: false, error: result.error || 'Failed to save agent API credential.' };\n }\n\n return { success: true, credential: result.credential };\n}\n\ntype RemoveCredentialResult =\n | { success: true }\n | { success: false; error: string };\n\nexport async function removeCredential(id: string): Promise<RemoveCredentialResult> {\n try {\n const result = await deleteCredential(id);\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to remove credential.' };\n }\n\n return { success: true };\n } catch (error) {\n console.error('Failed to remove credential:', error);\n return { success: false, error: 'Failed to remove credential.' };\n }\n}\n\nexport async function removeAgentApiCredential(agent: AgentApiCredentialAgent): Promise<RemoveCredentialResult> {\n try {\n const result = await deleteAgentApiCredential(agent);\n if (!result.success) {\n return { success: false, error: result.error || 'Failed to remove agent API credential.' };\n }\n\n return { success: true };\n } catch (error) {\n console.error('Failed to remove agent API credential:', error);\n return { success: false, error: 'Failed to remove agent API credential.' };\n }\n}\n","'use server';\n\nimport fs from 'fs/promises';\nimport os from 'os';\nimport path from 'path';\nimport simpleGit from 'simple-git';\nimport { resolveRepositoryPathByName } from '@/lib/repo-resolver';\nimport { getAllCredentials, getCredentialById, getCredentialToken } from '@/lib/credentials';\nimport type { Credential } from '@/lib/credentials';\nimport { detectGitRemoteProvider, parseGitRemoteHost } from '@/lib/terminal-session';\n\ntype ResolveRepositoryResult = {\n success: boolean;\n repoPath: string | null;\n error?: string;\n};\n\ntype CloneRemoteRepositoryResult = {\n success: boolean;\n repoPath: string | null;\n error?: string;\n};\n\nexport async function resolveRepositoryByName(repoName: string): Promise<ResolveRepositoryResult> {\n try {\n const resolvedPath = await resolveRepositoryPathByName(repoName);\n return {\n success: true,\n repoPath: resolvedPath,\n };\n } catch (error) {\n console.error('Failed to resolve repository by name:', error);\n return {\n success: false,\n repoPath: null,\n error: 'Failed to search repositories. Please try again.',\n };\n }\n}\n\nfunction getGitLabCredentialHost(credential: Credential): string | null {\n if (credential.type !== 'gitlab') return null;\n\n try {\n return new URL(credential.serverUrl).hostname.toLowerCase();\n } catch {\n return null;\n }\n}\n\nfunction pickCandidateCredential(\n credentials: Credential[],\n provider: 'github' | 'gitlab',\n remoteHost: string | null,\n): Credential | null {\n if (provider === 'github') {\n return credentials.find((credential) => credential.type === 'github') || null;\n }\n\n if (remoteHost) {\n const hostMatch = credentials.find((credential) => (\n credential.type === 'gitlab'\n && getGitLabCredentialHost(credential) === remoteHost\n ));\n if (hostMatch) return hostMatch;\n }\n\n return credentials.find((credential) => credential.type === 'gitlab') || null;\n}\n\nfunction getRepoNameFromRemoteUrl(remoteUrl: string): string | null {\n const trimmed = remoteUrl.trim();\n if (!trimmed) return null;\n\n let rawPath = '';\n\n try {\n const parsed = new URL(trimmed);\n rawPath = parsed.pathname;\n } catch {\n const scpLikeMatch = trimmed.match(/^([^@]+@)?([^:]+):(.+)$/);\n if (scpLikeMatch) {\n rawPath = scpLikeMatch[3];\n } else {\n rawPath = trimmed;\n }\n }\n\n const normalized = rawPath.replace(/\\\\/g, '/').replace(/\\/+$/, '');\n if (!normalized) return null;\n\n let baseName = path.posix.basename(normalized);\n if (!baseName || baseName === '.' || baseName === '..') return null;\n\n if (baseName.toLowerCase().endsWith('.git')) {\n baseName = baseName.slice(0, -4);\n }\n\n const sanitized = baseName\n .replace(/[^a-zA-Z0-9._-]/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n\n return sanitized || null;\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction sanitizeErrorMessage(message: string, secretValues: string[]): string {\n let sanitized = message;\n\n for (const value of secretValues) {\n if (!value) continue;\n sanitized = sanitized.replace(new RegExp(escapeRegExp(value), 'g'), '***');\n }\n\n return sanitized.replace(/:\\/\\/[^/\\s@]+@/g, '://***@');\n}\n\nfunction buildAuthenticatedCloneUrl(remoteUrl: string, credential: Credential, token: string): string {\n let parsed: URL;\n try {\n parsed = new URL(remoteUrl);\n } catch {\n return remoteUrl;\n }\n\n if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:') {\n return remoteUrl;\n }\n\n if (credential.type === 'github') {\n parsed.username = 'x-access-token';\n parsed.password = token;\n return parsed.toString();\n }\n\n parsed.username = 'oauth2';\n parsed.password = token;\n return parsed.toString();\n}\n\ntype CloneCredentialResolution =\n | { success: true; credential: Credential | null; token: string | null }\n | { success: false; error: string };\n\nasync function resolveCloneCredential(\n remoteUrl: string,\n credentialId: string | null,\n): Promise<CloneCredentialResolution> {\n const allCredentials = await getAllCredentials();\n const provider = detectGitRemoteProvider(remoteUrl, {\n gitlabHosts: allCredentials.flatMap((credential) => {\n if (credential.type !== 'gitlab') return [];\n const host = getGitLabCredentialHost(credential);\n return host ? [host] : [];\n }),\n });\n const remoteHost = parseGitRemoteHost(remoteUrl);\n\n if (credentialId) {\n const selectedCredential = await getCredentialById(credentialId);\n if (!selectedCredential) {\n return { success: false, error: 'Selected credential was not found. Please choose another credential.' };\n }\n\n if (provider === 'github' && selectedCredential.type !== 'github') {\n return { success: false, error: 'Selected credential does not match this GitHub repository.' };\n }\n if (provider === 'gitlab' && selectedCredential.type !== 'gitlab') {\n return { success: false, error: 'Selected credential does not match this GitLab repository.' };\n }\n\n if (selectedCredential.type === 'gitlab' && remoteHost) {\n const credentialHost = getGitLabCredentialHost(selectedCredential);\n if (credentialHost && credentialHost !== remoteHost) {\n return {\n success: false,\n error: `Selected GitLab credential targets ${credentialHost}, but this repository uses ${remoteHost}.`,\n };\n }\n }\n\n const token = await getCredentialToken(selectedCredential.id);\n if (!token) {\n return { success: false, error: 'Could not load token for selected credential.' };\n }\n\n return { success: true, credential: selectedCredential, token };\n }\n\n if (!provider) {\n return { success: true, credential: null, token: null };\n }\n\n const candidate = pickCandidateCredential(allCredentials, provider, remoteHost);\n if (!candidate) {\n return { success: true, credential: null, token: null };\n }\n\n const token = await getCredentialToken(candidate.id);\n if (!token) {\n return { success: true, credential: null, token: null };\n }\n\n return { success: true, credential: candidate, token };\n}\n\nexport async function cloneRemoteRepository(\n remoteUrl: string,\n credentialId: string | null,\n): Promise<CloneRemoteRepositoryResult> {\n const trimmedRemoteUrl = remoteUrl.trim();\n if (!trimmedRemoteUrl) {\n return { success: false, repoPath: null, error: 'Please enter a remote repository URL.' };\n }\n\n const repoName = getRepoNameFromRemoteUrl(trimmedRemoteUrl);\n if (!repoName) {\n return { success: false, repoPath: null, error: 'Could not determine repository name from URL.' };\n }\n\n const cloneRoot = path.join(os.homedir(), '.viba', 'repos');\n await fs.mkdir(cloneRoot, { recursive: true });\n\n const targetPath = path.join(cloneRoot, repoName);\n try {\n await fs.access(targetPath);\n return {\n success: false,\n repoPath: null,\n error: `Repository already exists at ${targetPath}.`,\n };\n } catch {\n // Path does not exist yet.\n }\n\n const credentialResolution = await resolveCloneCredential(trimmedRemoteUrl, credentialId);\n if (!credentialResolution.success) {\n return { success: false, repoPath: null, error: credentialResolution.error };\n }\n\n const cloneUrl = (credentialResolution.credential && credentialResolution.token)\n ? buildAuthenticatedCloneUrl(trimmedRemoteUrl, credentialResolution.credential, credentialResolution.token)\n : trimmedRemoteUrl;\n\n const git = simpleGit();\n\n try {\n await git.clone(cloneUrl, targetPath);\n\n if (cloneUrl !== trimmedRemoteUrl) {\n const clonedRepoGit = simpleGit(targetPath);\n await clonedRepoGit.remote(['set-url', 'origin', trimmedRemoteUrl]);\n }\n\n return {\n success: true,\n repoPath: targetPath,\n };\n } catch (error) {\n const rawMessage = error instanceof Error ? error.message : String(error);\n const safeMessage = sanitizeErrorMessage(rawMessage, [\n cloneUrl,\n credentialResolution.token ?? '',\n ]);\n\n try {\n await fs.rm(targetPath, { recursive: true, force: true });\n } catch {\n // Ignore cleanup errors.\n }\n\n return {\n success: false,\n repoPath: null,\n error: safeMessage || 'Failed to clone repository.',\n };\n }\n}\n","import fs from 'fs/promises';\nimport type { Dirent } from 'fs';\nimport path from 'path';\nimport { getConfig } from '@/app/actions/config';\n\nconst MAX_SCAN_DEPTH = 5;\nconst MAX_SCANNED_DIRECTORIES = 5000;\nconst RESOLUTION_CACHE_TTL_MS = 5 * 60 * 1000;\nconst SKIPPED_DIR_NAMES = new Set([\n '.git',\n 'node_modules',\n '.next',\n '.viba',\n 'dist',\n 'build',\n 'coverage',\n]);\n\ntype RepoResolutionCacheEntry = {\n repoPath: string;\n resolvedAt: number;\n};\n\ndeclare global {\n var repoResolutionCache: Map<string, RepoResolutionCacheEntry> | undefined;\n}\n\nfunction getResolutionCache(): Map<string, RepoResolutionCacheEntry> {\n if (!global.repoResolutionCache) {\n global.repoResolutionCache = new Map<string, RepoResolutionCacheEntry>();\n }\n return global.repoResolutionCache;\n}\n\nfunction cacheResolution(repoName: string, repoPath: string): void {\n getResolutionCache().set(repoName.toLowerCase(), {\n repoPath,\n resolvedAt: Date.now(),\n });\n}\n\nasync function getValidCachedResolution(repoName: string): Promise<string | null> {\n const entry = getResolutionCache().get(repoName.toLowerCase());\n if (!entry) return null;\n if (Date.now() - entry.resolvedAt > RESOLUTION_CACHE_TTL_MS) {\n getResolutionCache().delete(repoName.toLowerCase());\n return null;\n }\n\n if (await isGitRepository(entry.repoPath)) {\n return entry.repoPath;\n }\n\n getResolutionCache().delete(repoName.toLowerCase());\n return null;\n}\n\nasync function isGitRepository(dirPath: string): Promise<boolean> {\n try {\n await fs.access(path.join(dirPath, '.git'));\n return true;\n } catch {\n return false;\n }\n}\n\nfunction hasMatchingName(repoPath: string, repoName: string): boolean {\n return path.basename(repoPath).toLowerCase() === repoName.toLowerCase();\n}\n\nfunction shouldSkipDirectory(entryName: string, targetName: string): boolean {\n const lowerName = entryName.toLowerCase();\n if (lowerName === targetName) return false;\n if (SKIPPED_DIR_NAMES.has(lowerName)) return true;\n if (entryName.startsWith('.')) return true;\n return false;\n}\n\nasync function findByNameWithinRoot(rootPath: string, repoName: string): Promise<string | null> {\n const directCandidate = path.join(rootPath, repoName);\n if (await isGitRepository(directCandidate)) {\n return directCandidate;\n }\n\n const queue: Array<{ dirPath: string; depth: number }> = [{ dirPath: rootPath, depth: 0 }];\n let scannedCount = 0;\n const targetName = repoName.toLowerCase();\n\n for (let index = 0; index < queue.length; index += 1) {\n const current = queue[index];\n scannedCount += 1;\n if (scannedCount > MAX_SCANNED_DIRECTORIES) {\n break;\n }\n\n let entries: Dirent[];\n try {\n entries = await fs.readdir(current.dirPath, { withFileTypes: true });\n } catch {\n continue;\n }\n\n for (const entry of entries) {\n if (!entry.isDirectory()) continue;\n if (shouldSkipDirectory(entry.name, targetName)) continue;\n\n const nextDirPath = path.join(current.dirPath, entry.name);\n\n if (entry.name.toLowerCase() === targetName && await isGitRepository(nextDirPath)) {\n return nextDirPath;\n }\n\n if (current.depth + 1 <= MAX_SCAN_DEPTH) {\n queue.push({ dirPath: nextDirPath, depth: current.depth + 1 });\n }\n }\n }\n\n return null;\n}\n\nexport async function resolveRepositoryPathByName(repoName: string): Promise<string | null> {\n const trimmedName = repoName.trim();\n if (!trimmedName) return null;\n\n const cachedResolution = await getValidCachedResolution(trimmedName);\n if (cachedResolution) {\n return cachedResolution;\n }\n\n const config = await getConfig();\n\n const recentMatches = config.recentRepos.filter((repoPath) => hasMatchingName(repoPath, trimmedName));\n for (const repoPath of recentMatches) {\n if (await isGitRepository(repoPath)) {\n cacheResolution(trimmedName, repoPath);\n return repoPath;\n }\n }\n\n const searchRoots: string[] = [];\n const visitedRoots = new Set<string>();\n for (const repoPath of config.recentRepos) {\n const parentPath = path.dirname(repoPath);\n if (!visitedRoots.has(parentPath)) {\n visitedRoots.add(parentPath);\n searchRoots.push(parentPath);\n }\n }\n if (config.defaultRoot && !visitedRoots.has(config.defaultRoot)) {\n visitedRoots.add(config.defaultRoot);\n searchRoots.push(config.defaultRoot);\n }\n\n for (const rootPath of searchRoots) {\n const resolvedPath = await findByNameWithinRoot(rootPath, trimmedName);\n if (resolvedPath) {\n cacheResolution(trimmedName, resolvedPath);\n return resolvedPath;\n }\n }\n\n return null;\n}\n","'use server';\n\nimport fs from 'fs/promises';\nimport path from 'path';\nimport os from 'os';\n\nexport type DraftMetadata = {\n id: string;\n repoPath: string;\n branchName: string;\n message: string;\n attachmentPaths: string[];\n agentProvider: string;\n model: string;\n timestamp: string;\n title: string;\n startupScript: string;\n devServerScript: string;\n sessionMode: 'fast' | 'plan';\n};\n\nasync function getDraftsDir(): Promise<string> {\n const homedir = os.homedir();\n const draftsDir = path.join(homedir, '.viba', 'drafts');\n try {\n await fs.mkdir(draftsDir, { recursive: true });\n } catch {\n // Ignore if exists\n }\n return draftsDir;\n}\n\nexport async function saveDraft(draft: DraftMetadata): Promise<{ success: boolean; error?: string }> {\n try {\n const draftsDir = await getDraftsDir();\n const safeId = path.basename(draft.id);\n const filePath = path.join(draftsDir, `${safeId}.json`);\n await fs.writeFile(filePath, JSON.stringify(draft, null, 2), 'utf-8');\n return { success: true };\n } catch (e) {\n console.error('Failed to save draft:', e);\n return { success: false, error: 'Failed to save draft' };\n }\n}\n\nexport async function listDrafts(repoPath?: string): Promise<DraftMetadata[]> {\n try {\n const draftsDir = await getDraftsDir();\n const entries = await fs.readdir(draftsDir);\n\n const draftPromises = entries\n .filter((entry) => entry.endsWith('.json'))\n .map(async (entry) => {\n try {\n const filePath = path.join(draftsDir, entry);\n const content = await fs.readFile(filePath, 'utf-8');\n return JSON.parse(content) as DraftMetadata;\n } catch (e) {\n console.error(`Failed to parse draft file ${entry}:`, e);\n return null;\n }\n });\n\n const drafts = (await Promise.all(draftPromises)).filter((d): d is DraftMetadata => d !== null);\n\n if (repoPath) {\n return drafts.filter((d) => d.repoPath === repoPath).sort((a, b) => b.timestamp.localeCompare(a.timestamp));\n }\n\n return drafts.sort((a, b) => b.timestamp.localeCompare(a.timestamp));\n } catch (e: any) {\n if (e.code === 'ENOENT') {\n return [];\n }\n console.error('Failed to list drafts:', e);\n return [];\n }\n}\n\nexport async function deleteDraft(id: string): Promise<{ success: boolean; error?: string }> {\n try {\n const draftsDir = await getDraftsDir();\n const safeId = path.basename(id);\n const filePath = path.join(draftsDir, `${safeId}.json`);\n await fs.rm(filePath, { force: true });\n return { success: true };\n } catch (e) {\n console.error('Failed to delete draft:', e);\n return { success: false, error: 'Failed to delete draft' };\n }\n}\n"],"names":["registerServerReference","ensureServerEntryExports","actions","i","length","action","Error"],"mappings":"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","ignoreList":[0,1]}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
module.exports=[89578,a=>{a.v({className:"geist_a71539c9-module__T19VSG__className",variable:"geist_a71539c9-module__T19VSG__variable"})},35214,a=>{a.v({className:"geist_mono_8d43a2aa-module__8Li5zG__className",variable:"geist_mono_8d43a2aa-module__8Li5zG__variable"})},27572,a=>{"use strict";var b=a.i(7997),c=a.i(89578);let d={className:c.default.className,style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"}};null!=c.default.variable&&(d.variable=c.default.variable);var e=a.i(35214);let f={className:e.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=e.default.variable&&(f.variable=e.default.variable);let g=`
|
|
2
|
-
(() => {
|
|
3
|
-
const storageKey = 'viba:theme-mode';
|
|
4
|
-
const runtimeKey = '__vibaThemeSyncInstalled';
|
|
5
|
-
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
|
6
|
-
const resolveThemeMode = () => {
|
|
7
|
-
try {
|
|
8
|
-
const stored = window.localStorage.getItem(storageKey);
|
|
9
|
-
if (stored === 'light' || stored === 'dark' || stored === 'auto') {
|
|
10
|
-
return stored;
|
|
11
|
-
}
|
|
12
|
-
} catch {
|
|
13
|
-
// Ignore localStorage access errors and fall back to auto mode.
|
|
14
|
-
}
|
|
15
|
-
return 'auto';
|
|
16
|
-
};
|
|
17
|
-
const applyThemeMode = () => {
|
|
18
|
-
const mode = resolveThemeMode();
|
|
19
|
-
const shouldUseDark = mode === 'dark' || (mode === 'auto' && mediaQuery.matches);
|
|
20
|
-
document.documentElement.classList.toggle('dark', shouldUseDark);
|
|
21
|
-
document.documentElement.dataset.themeMode = mode;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
applyThemeMode();
|
|
25
|
-
|
|
26
|
-
if (window[runtimeKey]) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
window[runtimeKey] = true;
|
|
30
|
-
|
|
31
|
-
const handleMediaChange = () => {
|
|
32
|
-
if (resolveThemeMode() === 'auto') {
|
|
33
|
-
applyThemeMode();
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const handleStorageChange = (event) => {
|
|
37
|
-
if (!event || !event.key || event.key === storageKey) {
|
|
38
|
-
applyThemeMode();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
const handleThemeRefresh = () => {
|
|
42
|
-
applyThemeMode();
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
if (typeof mediaQuery.addEventListener === 'function') {
|
|
46
|
-
mediaQuery.addEventListener('change', handleMediaChange);
|
|
47
|
-
} else if (typeof mediaQuery.addListener === 'function') {
|
|
48
|
-
mediaQuery.addListener(handleMediaChange);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
window.addEventListener('storage', handleStorageChange);
|
|
52
|
-
window.addEventListener('viba:theme-refresh', handleThemeRefresh);
|
|
53
|
-
})();
|
|
54
|
-
`;function h({children:a}){return(0,b.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,b.jsx)("head",{children:(0,b.jsx)("script",{dangerouslySetInnerHTML:{__html:g}})}),(0,b.jsx)("body",{className:`${d.variable} ${f.variable} antialiased`,children:a})]})}a.s(["default",()=>h,"metadata",0,{title:{default:"Viba",template:"%s | Viba"},icons:{icon:"/icon.png"}}],27572)}];
|
|
55
|
-
|
|
56
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__11fa4345._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["turbopack:///[next]/internal/font/google/geist_a71539c9.module.css [app-rsc] (css module)","turbopack:///[next]/internal/font/google/geist_mono_8d43a2aa.module.css [app-rsc] (css module)","turbopack:///[next]/internal/font/google/geist_a71539c9.js","turbopack:///[next]/internal/font/google/geist_mono_8d43a2aa.js","../../../../src/app/layout.tsx"],"sourcesContent":["__turbopack_context__.v({\n \"className\": \"geist_a71539c9-module__T19VSG__className\",\n \"variable\": \"geist_a71539c9-module__T19VSG__variable\",\n});\n","__turbopack_context__.v({\n \"className\": \"geist_mono_8d43a2aa-module__8Li5zG__className\",\n \"variable\": \"geist_mono_8d43a2aa-module__8Li5zG__variable\",\n});\n","import cssModule from \"@vercel/turbopack-next/internal/font/google/cssmodule.module.css?{%22path%22:%22layout.tsx%22,%22import%22:%22Geist%22,%22arguments%22:[{%22variable%22:%22--font-geist-sans%22,%22subsets%22:[%22latin%22]}],%22variableName%22:%22geistSans%22}\";\nconst fontData = {\n className: cssModule.className,\n style: {\n fontFamily: \"'Geist', 'Geist Fallback'\",\n fontStyle: \"normal\",\n\n },\n};\n\nif (cssModule.variable != null) {\n fontData.variable = cssModule.variable;\n}\n\nexport default fontData;\n","import cssModule from \"@vercel/turbopack-next/internal/font/google/cssmodule.module.css?{%22path%22:%22layout.tsx%22,%22import%22:%22Geist_Mono%22,%22arguments%22:[{%22variable%22:%22--font-geist-mono%22,%22subsets%22:[%22latin%22]}],%22variableName%22:%22geistMono%22}\";\nconst fontData = {\n className: cssModule.className,\n style: {\n fontFamily: \"'Geist Mono', 'Geist Mono Fallback'\",\n fontStyle: \"normal\",\n\n },\n};\n\nif (cssModule.variable != null) {\n fontData.variable = cssModule.variable;\n}\n\nexport default fontData;\n","import type { Metadata } from \"next\";\nimport { Geist, Geist_Mono } from \"next/font/google\";\nimport \"./globals.css\";\n\nconst THEME_MODE_STORAGE_KEY = \"viba:theme-mode\";\nconst THEME_SYNC_RUNTIME_KEY = \"__vibaThemeSyncInstalled\";\nconst themeBootstrapScript = `\n(() => {\n const storageKey = '${THEME_MODE_STORAGE_KEY}';\n const runtimeKey = '${THEME_SYNC_RUNTIME_KEY}';\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const resolveThemeMode = () => {\n try {\n const stored = window.localStorage.getItem(storageKey);\n if (stored === 'light' || stored === 'dark' || stored === 'auto') {\n return stored;\n }\n } catch {\n // Ignore localStorage access errors and fall back to auto mode.\n }\n return 'auto';\n };\n const applyThemeMode = () => {\n const mode = resolveThemeMode();\n const shouldUseDark = mode === 'dark' || (mode === 'auto' && mediaQuery.matches);\n document.documentElement.classList.toggle('dark', shouldUseDark);\n document.documentElement.dataset.themeMode = mode;\n };\n\n applyThemeMode();\n\n if (window[runtimeKey]) {\n return;\n }\n window[runtimeKey] = true;\n\n const handleMediaChange = () => {\n if (resolveThemeMode() === 'auto') {\n applyThemeMode();\n }\n };\n const handleStorageChange = (event) => {\n if (!event || !event.key || event.key === storageKey) {\n applyThemeMode();\n }\n };\n const handleThemeRefresh = () => {\n applyThemeMode();\n };\n\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', handleMediaChange);\n } else if (typeof mediaQuery.addListener === 'function') {\n mediaQuery.addListener(handleMediaChange);\n }\n\n window.addEventListener('storage', handleStorageChange);\n window.addEventListener('viba:theme-refresh', handleThemeRefresh);\n})();\n`;\n\nconst geistSans = Geist({\n variable: \"--font-geist-sans\",\n subsets: [\"latin\"],\n});\n\nconst geistMono = Geist_Mono({\n variable: \"--font-geist-mono\",\n subsets: [\"latin\"],\n});\n\nexport const metadata: Metadata = {\n title: {\n default: \"Viba\",\n template: \"%s | Viba\",\n },\n icons: {\n icon: \"/icon.png\",\n },\n};\n\nexport default function RootLayout({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>) {\n return (\n <html lang=\"en\" suppressHydrationWarning>\n <head>\n <script\n dangerouslySetInnerHTML={{\n __html: themeBootstrapScript,\n }}\n />\n </head>\n <body\n className={`${geistSans.variable} ${geistMono.variable} antialiased`}\n >\n {children}\n </body>\n </html>\n );\n}\n"],"names":[],"mappings":"0BAAA,EAAA,CAAA,CAAA,CACA,UAAA,2CACA,SAAA,yCACA,cCHA,EAAA,CAAA,CAAA,CACA,UAAA,gDACA,SAAA,8CACA,2CCHA,EAAA,EAAA,CAAA,CAAA,OACA,IAAM,EAAW,CACb,UAAW,EAAA,OAAS,CAAC,SAAS,CAC9B,MAAO,CACH,uCACA,UAAW,QAEf,CACJ,CAE0B,OAAtB,EAAA,OAAS,CAAC,QAAQ,GAClB,EAAS,QAAQ,CAAG,EAAA,OAAS,CAAC,QAAA,AAAQ,ECX1C,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,IAAM,EAAW,CACb,UAAW,EAAA,OAAS,CAAC,SAAS,CAC9B,MAAO,CACH,WAAY,sCACZ,UAAW,QAEf,CACJ,CAE0B,MAAM,CAA5B,EAAA,OAAS,CAAC,QAAQ,GAClB,EAAS,QAAQ,CAAG,EAAA,OAAS,CAAC,QAAA,AAAQ,ECL1C,IAAM,EAAuB,CAAC;;;;AJL9B;AACA;;;ACDA;AACA;AAAA;AAAA;AAAA;;;;;;ACFA;AAEe;AAEK;AAMpB;AAAI;AAAA;AAAA;AAAA;AAAU;AAAY;AAAM;AACR;AAAA;AAAA;;AAGT;ACdf;AAAA;AAAA;AAEe;AAAA;AAAA;AAAA;AAEP;AAAY;AAAA;AAAA;AAMhB;AACA;AAAoB;;;;ACPO;AACA;AAAA,CAsD9B,CAsBc,SAAS,EAAW,UACjC,CAAQ,CAGR,EACA,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,KAAK,KAAK,wBAAwB,CAAA,CAAA,YACtC,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,UACC,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACC,wBAAyB,CACvB,OAAQ,CACV,MAGJ,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAA,EFlFJ,AEkFO,EAAU,QAAQ,CAAC,CAAC,EDlF3B,ACkF6B,EAAU,QAAQ,CAAC,YAAY,CAAC,UAEnE,MAIT,mCA/BkC,CAChC,MAAO,CACL,QAAS,OACT,SAAU,WACZ,EACA,MAAO,CACL,KAAM,WACR,CACF","ignoreList":[0,1,2,3]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[51615,(a,b,c)=>{b.exports=a.x("node:buffer",()=>require("node:buffer"))},22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},48256,(a,b,c)=>{function d(a,b,c,d){return Math.round(a/c)+" "+d+(b>=1.5*c?"s":"")}b.exports=function(a,b){b=b||{};var c,e,f,g,h=typeof a;if("string"===h&&a.length>0){var i=a;if(!((i=String(i)).length>100)){var j=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(j){var k=parseFloat(j[1]);switch((j[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*k;case"weeks":case"week":case"w":return 6048e5*k;case"days":case"day":case"d":return 864e5*k;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*k;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*k;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*k;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return k;default:break}}}return}if("number"===h&&isFinite(a)){return b.long?(e=Math.abs(c=a))>=864e5?d(c,e,864e5,"day"):e>=36e5?d(c,e,36e5,"hour"):e>=6e4?d(c,e,6e4,"minute"):e>=1e3?d(c,e,1e3,"second"):c+" ms":(g=Math.abs(f=a))>=864e5?Math.round(f/864e5)+"d":g>=36e5?Math.round(f/36e5)+"h":g>=6e4?Math.round(f/6e4)+"m":g>=1e3?Math.round(f/1e3)+"s":f+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}},93830,(a,b,c)=>{b.exports=function(b){function c(a){let b,e,f,g=null;function h(...a){if(!h.enabled)return;let d=Number(new Date);h.diff=d-(b||d),h.prev=b,h.curr=d,b=d,a[0]=c.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");let e=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,(b,d)=>{if("%%"===b)return"%";e++;let f=c.formatters[d];if("function"==typeof f){let c=a[e];b=f.call(h,c),a.splice(e,1),e--}return b}),c.formatArgs.call(h,a),(h.log||c.log).apply(h,a)}return h.namespace=a,h.useColors=c.useColors(),h.color=c.selectColor(a),h.extend=d,h.destroy=c.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==g?g:(e!==c.namespaces&&(e=c.namespaces,f=c.enabled(a)),f),set:a=>{g=a}}),"function"==typeof c.init&&c.init(h),h}function d(a,b){let d=c(this.namespace+(void 0===b?":":b)+a);return d.log=this.log,d}function e(a,b){let c=0,d=0,e=-1,f=0;for(;c<a.length;)if(d<b.length&&(b[d]===a[c]||"*"===b[d]))"*"===b[d]?(e=d,f=c):c++,d++;else{if(-1===e)return!1;d=e+1,c=++f}for(;d<b.length&&"*"===b[d];)d++;return d===b.length}return c.debug=c,c.default=c,c.coerce=function(a){return a instanceof Error?a.stack||a.message:a},c.disable=function(){let a=[...c.names,...c.skips.map(a=>"-"+a)].join(",");return c.enable(""),a},c.enable=function(a){for(let b of(c.save(a),c.namespaces=a,c.names=[],c.skips=[],("string"==typeof a?a:"").trim().replace(/\s+/g,",").split(",").filter(Boolean)))"-"===b[0]?c.skips.push(b.slice(1)):c.names.push(b)},c.enabled=function(a){for(let b of c.skips)if(e(a,b))return!1;for(let b of c.names)if(e(a,b))return!0;return!1},c.humanize=a.r(48256),c.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(b).forEach(a=>{c[a]=b[a]}),c.names=[],c.skips=[],c.formatters={},c.selectColor=function(a){let b=0;for(let c=0;c<a.length;c++)b=(b<<5)-b+a.charCodeAt(c)|0;return c.colors[Math.abs(b)%c.colors.length]},c.enable(c.load()),c}},36354,(a,b,c)=>{"use strict";b.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},45681,(a,b,c)=>{"use strict";let d;a.r(46786);let e=a.r(70722),f=a.r(36354),{env:g}=process;function h(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function i(a,b){if(0===d)return 0;if(f("color=16m")||f("color=full")||f("color=truecolor"))return 3;if(f("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===g.TERM)return c;if("CI"in g)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in g)||"codeship"===g.CI_NAME?1:c;if("TEAMCITY_VERSION"in g)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(g.TEAMCITY_VERSION);if("truecolor"===g.COLORTERM)return 3;if("TERM_PROGRAM"in g){let a=parseInt((g.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(g.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(g.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(g.TERM)||"COLORTERM"in g?1:c}f("no-color")||f("no-colors")||f("color=false")||f("color=never")?d=0:(f("color")||f("colors")||f("color=true")||f("color=always"))&&(d=1),"FORCE_COLOR"in g&&(d="true"===g.FORCE_COLOR?1:"false"===g.FORCE_COLOR?0:0===g.FORCE_COLOR.length?1:Math.min(parseInt(g.FORCE_COLOR,10),3)),b.exports={supportsColor:function(a){return h(i(a,a&&a.isTTY))},stdout:h(i(!0,e.isatty(1))),stderr:h(i(!0,e.isatty(2)))}},16956,(a,b,c)=>{let d=a.r(70722),e=a.r(24361);c.init=function(a){a.inspectOpts={};let b=Object.keys(c.inspectOpts);for(let d=0;d<b.length;d++)a.inspectOpts[b[d]]=c.inspectOpts[b[d]]},c.log=function(...a){return process.stderr.write(e.formatWithOptions(c.inspectOpts,...a)+"\n")},c.formatArgs=function(a){let{namespace:d,useColors:e}=this;if(e){let c=this.color,e="\x1b[3"+(c<8?c:"8;5;"+c),f=` ${e};1m${d} \u001B[0m`;a[0]=f+a[0].split("\n").join("\n"+f),a.push(e+"m+"+b.exports.humanize(this.diff)+"\x1b[0m")}else a[0]=(c.inspectOpts.hideDate?"":new Date().toISOString()+" ")+d+" "+a[0]},c.save=function(a){a?process.env.DEBUG=a:delete process.env.DEBUG},c.load=function(){return process.env.DEBUG},c.useColors=function(){return"colors"in c.inspectOpts?!!c.inspectOpts.colors:d.isatty(process.stderr.fd)},c.destroy=e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),c.colors=[6,2,3,4,5,1];try{let b=a.r(45681);b&&(b.stderr||b).level>=2&&(c.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(a){}c.inspectOpts=Object.keys(process.env).filter(a=>/^debug_/i.test(a)).reduce((a,b)=>{let c=b.substring(6).toLowerCase().replace(/_([a-z])/g,(a,b)=>b.toUpperCase()),d=process.env[b];return d=!!/^(yes|on|true|enabled)$/i.test(d)||!/^(no|off|false|disabled)$/i.test(d)&&("null"===d?null:Number(d)),a[c]=d,a},{}),b.exports=a.r(93830)(c);let{formatters:f}=b.exports;f.o=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts).split("\n").map(a=>a.trim()).join(" ")},f.O=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts)}},58077,(a,b,c)=>{let d;c.formatArgs=function(a){if(a[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+a[0]+(this.useColors?"%c ":" ")+"+"+b.exports.humanize(this.diff),!this.useColors)return;let c="color: "+this.color;a.splice(1,0,c,"color: inherit");let d=0,e=0;a[0].replace(/%[a-zA-Z%]/g,a=>{"%%"!==a&&(d++,"%c"===a&&(e=d))}),a.splice(e,0,c)},c.save=function(a){try{a?c.storage.setItem("debug",a):c.storage.removeItem("debug")}catch(a){}},c.load=function(){let a;try{a=c.storage.getItem("debug")||c.storage.getItem("DEBUG")}catch(a){}return!a&&"u">typeof process&&"env"in process&&(a=process.env.DEBUG),a},c.useColors=function(){let a;return!("u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("u">typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"u">typeof navigator&&navigator.userAgent&&(a=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(a[1],10)>=31||"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},c.storage=function(){try{return localStorage}catch(a){}}(),d=!1,c.destroy=()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))},c.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],c.log=console.debug||console.log||(()=>{}),b.exports=a.r(93830)(c);let{formatters:e}=b.exports;e.j=function(a){try{return JSON.stringify(a)}catch(a){return"[UnexpectedJSONParseError]: "+a.message}}},61998,(a,b,c)=>{"u"<typeof process||"renderer"===process.type||process.__nwjs?b.exports=a.r(58077):b.exports=a.r(16956)},50023,(a,b,c)=>{"use strict";var d=a.e&&a.e.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(c,"__esModule",{value:!0});let e=a.r(22734),f=d(a.r(61998)).default("@kwsites/file-exists");c.exists=function(a,b=c.READABLE){return function(a,b,c){f("checking %s",a);try{let d=e.statSync(a);if(d.isFile()&&b)return f("[OK] path represents a file"),!0;if(d.isDirectory()&&c)return f("[OK] path represents a directory"),!0;return f("[FAIL] path represents something other than a file or directory"),!1}catch(a){if("ENOENT"===a.code)return f("[FAIL] path is not accessible: %o",a),!1;throw f("[FATAL] %o",a),a}}(a,(b&c.FILE)>0,(b&c.FOLDER)>0)},c.FILE=1,c.FOLDER=2,c.READABLE=c.FILE+c.FOLDER},2355,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d=a.r(50023);for(var e in d)c.hasOwnProperty(e)||(c[e]=d[e])},68076,(a,b,c)=>{"use strict";function d(){let a,b,c="pending";return{promise:new Promise((c,d)=>{a=c,b=d}),done(b){"pending"===c&&(c="resolved",a(b))},fail(a){"pending"===c&&(c="rejected",b(a))},get fulfilled(){return"pending"!==c},get status(){return c}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createDeferred=c.deferred=void 0,c.deferred=d,c.createDeferred=d,c.default=d},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},87769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},4503,a=>{"use strict";let b,c;var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW,aX=a.i(51615),aY=a.i(2355),aZ=a.i(61998),a$=a.i(33405),a_=a.i(68076),a0=a.i(50227),a1=a.i(87769),a2=Object.defineProperty,a3=Object.getOwnPropertyDescriptor,a4=Object.getOwnPropertyNames,a5=Object.prototype.hasOwnProperty,a6=(a,b)=>function(){return a&&(b=(0,a[a4(a)[0]])(a=0)),b},a7=(a,b)=>{for(var c in b)a2(a,c,{get:b[c],enumerable:!0})},a8=a=>((a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let e of a4(b))a5.call(a,e)||e===c||a2(a,e,{get:()=>b[e],enumerable:!(d=a3(b,e))||d.enumerable});return a})(a2({},"__esModule",{value:!0}),a);function a9(a){return a instanceof String&&d.has(a)}function ba(a){return d.get(a)||[]}var bb=a6({"src/lib/args/pathspec.ts"(){d=new WeakMap}}),bc=a6({"src/lib/errors/git-error.ts"(){e=class extends Error{constructor(a,b){super(b),this.task=a,Object.setPrototypeOf(this,new.target.prototype)}}}}),bd=a6({"src/lib/errors/git-response-error.ts"(){bc(),f=class extends e{constructor(a,b){super(void 0,b||String(a)),this.git=a}}}}),be=a6({"src/lib/errors/task-configuration-error.ts"(){bc(),g=class extends e{constructor(a){super(void 0,a)}}}});function bf(a){return"function"!=typeof a?i:a}function bg(a){return"function"==typeof a&&a!==i}function bh(a,b){let c=a.indexOf(b);return c<=0?[a,""]:[a.substr(0,c),a.substr(c+1)]}function bi(a,b=0){return o(a)&&a.length>b?a[b]:void 0}function bj(a,b=0){if(o(a)&&a.length>b)return a[a.length-1-b]}function bk(a="",b=!0,c="\n"){return a.split(c).reduce((a,c)=>{let d=b?c.trim():c;return d&&a.push(d),a},[])}function bl(a,b){return bk(a,!0).map(a=>b(a))}function bm(a){return(0,aY.exists)(a,aY.FOLDER)}function bn(a,b){return Array.isArray(a)?a.includes(b)||a.push(b):a.add(b),b}function bo(a,b){return Array.isArray(a)&&!a.includes(b)&&a.push(b),a}function bp(a,b){if(Array.isArray(a)){let c=a.indexOf(b);c>=0&&a.splice(c,1)}else a.delete(b);return b}function bq(a){return Array.isArray(a)?a:[a]}function br(a){return a.replace(/[\s-]+(.)/g,(a,b)=>b.toUpperCase())}function bs(a){return bq(a).map(a=>a instanceof String?a:String(a))}function bt(a,b=0){if(null==a)return b;let c=parseInt(a,10);return Number.isNaN(c)?b:c}function bu(a,b){let c=[];for(let d=0,e=a.length;d<e;d++)c.push(b,a[d]);return c}function bv(a){return(Array.isArray(a)?aX.Buffer.concat(a):a).toString("utf-8")}function bw(a,b){let c={};return b.forEach(b=>{void 0!==a[b]&&(c[b]=a[b])}),c}function bx(a=0){return new Promise(b=>setTimeout(b,a))}function by(a){if(!1!==a)return a}var bz=a6({"src/lib/utils/util.ts"(){bE(),h="\0",i=()=>{},j=Object.prototype.toString.call.bind(Object.prototype.toString)}});function bA(a,b,c){return b(a)?a:arguments.length>2?c:void 0}function bB(a,b){let c=a9(a)?"string":typeof a;return/number|string|boolean/.test(c)&&(!b||!b.includes(c))}function bC(a){return!!a&&"[object Object]"===j(a)}function bD(a){return"function"==typeof a}var bE=a6({"src/lib/utils/argument-filters.ts"(){bb(),bz(),k=a=>Array.isArray(a),l=a=>"number"==typeof a,m=a=>"string"==typeof a,n=a=>m(a)||Array.isArray(a)&&a.every(m),o=a=>!(null==a||"number|boolean|function".includes(typeof a))&&"number"==typeof a.length}}),bF=a6({"src/lib/utils/exit-codes.ts"(){var a;(a=p||{})[a.SUCCESS=0]="SUCCESS",a[a.ERROR=1]="ERROR",a[a.NOT_FOUND=-2]="NOT_FOUND",a[a.UNCLEAN=128]="UNCLEAN",p=a}}),bG=a6({"src/lib/utils/git-output-streams.ts"(){q=class a{constructor(a,b){this.stdOut=a,this.stdErr=b}asStrings(){return new a(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});function bH(){throw Error("LineParser:useMatches not implemented")}var bI=a6({"src/lib/utils/line-parser.ts"(){r=class{constructor(a,b){this.matches=[],this.useMatches=bH,this.parse=(a,b)=>(this.resetMatches(),!!this._regExp.every((b,c)=>this.addMatch(b,c,a(c)))&&!1!==this.useMatches(b,this.prepareMatches())),this._regExp=Array.isArray(a)?a:[a],b&&(this.useMatches=b)}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(a,b,c){let d=c&&a.exec(c);return d&&this.pushMatch(b,d),!!d}pushMatch(a,b){this.matches.push(...b.slice(1))}},s=class extends r{addMatch(a,b,c){return/^remote:\s/.test(String(c))&&super.addMatch(a,b,c)}pushMatch(a,b){(a>0||b.length>1)&&super.pushMatch(a,b)}}}});function bJ(...a){let b=process.cwd(),c=Object.assign({baseDir:b,...t},...a.filter(a=>"object"==typeof a&&a));return c.baseDir=c.baseDir||b,c.trimmed=!0===c.trimmed,c}var bK=a6({"src/lib/utils/simple-git-options.ts"(){t={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function bL(a,b=[]){return bC(a)?Object.keys(a).reduce((b,c)=>{let d=a[c];if(a9(d))b.push(d);else if(bB(d,["boolean"]))b.push(c+"="+d);else if(Array.isArray(d))for(let a of d)bB(a,["string","number"])||b.push(c+"="+a);else b.push(c);return b},b):b}function bM(a,b=0,c=!1){var d;let e,f=[];for(let c=0,d=b<0?a.length:b;c<d;c++)"string|number".includes(typeof a[c])&&f.push(String(a[c]));return bL(bN(a),f),c||f.push(...(e="function"==typeof bj(d=a),bs(bA(bj(d,+!!e),k,[])))),f}function bN(a){let b=bD(bj(a));return bA(bj(a,+!!b),bC)}function bO(a,b=!0){let c=bf(bj(a));return b||bg(c)?c:void 0}var bP=a6({"src/lib/utils/task-options.ts"(){bE(),bz(),bb()}});function bQ(a,b){return a(b.stdOut,b.stdErr)}function bR(a,b,c,d=!0){return bq(c).forEach(c=>{for(let e=bk(c,d),f=0,g=e.length;f<g;f++){let c=(a=0)=>{if(!(f+a>=g))return e[f+a]};b.some(({parse:b})=>b(c,a))}}),a}var bS=a6({"src/lib/utils/task-parser.ts"(){bz()}}),bT={};a7(bT,{ExitCodes:()=>p,GitOutputStreams:()=>q,LineParser:()=>r,NOOP:()=>i,NULL:()=>h,RemoteLineParser:()=>s,append:()=>bn,appendTaskOptions:()=>bL,asArray:()=>bq,asCamelCase:()=>br,asFunction:()=>bf,asNumber:()=>bt,asStringArray:()=>bs,bufferToString:()=>bv,callTaskParser:()=>bQ,createInstanceConfig:()=>bJ,delay:()=>bx,filterArray:()=>k,filterFunction:()=>bD,filterHasLength:()=>o,filterNumber:()=>l,filterPlainObject:()=>bC,filterPrimitives:()=>bB,filterString:()=>m,filterStringOrStringArray:()=>n,filterType:()=>bA,first:()=>bi,folderExists:()=>bm,forEachLineWithContent:()=>bl,getTrailingOptions:()=>bM,including:()=>bo,isUserFunction:()=>bg,last:()=>bj,objectToString:()=>j,orVoid:()=>by,parseStringResponse:()=>bR,pick:()=>bw,prefixedArray:()=>bu,remove:()=>bp,splitOn:()=>bh,toLinesWithContent:()=>bk,trailingFunctionArgument:()=>bO,trailingOptionsArgument:()=>bN});var bU=a6({"src/lib/utils/index.ts"(){bE(),bF(),bG(),bI(),bK(),bP(),bS(),bz()}}),bV={};function bW(a){switch(a){case"bare":return bY();case"root":return bX()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:v,parser:w}}function bX(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:v,parser:a=>/^\.(git)?$/.test(a.trim())}}function bY(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:v,parser:w}}a7(bV,{CheckRepoActions:()=>u,checkIsBareRepoTask:()=>bY,checkIsRepoRootTask:()=>bX,checkIsRepoTask:()=>bW});var bZ=a6({"src/lib/tasks/check-is-repo.ts"(){var a;bU(),(a=u||{}).BARE="bare",a.IN_TREE="tree",a.IS_REPO_ROOT="root",u=a,v=({exitCode:a},b,c,d)=>{if(128===a&&/(Not a git repository|Kein Git-Repository)/i.test(String(b)))return c(Buffer.from("false"));d(b)},w=a=>"true"===a.trim()}}),b$=a6({"src/lib/responses/CleanSummary.ts"(){bU(),x=class{constructor(a){this.dryRun=a,this.paths=[],this.files=[],this.folders=[]}},y=/^[a-z]+\s*/i,z=/^[a-z]+\s+[a-z]+\s*/i,A=/\/$/}}),b_={};function b0(a){return{commands:B,format:"empty",parser:a}}function b1(a){return{commands:B,format:"empty",parser(){throw"string"==typeof a?new g(a):a}}}function b2(a,b=!1){return{commands:a,format:"utf-8",parser:a=>b?String(a).trim():a}}function b3(a){return{commands:a,format:"buffer",parser:a=>a}}function b4(a){return"buffer"===a.format}function b5(a){return"empty"===a.format||!a.commands.length}a7(b_,{EMPTY_COMMANDS:()=>B,adhocExecTask:()=>b0,configurationErrorTask:()=>b1,isBufferTask:()=>b4,isEmptyTask:()=>b5,straightThroughBufferTask:()=>b3,straightThroughStringTask:()=>b2});var b6=a6({"src/lib/tasks/task.ts"(){be(),B=[]}}),b7={};function b8(a,b){let c,d,e,{cleanMode:f,options:g,valid:h}=(d=[],e={cleanMode:!1,options:!0},a.replace(/[^a-z]i/g,"").split("").forEach(a=>{var b,f;"f"===(b=a)||"n"===b?(c=a,e.cleanMode=!0):e.options=e.options&&(f=d[d.length]=`-${a}`,/^-[a-z]$/i.test(f)&&G.has(f.charAt(1)))}),{cleanMode:c,options:d,valid:e});return f?h.options?(g.push(...b),g.some(cb))?b1(C):b9(f,g):b1(E+JSON.stringify(a)):b1(D)}function b9(a,b){return{commands:["clean",`-${a}`,...b],format:"utf-8",parser:b=>{var c;let d,e;return d=new x(c="n"===a),e=c?z:y,bk(b).forEach(a=>{let b=a.replace(e,"");d.paths.push(b),(A.test(b)?d.folders:d.files).push(b)}),d}}}function ca(a){return Array.isArray(a)&&a.every(a=>G.has(a))}function cb(a){return/^-[^\-]/.test(a)?a.indexOf("i")>0:"--interactive"===a}a7(b7,{CONFIG_ERROR_INTERACTIVE_MODE:()=>C,CONFIG_ERROR_MODE_REQUIRED:()=>D,CONFIG_ERROR_UNKNOWN_OPTION:()=>E,CleanOptions:()=>F,cleanTask:()=>b9,cleanWithOptionsTask:()=>b8,isCleanOptionsArray:()=>ca});var cc=a6({"src/lib/tasks/clean.ts"(){var a;b$(),bU(),b6(),C="Git clean interactive mode is not supported",D='Git clean mode parameter ("n" or "f") is required',E="Git clean unknown option found in: ",(a=F||{}).DRY_RUN="n",a.FORCE="f",a.IGNORED_INCLUDED="x",a.IGNORED_ONLY="X",a.EXCLUDING="e",a.QUIET="q",a.RECURSIVE="d",G=new Set(["i",...bs(Object.values(F=a))])}});function*cd(a,b=null){let c=a.split("\0");for(let a=0,d=c.length-1;a<d;){let d=c[a++].replace(/^(file):/,""),e=c[a++],f=b;if(e.includes("\n")){let a=bh(e,"\n");f=a[0],e=a[1]}yield{file:d,key:f,value:e}}}var ce=a6({"src/lib/responses/ConfigList.ts"(){bU(),H=class{constructor(){this.files=[],this.values=Object.create(null)}get all(){return this._all||(this._all=this.files.reduce((a,b)=>Object.assign(a,this.values[b]),{})),this._all}addFile(a){if(!(a in this.values)){let b=bj(this.files);this.values[a]=b?Object.create(this.values[b]):{},this.files.push(a)}return this.values[a]}addValue(a,b,c){let d=this.addFile(a);Object.hasOwn(d,b)?Array.isArray(d[b])?d[b].push(c):d[b]=[d[b],c]:d[b]=c,this._all=void 0}}}});function cf(a,b){return"string"==typeof a&&Object.hasOwn(I,a)?a:b}var cg=a6({"src/lib/tasks/config.ts"(){var a;ce(),bU(),(a=I||{}).system="system",a.global="global",a.local="local",a.worktree="worktree",I=a}}),ch=a6({"src/lib/tasks/diff-name-status.ts"(){var a;(a=J||{}).ADDED="A",a.COPIED="C",a.DELETED="D",a.MODIFIED="M",a.RENAMED="R",a.CHANGED="T",a.UNMERGED="U",a.UNKNOWN="X",a.BROKEN="B",K=new Set(Object.values(J=a))}}),ci=a6({"src/lib/tasks/grep.ts"(){bU(),b6(),L=["-h"],M=Symbol("grepQuery"),O=class{constructor(){this[N]=[]}*[(N=M,Symbol.iterator)](){for(let a of this[M])yield a}and(...a){return a.length&&this[M].push("--and","(",...bu(a,"-e"),")"),this}param(...a){return this[M].push(...bu(a,"-e")),this}}}}),cj={};function ck(a,b){let c=["reset"];return cm(a)&&c.push(`--${a}`),c.push(...b),b2(c)}function cl(a){if(cm(a))return a;switch(typeof a){case"string":case"undefined":return"soft"}}function cm(a){return"string"==typeof a&&Q.includes(a)}a7(cj,{ResetMode:()=>P,getResetMode:()=>cl,resetTask:()=>ck});var cn=a6({"src/lib/tasks/reset.ts"(){var a;bU(),b6(),(a=P||{}).MIXED="mixed",a.SOFT="soft",a.HARD="hard",a.MERGE="merge",a.KEEP="keep",Q=bs(Object.values(P=a))}});function co(a,b,c){return b&&String(b).replace(/\s*/,"")?(d,...e)=>{a(`%s ${d}`,b,...e),c&&c(d,...e)}:c?(b,...d)=>{a(b,...d),c(b,...d)}:a}function cp(a,b,c,d=(0,aZ.default)("simple-git")){let e=a&&`[${a}]`||"",f=[],g="string"==typeof b?d.extend(b):b,h=function(a,b,{namespace:c}){if("string"==typeof a)return a;let d=b&&b.namespace||"";return d.startsWith(c)?d.substr(c.length+1):d||c}(bA(b,m),g,d);return function b(c){let f=c&&`[${c}]`||"",h=g&&co(g,f)||i,k=co(d,`${e} ${f}`,h);return Object.assign(g?h:k,{label:a,sibling:j,info:k,step:b})}(c);function j(b,c){return bn(f,cp(a,h.replace(/^[^:]+/,b),c,d))}}var cq=a6({"src/lib/git-logger.ts"(){bU(),aZ.default.formatters.L=a=>String(o(a)?a.length:"-"),aZ.default.formatters.B=a=>Buffer.isBuffer(a)?a.toString("utf8"):j(a)}}),cr=a6({"src/lib/runners/tasks-pending-queue.ts"(){bc(),cq(),R=class a{constructor(a="GitExecutor"){this.logLabel=a,this._queue=new Map}withProgress(a){return this._queue.get(a)}createProgress(b){let c=a.getName(b.commands[0]);return{task:b,logger:cp(this.logLabel,c),name:c}}push(a){let b=this.createProgress(a);return b.logger("Adding task to the queue, commands = %o",a.commands),this._queue.set(a,b),b}fatal(a){for(let[b,{logger:c}]of Array.from(this._queue.entries()))b===a.task?(c.info("Failed %o",a),c("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):c.info("A fatal exception occurred in a previous task, the queue has been purged: %o",a.message),this.complete(b);if(0!==this._queue.size)throw Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(a){this.withProgress(a)&&this._queue.delete(a)}attempt(a){let b=this.withProgress(a);if(!b)throw new e(void 0,"TasksPendingQueue: attempt called for an unknown task");return b.logger("Starting task"),b}static getName(b="empty"){return`task:${b}:${++a.counter}`}static{this.counter=0}}}});function cs(a,b){return{method:bi(a.commands)||"",commands:b}}function ct(a,b,c,d){return e=>{c("%s received %L bytes",b,e),d("%B",e),a.push(e)}}var cu=a6({"src/lib/runners/git-executor-chain.ts"(){bc(),b6(),bU(),cr(),S=class{constructor(a,b,c){this._executor=a,this._scheduler=b,this._plugins=c,this._chain=Promise.resolve(),this._queue=new R}get cwd(){return this._cwd||this._executor.cwd}set cwd(a){this._cwd=a}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(a){return this._queue.push(a),this._chain=this._chain.then(()=>this.attemptTask(a))}async attemptTask(a){let b=await this._scheduler.next(),c=()=>this._queue.complete(a);try{let{logger:b}=this._queue.attempt(a);return await (b5(a)?this.attemptEmptyTask(a,b):this.attemptRemoteTask(a,b))}catch(b){throw this.onFatalException(a,b)}finally{c(),b()}}onFatalException(a,b){let c=b instanceof e?Object.assign(b,{task:a}):new e(a,b&&String(b));return this._chain=Promise.resolve(),this._queue.fatal(c),c}async attemptRemoteTask(a,b){let c=this._plugins.exec("spawn.binary","",cs(a,a.commands)),d=this._plugins.exec("spawn.args",[...a.commands],cs(a,a.commands)),e=await this.gitResponse(a,c,d,this.outputHandler,b.step("SPAWN")),f=await this.handleTaskData(a,d,e,b.step("HANDLE"));return(b("passing response to task's parser as a %s",a.format),b4(a))?bQ(a.parser,f):bQ(a.parser,f.asStrings())}async attemptEmptyTask(a,b){return b("empty task bypassing child process to call to task's parser"),a.parser(this)}handleTaskData(a,b,c,d){let{exitCode:e,rejection:f,stdOut:g,stdErr:h}=c;return new Promise((i,k)=>{d("Preparing to handle process response exitCode=%d stdOut=",e);let{error:l}=this._plugins.exec("task.error",{error:f},{...cs(a,b),...c});return l&&a.onError?(d.info("exitCode=%s handling with custom error handler"),a.onError(c,l,a=>{d.info("custom error handler treated as success"),d("custom error returned a %s",j(a)),i(new q(Array.isArray(a)?Buffer.concat(a):a,Buffer.concat(h)))},k)):l?(d.info("handling as error: exitCode=%s stdErr=%s rejection=%o",e,h.length,f),k(l)):void(d.info("retrieving task output complete"),i(new q(Buffer.concat(g),Buffer.concat(h))))})}async gitResponse(a,b,c,d,e){let f=e.sibling("output"),g=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},cs(a,a.commands));return new Promise(h=>{let i=[],j=[];e.info("%s %o",b,c),e("%O",g);let k=this._beforeSpawn(a,c);if(k)return h({stdOut:i,stdErr:j,exitCode:9901,rejection:k});this._plugins.exec("spawn.before",void 0,{...cs(a,c),kill(a){k=a||k}});let l=(0,a$.spawn)(b,c,g);l.stdout.on("data",ct(i,"stdOut",e,f.step("stdOut"))),l.stderr.on("data",ct(j,"stdErr",e,f.step("stdErr"))),l.on("error",a=>{e("[ERROR] child process exception %o",a),j.push(Buffer.from(String(a.stack),"ascii"))}),d&&(e("Passing child process stdOut/stdErr to custom outputHandler"),d(b,l.stdout,l.stderr,[...c])),this._plugins.exec("spawn.after",void 0,{...cs(a,c),spawned:l,close(a,b){h({stdOut:i,stdErr:j,exitCode:a,rejection:k||b})},kill(a){l.killed||(k=a,l.kill("SIGINT"))}})})}_beforeSpawn(a,b){let c;return this._plugins.exec("spawn.before",void 0,{...cs(a,b),kill(a){c=a||c}}),c}}}}),cv={};a7(cv,{GitExecutor:()=>T});var cw=a6({"src/lib/runners/git-executor.ts"(){cu(),T=class{constructor(a,b,c){this.cwd=a,this._scheduler=b,this._plugins=c,this._chain=new S(this,this._scheduler,this._plugins)}chain(){return new S(this,this._scheduler,this._plugins)}push(a){return this._chain.push(a)}}}}),cx=a6({"src/lib/task-callback.ts"(){bd(),bU()}});function cy(a,b){return b0(c=>{if(!bm(a))throw Error(`Git.cwd: cannot change to non-directory "${a}"`);return(b||c).cwd=a})}var cz=a6({"src/lib/tasks/change-working-directory.ts"(){bU(),b6()}});function cA(a){let b=["checkout",...a];return"-b"===b[1]&&b.includes("-B")&&(b[1]=bp(b,"-B")),b2(b)}var cB=a6({"src/lib/tasks/checkout.ts"(){bU(),b6()}}),cC=a6({"src/lib/tasks/count-objects.ts"(){bU(),U=new r(/([a-z-]+): (\d+)$/,(a,[b,c])=>{let d=br(b);Object.hasOwn(a,d)&&(a[d]=bt(c))})}});function cD(a){return bR({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},V,a)}var cE=a6({"src/lib/parsers/parse-commit.ts"(){bU(),V=[new r(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(a,[b,c,d])=>{a.branch=b,a.commit=d,a.root=!!c}),new r(/\s*Author:\s(.+)/i,(a,[b])=>{let c=b.split("<"),d=c.pop();d&&d.includes("@")&&(a.author={email:d.substr(0,d.length-1),name:c.join("<").trim()})}),new r(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(a,[b,c,d])=>{a.summary.changes=parseInt(b,10)||0,a.summary.insertions=parseInt(c,10)||0,a.summary.deletions=parseInt(d,10)||0}),new r(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(a,[b,c,d])=>{a.summary.changes=parseInt(b,10)||0;let e=parseInt(c,10)||0;"-"===d?a.summary.deletions=e:"+"===d&&(a.summary.insertions=e)})]}}),cF=a6({"src/lib/tasks/commit.ts"(){cE(),bU(),b6()}}),cG=a6({"src/lib/tasks/first-commit.ts"(){bU(),b6()}}),cH=a6({"src/lib/tasks/hash-object.ts"(){b6()}}),cI=a6({"src/lib/responses/InitSummary.ts"(){W=class{constructor(a,b,c,d){this.bare=a,this.path=b,this.existing=c,this.gitDir=d}},X=/^Init.+ repository in (.+)$/,Y=/^Rein.+ in (.+)$/}}),cJ=a6({"src/lib/tasks/init.ts"(){cI(),Z="--bare"}});function cK(a){for(let b=0;b<a.length;b++){let c=$.exec(a[b]);if(c)return`--${c[1]}`}return""}function cL(a){return $.test(a)}var cM=a6({"src/lib/args/log-format.ts"(){$=/^--(stat|numstat|name-only|name-status)(=|$)/}}),cN=a6({"src/lib/responses/DiffSummary.ts"(){_=class{constructor(){this.changed=0,this.deletions=0,this.insertions=0,this.files=[]}}}});function cO(a=""){let b=ad[a];return a=>bR(new _,b,a,!1)}var cP=a6({"src/lib/parsers/parse-diff-summary.ts"(){cM(),cN(),ch(),bU(),aa=[new r(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(a,[b,c,d=""])=>{a.files.push({file:b.trim(),changes:bt(c),insertions:d.replace(/[^+]/g,"").length,deletions:d.replace(/[^-]/g,"").length,binary:!1})}),new r(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(a,[b,c,d])=>{a.files.push({file:b.trim(),before:bt(c),after:bt(d),binary:!0})}),new r(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(a,[b,c])=>{let d=/(\d+) i/.exec(c),e=/(\d+) d/.exec(c);a.changed=bt(b),a.insertions=bt(d?.[1]),a.deletions=bt(e?.[1])})],ab=[new r(/(\d+)\t(\d+)\t(.+)$/,(a,[b,c,d])=>{let e=bt(b),f=bt(c);a.changed++,a.insertions+=e,a.deletions+=f,a.files.push({file:d,changes:e+f,insertions:e,deletions:f,binary:!1})}),new r(/-\t-\t(.+)$/,(a,[b])=>{a.changed++,a.files.push({file:b,after:0,before:0,binary:!0})})],ac=[new r(/(.+)$/,(a,[b])=>{a.changed++,a.files.push({file:b,changes:0,insertions:0,deletions:0,binary:!1})})],ad={"":aa,"--stat":aa,"--numstat":ab,"--name-status":[new r(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(a,[b,c,d,e,f])=>{a.changed++,a.files.push({file:f??d,changes:0,insertions:0,deletions:0,binary:!1,status:by(K.has(b)&&b),from:by(!!f&&d!==f&&d),similarity:bt(c)})})],"--name-only":ac}}});function cQ(a=ag,b=ah,c=""){let d=cO(c);return function(c){let e=bk(c.trim(),!1,ae).map(function(c){var e;let f=c.split(af),g=(e=f[0].split(a),b.reduce((a,b,c)=>(a[b]=e[c]||"",a),Object.create({diff:null})));return f.length>1&&f[1].trim()&&(g.diff=d(f[1])),g});return{all:e,latest:e.length&&e[0]||null,total:e.length}}}var cR=a6({"src/lib/parsers/parse-list-log-summary.ts"(){bU(),cP(),cM(),ae="òòòòòò ",af=" òò",ag=" ò ",ah=["hash","date","message","refs","author_name","author_email"]}}),cS={};function cT(a){let b=cK(a),c=["diff"];return""===b&&(b="--stat",c.push("--stat=4096")),c.push(...a),cU(c)||{commands:c,format:"utf-8",parser:cO(b)}}function cU(a){let b=a.filter(cL);return b.length>1?b1(`Summary flags are mutually exclusive - pick one of ${b.join(",")}`):b.length&&a.includes("-z")?b1(`Summary flag ${b} parsing is not compatible with null termination option '-z'`):void 0}a7(cS,{diffSummaryTask:()=>cT,validateLogFormatConfig:()=>cU});var cV=a6({"src/lib/tasks/diff.ts"(){cM(),cP(),b6()}});function cW(a={},b=[]){var c;let e,f,g=bA(a.splitter,m,ag),[h,i]=(c=bC(a.format)?a.format:{hash:"%H",date:!1===a.strictDate?"%ai":"%aI",message:"%s",refs:"%D",body:a.multiLine?"%B":"%b",author_name:!1!==a.mailMap?"%aN":"%an",author_email:!1!==a.mailMap?"%aE":"%ae"},e=[],f=[],Object.keys(c).forEach(a=>{e.push(a),f.push(String(c[a]))}),[e,f.join(g)]),j=[],k=[`--pretty=format:${ae}${i}${af}`,...b],l=a.n||a["max-count"]||a.maxCount;if(l&&k.push(`--max-count=${l}`),a.from||a.to){let b=!1!==a.symmetric?"...":"..";j.push(`${a.from||""}${b}${a.to||""}`)}return m(a.file)&&k.push("--follow",function(...a){let b=new String(a);return d.set(b,a),b}(a.file)),bL(Object.keys(a).reduce((b,c)=>(c in ai||(b[c]=a[c]),b),{}),k),{fields:h,splitter:g,commands:[...k,...j]}}var cX=a6({"src/lib/tasks/log.ts"(){var a;cM(),bb(),cR(),bU(),b6(),cV(),(a=ai||{})[a["--pretty"]=0]="--pretty",a[a["max-count"]=1]="max-count",a[a.maxCount=2]="maxCount",a[a.n=3]="n",a[a.file=4]="file",a[a.format=5]="format",a[a.from=6]="from",a[a.to=7]="to",a[a.splitter=8]="splitter",a[a.symmetric=9]="symmetric",a[a.mailMap=10]="mailMap",a[a.multiLine=11]="multiLine",a[a.strictDate=12]="strictDate",ai=a}}),cY=a6({"src/lib/responses/MergeSummary.ts"(){aj=class{constructor(a,b=null,c){this.reason=a,this.file=b,this.meta=c}toString(){return`${this.file}:${this.reason}`}},ak=class{constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),cZ=a6({"src/lib/responses/PullSummary.ts"(){al=class{constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},am=class{constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function c$(a){return a.objects=a.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function c_(a){let b=/^\s*(\d+)/.exec(a),c=/delta (\d+)/i.exec(a);return{count:bt(b&&b[1]||"0"),delta:bt(c&&c[1]||"0")}}var c0=a6({"src/lib/parsers/parse-remote-objects.ts"(){bU(),an=[new s(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(a,[b,c])=>{let d=b.toLowerCase();Object.assign(c$(a.remoteMessages),{[d]:bt(c)})}),new s(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(a,[b,c])=>{let d=b.toLowerCase();Object.assign(c$(a.remoteMessages),{[d]:bt(c)})}),new s(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(a,[b,c,d])=>{let e=c$(a.remoteMessages);e.total=c_(b),e.reused=c_(c),e.packReused=bt(d)})]}});function c1(a,b){return bR({remoteMessages:new ap},ao,b)}var c2=a6({"src/lib/parsers/parse-remote-messages.ts"(){bU(),c0(),ao=[new s(/^remote:\s*(.+)$/,(a,[b])=>(a.remoteMessages.all.push(b.trim()),!1)),...an,new s([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(a,[b])=>{a.remoteMessages.pullRequestUrl=b}),new s([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(a,[b,c,d])=>{a.remoteMessages.vulnerabilities={count:bt(b),summary:c,url:d}})],ap=class{constructor(){this.all=[]}}}}),c3=a6({"src/lib/parsers/parse-pull.ts"(){cZ(),bU(),c2(),aq=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,ar=/^(create|delete) mode \d+ (.+)/,as=[new r(/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,(a,[b,c,d])=>{a.files.push(b),c&&(a.insertions[b]=c.length),d&&(a.deletions[b]=d.length)}),new r(aq,(a,[b,,c,,d])=>(void 0!==c||void 0!==d)&&(a.summary.changes=+b||0,a.summary.insertions=+c||0,a.summary.deletions=+d||0,!0)),new r(ar,(a,[b,c])=>{bn(a.files,c),bn("create"===b?a.created:a.deleted,c)})],at=[new r(/^from\s(.+)$/i,(a,[b])=>void(a.remote=b)),new r(/^fatal:\s(.+)$/,(a,[b])=>void(a.message=b)),new r(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(a,[b,c,d,e])=>{a.branch.local=d,a.hash.local=b,a.branch.remote=e,a.hash.remote=c})],au=(a,b)=>Object.assign(new al,bR(new al,as,[a,b]),c1(a,b))}}),c4=a6({"src/lib/parsers/parse-merge.ts"(){cY(),bU(),c3(),av=[new r(/^Auto-merging\s+(.+)$/,(a,[b])=>{a.merges.push(b)}),new r(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(a,[b,c])=>{a.conflicts.push(new aj(b,c))}),new r(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(a,[b,c,d])=>{a.conflicts.push(new aj(b,c,{deleteRef:d}))}),new r(/^CONFLICT\s+\((.+)\):/,(a,[b])=>{a.conflicts.push(new aj(b,null))}),new r(/^Automatic merge failed;\s+(.+)$/,(a,[b])=>{a.result=b})],aw=(a,b)=>Object.assign(ax(a,b),au(a,b)),ax=a=>bR(new ak,av,a)}});function c5(a){return a.length?{commands:["merge",...a],format:"utf-8",parser(a,b){let c=aw(a,b);if(c.failed)throw new f(c);return c}}:b1("Git.merge requires at least one option")}var c6=a6({"src/lib/tasks/merge.ts"(){bd(),c4(),b6()}}),c7=a6({"src/lib/parsers/parse-push.ts"(){bU(),c2(),ay=[new r(/^Pushing to (.+)$/,(a,[b])=>{a.repo=b}),new r(/^updating local tracking ref '(.+)'/,(a,[b])=>{a.ref={...a.ref||{},local:b}}),new r(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(a,[b,c,d])=>{let e,f,g;a.pushed.push((e=d.includes("deleted"),f=d.includes("tag")||/^refs\/tags/.test(b),{deleted:e,tag:f,branch:!f,new:!(g=!d.includes("new")),alreadyUpdated:g,local:b,remote:c}))}),new r(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(a,[b,c,d])=>{a.branch={...a.branch||{},local:b,remote:c,remoteName:d}}),new r(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(a,[b,c,d,e])=>{a.update={head:{local:b,remote:c},hash:{from:d,to:e}}})],az=(a,b)=>{let c=aA(a,b),d=c1(a,b);return{...c,...d}},aA=(a,b)=>bR({pushed:[]},ay,[a,b])}}),c8={};function c9(a={},b){return bn(b,"--tags"),da(a,b)}function da(a={},b){let c=["push",...b];return a.branch&&c.splice(1,0,a.branch),a.remote&&c.splice(1,0,a.remote),bp(c,"-v"),bn(c,"--verbose"),bn(c,"--porcelain"),{commands:c,format:"utf-8",parser:az}}a7(c8,{pushTagsTask:()=>c9,pushTask:()=>da});var db=a6({"src/lib/tasks/push.ts"(){c7(),bU()}}),dc=a6({"src/lib/tasks/show.ts"(){bU(),b6()}}),dd=a6({"src/lib/responses/FileStatusSummary.ts"(){aB=/^(.+)\0(.+)$/,aC=class{constructor(a,b,c){if(this.path=a,this.index=b,this.working_dir=c,"R"===b||"R"===c){const b=aB.exec(a)||[null,a,a];this.from=b[2]||"",this.path=b[1]||""}}}}});function de(a){let[b,c]=a.split(h);return{from:c||b,to:b}}function df(a,b,c){return[`${a}${b}`,c]}function dg(a,...b){return b.map(b=>df(a,b,(a,b)=>bn(a.conflicted,b)))}var dh=a6({"src/lib/responses/StatusSummary.ts"(){bU(),dd(),aD=class{constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},aE=new Map([df(" ","A",(a,b)=>bn(a.created,b)),df(" ","D",(a,b)=>bn(a.deleted,b)),df(" ","M",(a,b)=>bn(a.modified,b)),df("A"," ",(a,b)=>bn(a.created,b)&&bn(a.staged,b)),df("A","M",(a,b)=>bn(a.created,b)&&bn(a.staged,b)&&bn(a.modified,b)),df("D"," ",(a,b)=>bn(a.deleted,b)&&bn(a.staged,b)),df("M"," ",(a,b)=>bn(a.modified,b)&&bn(a.staged,b)),df("M","M",(a,b)=>bn(a.modified,b)&&bn(a.staged,b)),df("R"," ",(a,b)=>{bn(a.renamed,de(b))}),df("R","M",(a,b)=>{let c=de(b);bn(a.renamed,c),bn(a.modified,c.to)}),df("!","!",(a,b)=>{bn(a.ignored=a.ignored||[],b)}),df("?","?",(a,b)=>bn(a.not_added,b)),...dg("A","A","U"),...dg("D","D","U"),...dg("U","A","D","U"),["##",(a,b)=>{let c=/ahead (\d+)/.exec(b);a.ahead=c&&+c[1]||0,a.behind=(c=/behind (\d+)/.exec(b))&&+c[1]||0,c=/^(.+?(?=(?:\.{3}|\s|$)))/.exec(b),a.current=bA(c?.[1],m,null),c=/\.{3}(\S*)/.exec(b),a.tracking=bA(c?.[1],m,null),(c=/\son\s(\S+?)(?=\.{3}|$)/.exec(b))&&(a.current=bA(c?.[1],m,a.current)),a.detached=/\(no branch\)/.test(b)}]]),aF=function(a){let b=a.split(h),c=new aD;for(let a=0,d=b.length;a<d;){let d=b[a++].trim();d&&("R"===d.charAt(0)&&(d+=h+(b[a++]||"")),function(a,b){let c=b.trim();switch(" "){case c.charAt(2):return d(c.charAt(0),c.charAt(1),c.substr(3));case c.charAt(1):return d(" ",c.charAt(0),c.substr(2));default:return}function d(b,c,d){let e=`${b}${c}`,f=aE.get(e);f&&f(a,d),"##"!==e&&"!!"!==e&&a.files.push(new aC(d,b,c))}}(c,d))}return c}}}),di=a6({"src/lib/tasks/status.ts"(){dh(),aG=["--null","-z"]}});function dj(a=0,b=0,c=0,d="",e=!0){return Object.defineProperty({major:a,minor:b,patch:c,agent:d,installed:e},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}function dk(a){return a===aH?dj(0,0,0,"",!1):bR(dj(0,0,0,a),aI,a)}var dl=a6({"src/lib/tasks/version.ts"(){bU(),aH="installed=false",aI=[new r(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(a,[b,c,d,e=""])=>{Object.assign(a,dj(bt(b),bt(c),bt(d),e))}),new r(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(a,[b,c,d,e=""])=>{Object.assign(a,dj(bt(b),bt(c),d,e))})]}}),dm={};a7(dm,{SimpleGitApi:()=>aJ});var dn=a6({"src/lib/simple-git-api.ts"(){cx(),cz(),cB(),cC(),cF(),cg(),cG(),ci(),cH(),cJ(),cX(),c6(),db(),dc(),di(),b6(),dl(),bU(),Object.assign((aJ=class{constructor(a){this._executor=a}_runTask(a,b){let c=this._executor.chain(),d=c.push(a);return b&&function(a,b,c=i){b.then(a=>{c(null,a)},b=>{var d;let e;b?.task===a&&c(b instanceof f?(d=b,e=a=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${a} should be GitResponseError.git.${a}, this will no longer be available in version 3`),e=i},Object.create(d,Object.getOwnPropertyNames(d.git).reduce(function(a,b){return b in d||(a[b]={enumerable:!1,configurable:!1,get:()=>(e(b),d.git[b])}),a},{}))):b,void 0)})}(a,d,b),Object.create(this,{then:{value:d.then.bind(d)},catch:{value:d.catch.bind(d)},_executor:{value:c}})}add(a){return this._runTask(b2(["add",...bq(a)]),bO(arguments))}cwd(a){let b=bO(arguments);return"string"==typeof a?this._runTask(cy(a,this._executor),b):"string"==typeof a?.path?this._runTask(cy(a.path,a.root&&this._executor||void 0),b):this._runTask(b1("Git.cwd: workingDirectory must be supplied as a string"),b)}hashObject(a,b){var c;let d;return this._runTask((c=!0===b,d=["hash-object",a],c&&d.push("-w"),b2(d,!0)),bO(arguments))}init(a){return this._runTask(function(a=!1,b,c){let d=["init",...c];return a&&!d.includes(Z)&&d.splice(1,0,Z),{commands:d,format:"utf-8",parser:a=>(function(a,b,c){let d,e=String(c).trim();if(d=X.exec(e))return new W(a,b,!1,d[1]);if(d=Y.exec(e))return new W(a,b,!0,d[1]);let f="",g=e.split(" ");for(;g.length;)if("in"===g.shift()){f=g.join(" ");break}return new W(a,b,/^re/i.test(e),f)})(d.includes("--bare"),b,a)}}(!0===a,this._executor.cwd,bM(arguments)),bO(arguments))}merge(){return this._runTask(c5(bM(arguments)),bO(arguments))}mergeFromTo(a,b){return m(a)&&m(b)?this._runTask(c5([a,b,...bM(arguments)]),bO(arguments,!1)):this._runTask(b1("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(a){return this._executor.outputHandler=a,this}push(){let a=da({remote:bA(arguments[0],m),branch:bA(arguments[1],m)},bM(arguments));return this._runTask(a,bO(arguments))}stash(){return this._runTask(b2(["stash",...bM(arguments)]),bO(arguments))}status(){var a;return this._runTask((a=bM(arguments),{format:"utf-8",commands:["status","--porcelain","-b","-u","--null",...a.filter(a=>!aG.includes(a))],parser:a=>aF(a)}),bO(arguments))}}).prototype,{checkout(){return this._runTask(cA(bM(arguments,1)),bO(arguments))},checkoutBranch(a,b){return this._runTask(cA(["-b",a,b,...bM(arguments)]),bO(arguments))},checkoutLocalBranch(a){return this._runTask(cA(["-b",a,...bM(arguments)]),bO(arguments))}},{commit(a,...b){var c,d,e;let f=bO(arguments),g=!n(a)&&b1("git.commit: requires the commit message to be supplied as a string/string[]")||(c=bq(a),d=bq(bA(b[0],n,[])),e=[...bs(bA(b[1],k,[])),...bM(arguments,0,!0)],{commands:["-c","core.abbrev=40","commit",...bu(c,"-m"),...d,...e],format:"utf-8",parser:cD});return this._runTask(g,f)}},{addConfig(a,b,...c){var d,e;let f;return this._runTask((d=!0===c[0],e=cf(c[1],"local"),f=["config",`--${e}`],d&&f.push("--add"),f.push(a,b),{commands:f,format:"utf-8",parser:a=>a}),bO(arguments))},getConfig(a,b){var c;let d;return this._runTask((c=cf(b,void 0),d=["config","--null","--show-origin","--get-all",a],c&&d.splice(1,0,`--${c}`),{commands:d,format:"utf-8",parser:b=>(function(a,b){let c=null,d=[],e=new Map;for(let f of cd(a,b))f.key===b&&(d.push(c=f.value),e.has(f.file)||e.set(f.file,[]),e.get(f.file).push(c));return{key:b,paths:Array.from(e.keys()),scopes:e,value:c,values:d}})(b,a)}),bO(arguments))},listConfig(...a){var b;let c;return this._runTask((b=cf(a[0],void 0),c=["config","--list","--show-origin","--null"],b&&c.push(`--${b}`),{commands:c,format:"utf-8",parser:a=>(function(a){let b=new H;for(let c of cd(a))b.addValue(c.file,String(c.key),c.value);return b})(a)}),bO(arguments))}},{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser:a=>bR({count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0},[U],a)})}},{firstCommit(){return this._runTask(b2(["rev-list","--max-parents=0","HEAD"],!0),bO(arguments))}},{grep(a){let b=bO(arguments),c=bM(arguments);for(let a of L)if(c.includes(a))return this._runTask(b1(`git.grep: use of "${a}" is not supported.`),b);"string"==typeof a&&(a=(function(...a){return new O().param(...a)})().param(a));let d=["grep","--null","-n","--full-name",...c,...a];return this._runTask({commands:d,format:"utf-8",parser:a=>{let b,c;return b=new Set,c={},bl(a,a=>{let[d,e,f]=a.split(h);b.add(d),(c[d]=c[d]||[]).push({line:bt(e),path:d,preview:f})}),{paths:b,results:c}}},b)}},{log(...a){var b,c;let d,e=bO(arguments),f=cW(bN(arguments),bs(bA(arguments[0],k,[]))),g=function(a,b){return m(a)&&m(b)&&b1("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}(...a)||cU(f.commands)||(d=cQ((b=f).splitter,b.fields,cK(c=b.commands)),{commands:["log",...c],format:"utf-8",parser:d});return this._runTask(g,e)}},{showBuffer(){let a=["show",...bM(arguments,1)];return a.includes("--binary")||a.splice(1,0,"--binary"),this._runTask(b3(a),bO(arguments))},show(){let a=["show",...bM(arguments,1)];return this._runTask(b2(a),bO(arguments))}},{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:dk,onError(a,b,c,d){if(-2===a.exitCode)return c(Buffer.from(aH));d(b)}})}})}}),dp={};a7(dp,{Scheduler:()=>aK});var dq=a6({"src/lib/runners/scheduler.ts"(){let a;bU(),cq(),a=0,aK=class{constructor(a=2){this.concurrency=a,this.logger=cp("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",a)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency)return void this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);let a=bn(this.running,this.pending.shift());this.logger("Attempting id=%s",a.id),a.done(()=>{this.logger("Completing id=",a.id),bp(this.running,a),this.schedule()})}next(){let{promise:b,id:c}=bn(this.pending,(()=>{a++;let{promise:b,done:c}=(0,a_.createDeferred)();return{promise:b,done:c,id:a}})());return this.logger("Scheduling id=%s",c),this.schedule(),b}}}}),dr={};function ds(a,b){return b2(["apply",...b,...a])}a7(dr,{applyPatchTask:()=>ds});var dt=a6({"src/lib/tasks/apply-patch.ts"(){b6()}}),du=a6({"src/lib/responses/BranchDeleteSummary.ts"(){aL=class{constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function dv(a,b){return 1===b&&aM.test(a)}var dw=a6({"src/lib/parsers/parse-branch-delete.ts"(){du(),bU(),aM=/^error[^']+'([^']+)'/m,aN=[new r(/(\S+)\s+\(\S+\s([^)]+)\)/,(a,[b,c])=>{let d={branch:b,hash:c,success:!0};a.all.push(d),a.branches[b]=d}),new r(aM,(a,[b])=>{let c={branch:b,hash:null,success:!1};a.errors.push(c),a.all.push(c),a.branches[b]=c})],aO=(a,b)=>bR(new aL,aN,[a,b])}}),dx=a6({"src/lib/responses/BranchSummary.ts"(){aP=class{constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(a,b,c,d,e){"*"===a&&(this.detached=b,this.current=c),this.all.push(c),this.branches[c]={current:"*"===a,linkedWorkTree:"+"===a,name:c,commit:d,label:e}}}}});function dy(a){return a?a.charAt(0):""}function dz(a,b=!1){return bR(new aP,b?[aR]:aQ,a)}var dA=a6({"src/lib/parsers/parse-branch.ts"(){dx(),bU(),aQ=[new r(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(a,[b,c,d,e])=>{a.push(dy(b),!0,c,d,e)}),new r(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,(a,[b,c,d,e])=>{a.push(dy(b),!1,c,d,e)})],aR=new r(/^(\S+)$/s,(a,[b])=>{a.push("*",!1,b,"","")})}}),dB={};function dC(a){let b=["-d","-D","--delete"];return a.some(a=>b.includes(a))}function dD(a){let b=dC(a),c=a.includes("--show-current"),d=["branch",...a];return 1===d.length&&d.push("-a"),d.includes("-v")||d.splice(1,0,"-v"),{format:"utf-8",commands:d,parser:(a,d)=>b?aO(a,d).all[0]:dz(a,c)}}function dE(){return{format:"utf-8",commands:["branch","-v"],parser:a=>dz(a)}}function dF(a,b=!1){return{format:"utf-8",commands:["branch","-v",b?"-D":"-d",...a],parser:(a,b)=>aO(a,b),onError({exitCode:a,stdOut:b},c,d,e){if(!dv(String(c),a))return e(c);d(b)}}}function dG(a,b=!1){let c={format:"utf-8",commands:["branch","-v",b?"-D":"-d",a],parser:(b,c)=>aO(b,c).branches[a],onError({exitCode:a,stdErr:b,stdOut:d},e,g,h){if(!dv(String(e),a))return h(e);throw new f(c.parser(bv(d),bv(b)),String(e))}};return c}a7(dB,{branchLocalTask:()=>dE,branchTask:()=>dD,containsDeleteBranchCommand:()=>dC,deleteBranchTask:()=>dG,deleteBranchesTask:()=>dF});var dH=a6({"src/lib/tasks/branch.ts"(){bd(),dw(),dA(),bU()}});function dI(a){let b=a.trim().replace(/^["']|["']$/g,"");return b&&(0,a0.normalize)(b)}var dJ=a6({"src/lib/responses/CheckIgnore.ts"(){aS=a=>a.split(/\n/g).map(dI).filter(Boolean)}}),dK={};function dL(a){return{commands:["check-ignore",...a],format:"utf-8",parser:aS}}a7(dK,{checkIgnoreTask:()=>dL});var dM=a6({"src/lib/tasks/check-ignore.ts"(){dJ()}}),dN={};function dO(a){return/^--upload-pack(=|$)/.test(a)}function dP(a,b,c){let d=["clone",...c];return(m(a)&&d.push(a),m(b)&&d.push(b),d.find(dO))?b1("git.fetch: potential exploit argument blocked."):b2(d)}function dQ(a,b,c){return bn(c,"--mirror"),dP(a,b,c)}a7(dN,{cloneMirrorTask:()=>dQ,cloneTask:()=>dP});var dR=a6({"src/lib/tasks/clone.ts"(){b6(),bU()}});function dS(a,b){return bR({raw:a,remote:null,branches:[],tags:[],updated:[],deleted:[]},aT,[a,b])}var dT=a6({"src/lib/parsers/parse-fetch.ts"(){bU(),aT=[new r(/From (.+)$/,(a,[b])=>{a.remote=b}),new r(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(a,[b,c])=>{a.branches.push({name:b,tracking:c})}),new r(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(a,[b,c])=>{a.tags.push({name:b,tracking:c})}),new r(/- \[deleted]\s+\S+\s*-> (.+)$/,(a,[b])=>{a.deleted.push({tracking:b})}),new r(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(a,[b,c,d,e])=>{a.updated.push({name:d,tracking:e,to:c,from:b})})]}}),dU={};function dV(a){return/^--upload-pack(=|$)/.test(a)}function dW(a,b,c){let d=["fetch",...c];return(a&&b&&d.push(a,b),d.find(dV))?b1("git.fetch: potential exploit argument blocked."):{commands:d,format:"utf-8",parser:dS}}a7(dU,{fetchTask:()=>dW});var dX=a6({"src/lib/tasks/fetch.ts"(){dT(),b6()}});function dY(a){return bR({moves:[]},aU,a)}var dZ=a6({"src/lib/parsers/parse-move.ts"(){bU(),aU=[new r(/^Renaming (.+) to (.+)$/,(a,[b,c])=>{a.moves.push({from:b,to:c})})]}}),d$={};function d_(a,b){return{commands:["mv","-v",...bq(a),b],format:"utf-8",parser:dY}}a7(d$,{moveTask:()=>d_});var d0=a6({"src/lib/tasks/move.ts"(){dZ(),bU()}}),d1={};function d2(a,b,c){let d=["pull",...c];return a&&b&&d.splice(1,0,a,b),{commands:d,format:"utf-8",parser:(a,b)=>au(a,b),onError(a,b,c,d){var e,g;let h,i=(e=bv(a.stdOut),g=bv(a.stdErr),(h=bR(new am,at,[e,g])).message&&h);if(i)return d(new f(i));d(b)}}}a7(d1,{pullTask:()=>d2});var d3=a6({"src/lib/tasks/pull.ts"(){bd(),c3(),bU()}});function d4(a){let b={};return d6(a,([a])=>b[a]={name:a}),Object.values(b)}function d5(a){let b={};return d6(a,([a,c,d])=>{Object.hasOwn(b,a)||(b[a]={name:a,refs:{fetch:"",push:""}}),d&&c&&(b[a].refs[d.replace(/[^a-z]/g,"")]=c)}),Object.values(b)}function d6(a,b){bl(a,a=>b(a.split(/\s+/)))}var d7=a6({"src/lib/responses/GetRemoteSummary.ts"(){bU()}}),d8={};function d9(a,b,c){return b2(["remote","add",...c,a,b])}function ea(a){let b=["remote"];return a&&b.push("-v"),{commands:b,format:"utf-8",parser:a?d5:d4}}function eb(a){let b=[...a];return"ls-remote"!==b[0]&&b.unshift("ls-remote"),b2(b)}function ec(a){let b=[...a];return"remote"!==b[0]&&b.unshift("remote"),b2(b)}function ed(a){return b2(["remote","remove",a])}a7(d8,{addRemoteTask:()=>d9,getRemotesTask:()=>ea,listRemotesTask:()=>eb,remoteTask:()=>ec,removeRemoteTask:()=>ed});var ee=a6({"src/lib/tasks/remote.ts"(){d7(),b6()}}),ef={};function eg(a={},b){let c=cW(a),d=["stash","list",...c.commands,...b],e=cQ(c.splitter,c.fields,cK(d));return cU(d)||{commands:d,format:"utf-8",parser:e}}a7(ef,{stashListTask:()=>eg});var eh=a6({"src/lib/tasks/stash-list.ts"(){cM(),cR(),cV(),cX()}}),ei={};function ej(a,b){return el(["add",a,b])}function ek(a){return el(["init",...a])}function el(a){let b=[...a];return"submodule"!==b[0]&&b.unshift("submodule"),b2(b)}function em(a){return el(["update",...a])}a7(ei,{addSubModuleTask:()=>ej,initSubModuleTask:()=>ek,subModuleTask:()=>el,updateSubModuleTask:()=>em});var en=a6({"src/lib/tasks/sub-module.ts"(){b6()}});function eo(a,b){return a===b?0:a>b?1:-1}function ep(a){return a.trim()}function eq(a){return"string"==typeof a&&parseInt(a.replace(/^\D+/g,""),10)||0}var er=a6({"src/lib/responses/TagList.ts"(){aV=class{constructor(a,b){this.all=a,this.latest=b}},aW=function(a,b=!1){let c=a.split("\n").map(ep).filter(Boolean);b||c.sort(function(a,b){let c=a.split("."),d=b.split(".");if(1===c.length||1===d.length){var e,f;let a;return e=eq(c[0]),f=eq(d[0]),(a=Number.isNaN(e))!==Number.isNaN(f)?a?1:-1:a?eo(e,f):0}for(let a=0,b=Math.max(c.length,d.length);a<b;a++){let b=eo(eq(c[a]),eq(d[a]));if(b)return b}return 0});let d=b?c[0]:[...c].reverse().find(a=>a.indexOf(".")>=0);return new aV(c,d)}}}),es={};function et(a=[]){let b=a.some(a=>/^--sort=/.test(a));return{format:"utf-8",commands:["tag","-l",...a],parser:a=>aW(a,b)}}function eu(a){return{format:"utf-8",commands:["tag",a],parser:()=>({name:a})}}function ev(a,b){return{format:"utf-8",commands:["tag","-a","-m",b,a],parser:()=>({name:a})}}a7(es,{addAnnotatedTagTask:()=>ev,addTagTask:()=>eu,tagListTask:()=>et});var ew=a6({"src/lib/tasks/tag.ts"(){er()}}),ex=(b={"src/git.js"(a,b){var{GitExecutor:c}=(cw(),a8(cv)),{SimpleGitApi:d}=(dn(),a8(dm)),{Scheduler:e}=(dq(),a8(dp)),{configurationErrorTask:f}=(b6(),a8(b_)),{asArray:g,filterArray:h,filterPrimitives:i,filterString:j,filterStringOrStringArray:k,filterType:l,getTrailingOptions:m,trailingFunctionArgument:n,trailingOptionsArgument:o}=(bU(),a8(bT)),{applyPatchTask:p}=(dt(),a8(dr)),{branchTask:q,branchLocalTask:r,deleteBranchesTask:s,deleteBranchTask:t}=(dH(),a8(dB)),{checkIgnoreTask:u}=(dM(),a8(dK)),{checkIsRepoTask:v}=(bZ(),a8(bV)),{cloneTask:w,cloneMirrorTask:x}=(dR(),a8(dN)),{cleanWithOptionsTask:y,isCleanOptionsArray:z}=(cc(),a8(b7)),{diffSummaryTask:A}=(cV(),a8(cS)),{fetchTask:B}=(dX(),a8(dU)),{moveTask:C}=(d0(),a8(d$)),{pullTask:D}=(d3(),a8(d1)),{pushTagsTask:E}=(db(),a8(c8)),{addRemoteTask:F,getRemotesTask:G,listRemotesTask:H,remoteTask:I,removeRemoteTask:J}=(ee(),a8(d8)),{getResetMode:K,resetTask:L}=(cn(),a8(cj)),{stashListTask:M}=(eh(),a8(ef)),{addSubModuleTask:N,initSubModuleTask:O,subModuleTask:P,updateSubModuleTask:Q}=(en(),a8(ei)),{addAnnotatedTagTask:R,addTagTask:S,tagListTask:T}=(ew(),a8(es)),{straightThroughBufferTask:U,straightThroughStringTask:V}=(b6(),a8(b_));function W(a,b){this._plugins=b,this._executor=new c(a.baseDir,new e(a.maxConcurrentProcesses),b),this._trimmed=a.trimmed}function X(a,b,c,d){return"string"!=typeof c?f(`git.${a}() requires a string 'repoPath'`):b(c,l(d,j),m(arguments))}(W.prototype=Object.create(d.prototype)).constructor=W,W.prototype.customBinary=function(a){return this._plugins.reconfigure("binary",a),this},W.prototype.env=function(a,b){return 1==arguments.length&&"object"==typeof a?this._executor.env=a:(this._executor.env=this._executor.env||{})[a]=b,this},W.prototype.stashList=function(a){return this._runTask(M(o(arguments)||{},h(a)&&a||[]),n(arguments))},W.prototype.clone=function(){return this._runTask(X("clone",w,...arguments),n(arguments))},W.prototype.mirror=function(){return this._runTask(X("mirror",x,...arguments),n(arguments))},W.prototype.mv=function(a,b){return this._runTask(C(a,b),n(arguments))},W.prototype.checkoutLatestTag=function(a){var b=this;return this.pull(function(){b.tags(function(c,d){b.checkout(d.latest,a)})})},W.prototype.pull=function(a,b,c,d){return this._runTask(D(l(a,j),l(b,j),m(arguments)),n(arguments))},W.prototype.fetch=function(a,b){return this._runTask(B(l(a,j),l(b,j),m(arguments)),n(arguments))},W.prototype.silent=function(a){return console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"),this},W.prototype.tags=function(a,b){return this._runTask(T(m(arguments)),n(arguments))},W.prototype.rebase=function(){return this._runTask(V(["rebase",...m(arguments)]),n(arguments))},W.prototype.reset=function(a){return this._runTask(L(K(a),m(arguments)),n(arguments))},W.prototype.revert=function(a){let b=n(arguments);return"string"!=typeof a?this._runTask(f("Commit must be a string"),b):this._runTask(V(["revert",...m(arguments,0,!0),a]),b)},W.prototype.addTag=function(a){let b="string"==typeof a?S(a):f("Git.addTag requires a tag name");return this._runTask(b,n(arguments))},W.prototype.addAnnotatedTag=function(a,b){return this._runTask(R(a,b),n(arguments))},W.prototype.deleteLocalBranch=function(a,b,c){return this._runTask(t(a,"boolean"==typeof b&&b),n(arguments))},W.prototype.deleteLocalBranches=function(a,b,c){return this._runTask(s(a,"boolean"==typeof b&&b),n(arguments))},W.prototype.branch=function(a,b){return this._runTask(q(m(arguments)),n(arguments))},W.prototype.branchLocal=function(a){return this._runTask(r(),n(arguments))},W.prototype.raw=function(a){let b=!Array.isArray(a),c=[].slice.call(b?arguments:a,0);for(let a=0;a<c.length&&b;a++)if(!i(c[a])){c.splice(a,c.length-a);break}c.push(...m(arguments,0,!0));var d=n(arguments);return c.length?this._runTask(V(c,this._trimmed),d):this._runTask(f("Raw: must supply one or more command to execute"),d)},W.prototype.submoduleAdd=function(a,b,c){return this._runTask(N(a,b),n(arguments))},W.prototype.submoduleUpdate=function(a,b){return this._runTask(Q(m(arguments,!0)),n(arguments))},W.prototype.submoduleInit=function(a,b){return this._runTask(O(m(arguments,!0)),n(arguments))},W.prototype.subModule=function(a,b){return this._runTask(P(m(arguments)),n(arguments))},W.prototype.listRemote=function(){return this._runTask(H(m(arguments)),n(arguments))},W.prototype.addRemote=function(a,b,c){return this._runTask(F(a,b,m(arguments)),n(arguments))},W.prototype.removeRemote=function(a,b){return this._runTask(J(a),n(arguments))},W.prototype.getRemotes=function(a,b){return this._runTask(G(!0===a),n(arguments))},W.prototype.remote=function(a,b){return this._runTask(I(m(arguments)),n(arguments))},W.prototype.tag=function(a,b){let c=m(arguments);return"tag"!==c[0]&&c.unshift("tag"),this._runTask(V(c),n(arguments))},W.prototype.updateServerInfo=function(a){return this._runTask(V(["update-server-info"]),n(arguments))},W.prototype.pushTags=function(a,b){let c=E({remote:l(a,j)},m(arguments));return this._runTask(c,n(arguments))},W.prototype.rm=function(a){return this._runTask(V(["rm","-f",...g(a)]),n(arguments))},W.prototype.rmKeepLocal=function(a){return this._runTask(V(["rm","--cached",...g(a)]),n(arguments))},W.prototype.catFile=function(a,b){return this._catFile("utf-8",arguments)},W.prototype.binaryCatFile=function(){return this._catFile("buffer",arguments)},W.prototype._catFile=function(a,b){var c=n(b),d=["cat-file"],e=b[0];if("string"==typeof e)return this._runTask(f("Git.catFile: options must be supplied as an array of strings"),c);Array.isArray(e)&&d.push.apply(d,e);let g="buffer"===a?U(d):V(d);return this._runTask(g,c)},W.prototype.diff=function(a,b){let c=j(a)?f("git.diff: supplying options as a single string is no longer supported, switch to an array of strings"):V(["diff",...m(arguments)]);return this._runTask(c,n(arguments))},W.prototype.diffSummary=function(){return this._runTask(A(m(arguments,1)),n(arguments))},W.prototype.applyPatch=function(a){let b=k(a)?p(g(a),m([].slice.call(arguments,1))):f("git.applyPatch requires one or more string patches as the first argument");return this._runTask(b,n(arguments))},W.prototype.revparse=function(){let a=["rev-parse",...m(arguments,!0)];return this._runTask(V(a,!0),n(arguments))},W.prototype.clean=function(a,b,c){let d=z(a),e=d&&a.join("")||l(a,j)||"",f=m([].slice.call(arguments,+!!d));return this._runTask(y(e,f),n(arguments))},W.prototype.exec=function(a){return this._runTask({commands:[],format:"utf-8",parser(){"function"==typeof a&&a()}})},W.prototype.clearQueue=function(){return this},W.prototype.checkIgnore=function(a,b){return this._runTask(u(g(l(a,k,[]))),n(arguments))},W.prototype.checkIsRepo=function(a,b){return this._runTask(v(l(a,j)),n(arguments))},b.exports=W}},function(){return c||(0,b[a4(b)[0]])((c={exports:{}}).exports,c),c.exports});bb(),bc();var ey=class extends e{constructor(a,b){super(void 0,b),this.config=a}};bc(),bc();var ez=class extends e{constructor(a,b,c){super(a,c),this.task=a,this.plugin=b,Object.setPrototypeOf(this,new.target.prototype)}};bd(),be(),bZ(),cc(),cg(),ch(),ci(),cn(),bU(),bU();var eA=(0,a_.deferred)().promise;bU();var eB="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function eC(a){return!a||!/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(a)}function eD(a,b){if(a.length<1||a.length>2)throw new ez(void 0,"binary","Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings");if(a.some(eC))if(b)console.warn(eB);else throw new ez(void 0,"binary",eB);let[c,d]=a;return{binary:c,prefix:d}}function eE(a){return{type:"task.error",action(b,c){let d=a(b.error,{stdErr:c.stdErr,stdOut:c.stdOut,exitCode:c.exitCode});return Buffer.isBuffer(d)?{error:new e(void 0,d.toString("utf-8"))}:{error:d}}}}bc(),bU();var eF=class{constructor(){this.plugins=new Set,this.events=new a1.EventEmitter}on(a,b){this.events.on(a,b)}reconfigure(a,b){this.events.emit(a,b)}append(a,b){let c=bn(this.plugins,{type:a,action:b});return()=>this.plugins.delete(c)}add(a){let b=[];return bq(a).forEach(a=>a&&this.plugins.add(bn(b,a))),()=>{b.forEach(a=>this.plugins.delete(a))}}exec(a,b,c){let d=b,e=Object.freeze(Object.create(c));for(let b of this.plugins)b.type===a&&(d=b.action(d,e));return d}};bU(),bU(),bb(),bU();var eG=ex();bd();var eH=function(a,b){var c;let d,e,f,g,h=new eF,i=bJ(a&&("string"==typeof a?{baseDir:a}:a)||{},b);if(!bm(i.baseDir))throw new ey(i,"Cannot use simple-git on a directory that does not exist");return Array.isArray(i.config)&&h.add((d=bu(i.config,"-c"),{type:"spawn.args",action:a=>[...d,...a]})),h.add(function({allowUnsafeProtocolOverride:a=!1,allowUnsafePack:b=!1}={}){return{type:"spawn.args",action:(c,d)=>(c.forEach((e,f)=>{let g=f<c.length?c[f+1]:"";a||function(a,b){if("string"==typeof a&&"-c"===a.trim().toLowerCase()&&/^\s*protocol(.[a-z]+)?.allow/.test(b))throw new ez(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}(e,g),b||function(a,b){if(/^\s*--(upload|receive)-pack/.test(a))throw new ez(void 0,"unsafe","Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack");if("clone"===b&&/^\s*-u\b/.test(a))throw new ez(void 0,"unsafe","Use of clone with option -u is not permitted without enabling allowUnsafePack");if("push"===b&&/^\s*--exec\b/.test(a))throw new ez(void 0,"unsafe","Use of push with option --exec is not permitted without enabling allowUnsafePack")}(e,d.method)}),c)}}(i.unsafe)),h.add({type:"spawn.args",action(a){let b,c=[];function d(a){(b=b||[]).push(...a)}for(let b=0;b<a.length;b++){let e=a[b];if(a9(e)){d(ba(e));continue}if("--"===e){d(a.slice(b+1).flatMap(a=>a9(a)&&ba(a)||a));break}c.push(e)}return b?[...c,"--",...b.map(String)]:c}}),h.add(function({onClose:a=!0,onExit:b=50}={}){function c(a,b,c){!1!==a&&(!0===a?b.promise:b.promise.then(()=>bx(a))).then(c.done)}return{type:"spawn.after",async action(d,{spawned:e,close:f}){let g,h,i,j=(g=-1,h={close:(0,a_.deferred)(),closeTimeout:(0,a_.deferred)(),exit:(0,a_.deferred)(),exitTimeout:(0,a_.deferred)()},i=Promise.race([!1===a?eA:h.closeTimeout.promise,!1===b?eA:h.exitTimeout.promise]),c(a,h.close,h.closeTimeout),c(b,h.exit,h.exitTimeout),{close(a){g=a,h.close.done()},exit(a){g=a,h.exit.done()},get exitCode(){return g},result:i}),k=!0,l=()=>void(k=!1);e.stdout?.on("data",l),e.stderr?.on("data",l),e.on("error",l),e.on("close",a=>j.close(a)),e.on("exit",a=>j.exit(a));try{await j.result,k&&await bx(50),f(j.exitCode)}catch(a){f(j.exitCode,a)}}}}(i.completion)),i.abort&&h.add(function(a){if(a)return[{type:"spawn.before",action(b,c){a.aborted&&c.kill(new ez(void 0,"abort","Abort already signaled"))}},{type:"spawn.after",action(b,c){function d(){c.kill(new ez(void 0,"abort","Abort signal received"))}a.addEventListener("abort",d),c.spawned.on("close",()=>a.removeEventListener("abort",d))}}]}(i.abort)),i.progress&&h.add((c=i.progress,e="--progress",f=["checkout","clone","fetch","pull","push"],[{type:"spawn.args",action:(a,b)=>f.includes(b.method)?bo(a,e):a},{type:"spawn.after",action(a,b){b.commands.includes(e)&&b.spawned.stderr?.on("data",a=>{let d=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(a.toString("utf8"));d&&c({method:b.method,stage:String(d[1].toLowerCase().split(" ",1))||"unknown",progress:bt(d[2]),processed:bt(d[3]),total:bt(d[4])})})}}])),i.timeout&&h.add(function({block:a,stdErr:b=!0,stdOut:c=!0}){if(a>0)return{type:"spawn.after",action(d,e){let f;function g(){f&&clearTimeout(f),f=setTimeout(i,a)}function h(){e.spawned.stdout?.off("data",g),e.spawned.stderr?.off("data",g),e.spawned.off("exit",h),e.spawned.off("close",h),f&&clearTimeout(f)}function i(){h(),e.kill(new ez(void 0,"timeout","block timeout reached"))}c&&e.spawned.stdout?.on("data",g),b&&e.spawned.stderr?.on("data",g),e.spawned.on("exit",h),e.spawned.on("close",h),g()}}}(i.timeout)),i.spawnOptions&&h.add((g=bw(i.spawnOptions,["uid","gid"]),{type:"spawn.options",action:a=>({...g,...a})})),h.add(eE(function(a=!1,b=function(a){return!!(a.exitCode&&a.stdErr.length)},c=function(a){return Buffer.concat([...a.stdOut,...a.stdErr])}){return(d,e)=>(a||!d)&&b(e)?c(e):d}(!0))),i.errors&&h.add(eE(i.errors)),!function(a,b=["git"],c=!1){let d=eD(bq(b),c);a.on("binary",a=>{d=eD(bq(a),c)}),a.append("spawn.binary",()=>d.binary),a.append("spawn.args",a=>d.prefix?[d.prefix,...a]:a)}(h,i.binary,i.unsafe?.allowUnsafeCustomBinary),new eG(i,h)};a.s(["default",()=>eH])},15271,38642,46534,a=>{"use strict";var b=a.i(37936),c=a.i(24868),d=a.i(14747),e=a.i(46786),f=a.i(4503),g=a.i(13095);let h={recentRepos:[],defaultRoot:"",selectedIde:"vscode",agentWidth:66.666,repoSettings:{},pinnedFolderShortcuts:[]};async function i(){let a=e.default.homedir(),b=d.default.join(a,".viba");try{await c.default.mkdir(b,{recursive:!0})}catch(a){}return d.default.join(b,"config.json")}async function j(){try{let a=await i(),b=await c.default.readFile(a,"utf-8"),d=JSON.parse(b);return{...h,...d}}catch(a){return h}}async function k(a){try{let b=await i();await c.default.writeFile(b,JSON.stringify(a,null,2),"utf-8")}catch(a){throw console.error("Failed to save config:",a),Error("Failed to save configuration.")}}async function l(a){let b={...await j(),...a};return await k(b),b}async function m(a,b){let c=await j(),d=c.repoSettings[a]||{},e={...c,repoSettings:{...c.repoSettings,[a]:{...d,...b}}};return await k(e),e}(0,g.ensureServerEntryExports)([j,k,l,m]),(0,b.registerServerReference)(j,"008ac664cbc3777b0553b0d0f25f0118c4efd8338a",null),(0,b.registerServerReference)(k,"405b0a70086c9a0761417ddb9af85ddf2668d962c4",null),(0,b.registerServerReference)(l,"406e37bc6adf270b823abe7311f0b83b33f61a0d71",null),(0,b.registerServerReference)(m,"60c7b95e80e7e8aaeb7ef9e79d9e50daba0ed5fc2a",null),a.s(["getConfig",()=>j,"updateConfig",()=>l,"updateRepoSettings",()=>m],38642);var n=a.i(66085),o=a.i(70798);function p(a,b){return`viba-${(a.trim().replace(/[^a-zA-Z0-9_-]/g,"-")||"session").slice(0,40)}-${b}`}function q(a){let b=function(a){let b=a.trim();if(!b)return"";if(/^[a-z][a-z0-9+.-]*:\/\//i.test(b))return b;let c=b.match(/^([^@]+@)?([^:]+):(.+)$/);if(!c)return"";let d=c[1]||"",e=c[2],f=c[3].replace(/^\/+/,"");return`ssh://${d}${e}/${f}`}(a);if(!b)return null;try{return new URL(b).hostname.toLowerCase()}catch{return null}}function r(a,b){let c=q(a);return c?"github.com"===c||c.includes("github")?"github":"gitlab.com"===c||c.includes("gitlab")||b?.gitlabHosts?.some(a=>(function(a){let b=a.trim();if(!b)return null;try{return new URL(b).hostname.toLowerCase()}catch{}try{return new URL(`ssh://${b}`).hostname.toLowerCase()}catch{return null}})(a)===c)?"gitlab":null:null}function s(a,b,c){let d=p(a,b),e=new URLSearchParams;for(let a of(e.append("arg","new-session"),Array.isArray(c)?c:c?[c]:[]))a.value&&(e.append("arg","-e"),e.append("arg",`${a.name}=${a.value}`));return e.append("arg","-A"),e.append("arg","-s"),e.append("arg",d),`/terminal?${e.toString()}`}a.s(["buildTtydTerminalSrc",()=>s,"detectGitRemoteProvider",()=>r,"getTmuxSessionName",()=>p,"parseGitRemoteHost",()=>q],46534);let t={codex:{executable:"codex",installCommand:"npm i -g openai/codex"}},u=["codex"],v=[{name:"agent-browser",repoUrl:"https://github.com/vercel-labs/agent-browser",sourceUrl:"https://skills.sh/vercel-labs/agent-browser/agent-browser"},{name:"systematic-debugging",repoUrl:"https://github.com/obra/superpowers",sourceUrl:"https://github.com/obra/superpowers"}];function w(a){return"codex"===a?a:null}async function x(b,c,d){let{spawn:e}=await a.A(44264);return new Promise(a=>{let f=[],g=e(b,c,{cwd:d?.cwd,env:process.env,stdio:["ignore","pipe","pipe"]});g.stdout.on("data",a=>{f.push(a.toString())}),g.stderr.on("data",a=>{f.push(a.toString())}),g.on("close",b=>{a({exitCode:b??1,output:f.join("").trim()})}),g.on("error",b=>{a({exitCode:1,output:b instanceof Error?b.message:String(b)})})})}function y(){let a=process.env.CODEX_HOME?.trim()||d.default.join(e.default.homedir(),".codex");return d.default.join(a,"skills")}function z(){return d.default.join(e.default.homedir(),".agents","skills")}async function A(a){let b=[d.default.join(z(),a,"SKILL.md"),d.default.join(y(),a,"SKILL.md")];try{return await Promise.any(b.map(async a=>(await c.default.access(a),a))),!0}catch{return!1}}async function B(){let a=[];for(let b of v)await A(b.name)||a.push(b);if(0!==a.length){if(0!==(await x("npx",["--version"])).exitCode)return void console.warn("Skipping Codex skill installation: npx is not available.");for(let b of a){let a=await x("npx",["skills","add",b.repoUrl,"--skill",b.name,"--agent",...u,"-g","-y"]);if(0!==a.exitCode){console.warn(`Failed to install Codex ${b.name} skill via npx skills add: ${a.output||"unknown error"}`);continue}await A(b.name)||console.warn(`Expected ${b.name}/SKILL.md in either ${z()} or ${y()} after installing from ${b.sourceUrl}, but it was not found.`)}}}async function C(){return e.default.homedir()}async function D(a){try{let b=(await c.default.readdir(a,{withFileTypes:!0})).sort((a,b)=>a.isDirectory()&&!b.isDirectory()?-1:!a.isDirectory()&&b.isDirectory()?1:a.name.localeCompare(b.name));return(await Promise.all(b.map(async b=>{if(!b.isDirectory()&&!b.isFile())return null;let e=d.default.join(a,b.name),f=!1;if(b.isDirectory())try{let a=d.default.join(e,".git");await c.default.access(a),f=!0}catch{f=!1}return{name:b.name,path:e,isDirectory:b.isDirectory(),isGitRepo:f}}))).filter(a=>null!==a)}catch(a){return console.error("Error listing directory entries:",a),[]}}async function E(a){return(await D(a)).filter(a=>a.isDirectory)}async function F(a){try{if(!(await c.default.stat(a)).isDirectory())return!1;return await c.default.readdir(a),!0}catch{return!1}}async function G(a){try{let b=(0,f.default)(a),c=await b.branchLocal();return c.all.map(a=>({name:a,current:c.current===a}))}catch(a){throw console.error("Error fetching branches:",a),Error("Failed to fetch branches. Make sure the path is a valid git repository.")}}async function H(a,b){try{let c=(0,f.default)(a);await c.checkout(b)}catch(a){throw console.error("Error checking out branch:",a),Error(`Failed to checkout branch ${b}`)}}async function I(a){try{let b=d.default.join(a,".git");return await c.default.access(b),!0}catch{return!1}}async function J(b){let c=w(b);if(!c)return{success:!1,installed:!1,error:`Unsupported coding agent CLI: ${b}`};try{let{spawn:b}=await a.A(44264),d=t[c];e.default.platform();let f=["-lc",`command -v ${d.executable}`],g=await new Promise(a=>{let c=b("bash",f,{stdio:"ignore"});c.on("close",b=>a(b??1)),c.on("error",()=>a(1))});return{success:!0,installed:0===g}}catch(a){return console.error("Failed to detect coding agent CLI:",a),{success:!1,installed:!1,error:"Failed to detect coding agent CLI installation status."}}}async function K(b){let c=w(b);if(!c)return{success:!1,error:`Unsupported coding agent CLI: ${b}`};try{let{spawn:b}=await a.A(44264),d=t[c];e.default.platform();let f=["-lc",d.installCommand],g=[],h=await new Promise(a=>{let c=b("bash",f,{cwd:e.default.homedir(),env:process.env,stdio:["ignore","pipe","pipe"]});c.stdout.on("data",a=>{g.push(a.toString())}),c.stderr.on("data",a=>{g.push(a.toString())}),c.on("close",b=>a(b??1)),c.on("error",()=>a(1))});if(0===h)return"codex"===c&&await B(),{success:!0};let i=g.join("").trim();return{success:!1,error:i||`Failed to install ${c} CLI.`}}catch(a){return console.error("Failed to install coding agent CLI:",a),{success:!1,error:"Failed to install coding agent CLI."}}}function L(a,b){return"github"===a.type?{name:"GITHUB_TOKEN",value:b}:{name:"GITLAB_TOKEN",value:b}}function M(a){if("gitlab"!==a.type)return null;try{return new URL(a.serverUrl).hostname.toLowerCase()}catch{return null}}async function N(a){let b=(0,f.default)(a);try{let a=(await b.raw(["remote","get-url","origin"])).trim();if(a)return a}catch{}try{for(let a of(await b.getRemotes(!0))){let b=a.refs?.fetch?.trim();if(b)return b;let c=a.refs?.push?.trim();if(c)return c}}catch{}return null}async function O(a){let b=await j(),c=b.repoSettings?.[a];if(c?.credentialId){let a=await (0,o.getCredentialById)(c.credentialId);if(a){let b=await (0,o.getCredentialToken)(a.id);if(b)return[L(a,b)]}}let d=await N(a);if(!d)return[];let e=await (0,o.getAllCredentials)(),f=r(d,{gitlabHosts:e.flatMap(a=>{if("gitlab"!==a.type)return[];let b=M(a);return b?[b]:[]})});if(!f)return[];let g=function(a,b,c){if("github"===b)return a.find(a=>"github"===a.type)||null;if(c){let b=a.find(a=>"gitlab"===a.type&&M(a)===c);if(b)return b}return a.find(a=>"gitlab"===a.type)||null}(e,f,q(d));if(!g)return[];let h=await (0,o.getCredentialToken)(g.id);return h?[L(g,h)]:[]}async function P(a){var b,c;let d=function(a){if(!a)return null;let b=w(a);return b||(a.toLowerCase().includes("codex")?"codex":null)}(a);if(!d)return[];let e=await (0,n.getAgentApiCredentialSecret)(d);return e&&e.apiKey?(b=e.apiKey,c=e.apiProxy,"codex"!==d?[]:[{name:"OPENAI_API_KEY",value:b},...c?[{name:"OPENAI_BASE_URL",value:c}]:[]]):[]}async function Q(a,b,c){let d={agentTerminalSrc:s(a,"agent"),floatingTerminalSrc:s(a,"terminal")};e.default.platform();try{let[d,e]=await Promise.all([O(b),P(c)]),f=[...d,...e];return{agentTerminalSrc:s(a,"agent",f),floatingTerminalSrc:s(a,"terminal",f)}}catch(a){return console.error("Failed to resolve terminal session environment:",a),d}}async function R(){if(global.ttydProcess){if("tmux"===global.ttydPersistenceMode&&"win32"!==e.default.platform())try{let{spawnSync:b}=await a.A(44264);b("tmux",["set-option","-g","mouse","on"],{stdio:"ignore",env:process.env})}catch(a){console.error("Failed to apply tmux mouse option:",a)}return{success:!0,persistenceMode:global.ttydPersistenceMode||"shell"}}try{let{spawn:b,spawnSync:c}=await a.A(44264),d={...process.env};delete d.TURBOPACK,delete d.PORT,delete d.NODE_ENV;let f=e.default.homedir(),g="win32"!==e.default.platform()&&0===c("which",["tmux"],{stdio:"ignore",env:process.env}).status,h=["-p","7681","-t",'theme={"background": "white", "foreground": "black", "cursor": "black", "selectionBackground": "rgba(59, 130, 246, 0.4)"}',"-t","disableResizeOverlay=true","-t","fontSize=12","-t","fontWeight=300","-t","fontWeightBold=500","-w",f,"-W"],i="shell";g?(c("tmux",["start-server"],{stdio:"ignore",env:process.env}),c("tmux",["set-option","-g","mouse","on"],{stdio:"ignore",env:process.env}),c("tmux",["set-option","-g","history-limit","200000"],{stdio:"ignore",env:process.env}),h.push("-a","tmux"),i="tmux"):(console.warn("tmux is unavailable; falling back to non-persistent ttyd shell mode."),h.push("bash"));let j=b("ttyd",h,{stdio:"ignore",detached:!1,cwd:f,env:{...d,TERM:"xterm-256color",COLORTERM:"truecolor"}});return j.on("error",a=>{console.error("Failed to start ttyd:",a),global.ttydProcess=void 0,global.ttydPersistenceMode=void 0}),j.on("exit",()=>{global.ttydProcess=void 0,global.ttydPersistenceMode=void 0}),global.ttydProcess=j,global.ttydPersistenceMode=i,await new Promise(a=>setTimeout(a,1e3)),{success:!0,persistenceMode:i}}catch(a){return console.error("Error starting ttyd:",a),{success:!1,error:"Failed to start ttyd. Make sure ttyd is installed and in your PATH."}}}async function S(b,c,d){e.default.platform();try{let{spawnSync:e}=await a.A(44264),f=p(b,c),g=e("tmux",["has-session","-t",f],{stdio:"ignore",env:process.env});if("number"==typeof g.status&&0!==g.status)return{success:!0};let h=e("tmux",["set-option","-t",f,"mouse",d?"on":"off"],{stdio:"ignore",env:process.env});if("number"==typeof h.status&&0!==h.status)return{success:!1,error:`tmux exited with status ${h.status}`};return{success:!0}}catch(a){return console.error("Failed to set tmux mouse mode:",a),{success:!1,error:"Failed to set tmux mouse mode."}}}async function T(b,c,d){e.default.platform();try{let{spawnSync:e}=await a.A(44264),f=p(b,c),g=e("tmux",["has-session","-t",f],{stdio:"ignore",env:process.env});if("number"==typeof g.status&&0!==g.status)return{success:!0,applied:!1};let h=e("tmux",["set-option","-t",f,"status",d?"on":"off"],{stdio:"ignore",env:process.env});if("number"==typeof h.status&&0!==h.status)return{success:!1,applied:!1,error:`tmux exited with status ${h.status}`};return{success:!0,applied:!0}}catch(a){return console.error("Failed to set tmux session status visibility:",a),{success:!1,applied:!1,error:"Failed to set tmux session status visibility."}}}async function U(b){e.default.platform();try{let{spawnSync:c}=await a.A(44264);if(0!==c("which",["tmux"],{stdio:"ignore",env:process.env}).status)return;for(let a of["agent","terminal"]){let d=p(b,a);c("tmux",["kill-session","-t",d],{stdio:"ignore",env:process.env})}}catch(a){console.error("Failed to terminate session terminal sessions:",a)}}async function V(b,e){try{let{v4:g}=await a.A(37706),h=g().split("-")[0],i=new Date,j=i.toISOString().replace(/[-:]/g,"").slice(0,8)+"-"+i.getHours().toString().padStart(2,"0")+i.getMinutes().toString().padStart(2,"0"),k=`${j}-${h}`,l=`viba/${k}`,m=d.default.basename(b),n=d.default.dirname(b),o=d.default.join(n,".viba",m),p=d.default.join(o,k);await c.default.mkdir(o,{recursive:!0});let q=(0,f.default)(b);return await q.raw(["worktree","add","-b",l,p,e]),{success:!0,sessionName:k,worktreePath:p,branchName:l}}catch(a){return console.error("Failed to create worktree:",a),{success:!1,error:a.message||String(a)}}}async function W(a,b,d){try{let e=(0,f.default)(a);try{await e.raw(["worktree","remove","--force",b])}catch(c){let a=c.message||String(c);a.includes("is not a working tree")||a.includes("not a valid path")?console.warn(`Path ${b} is not a valid working tree according to git, continuing cleanup...`):console.error(`Git worktree remove failed, but continuing with cleanup: ${a}`);try{await e.raw(["worktree","prune"])}catch{}}try{await e.deleteLocalBranch(d,!0)}catch(a){console.warn(`Failed to delete branch ${d}: ${a.message||a}`)}try{await c.default.rm(b,{recursive:!0,force:!0})}catch{}try{let a=`${b}-attachments`;await c.default.rm(a,{recursive:!0,force:!0})}catch{}return{success:!0}}catch(a){return console.error("Failed to cleanup worktree (critical error):",a),{success:!0}}}async function X(a){try{let b=await c.default.readdir(a);if(b.includes("package-lock.json"))return"npm install";if(b.includes("pnpm-lock.yaml"))return"pnpm install";if(b.includes("yarn.lock"))return"yarn install";return""}catch(a){return console.error("Error determining startup script:",a),""}}async function Y(a){try{let b=d.default.join(a,"package.json"),e=await c.default.readFile(b,"utf-8"),f=JSON.parse(e).scripts;if(!f||"object"!=typeof f)return"";if("string"==typeof f.dev&&f.dev.trim())return"npm run dev";if("string"==typeof f.watch&&f.watch.trim())return"npm run watch";if("string"==typeof f.start&&f.start.trim())return"npm run start";return""}catch(a){return"ENOENT"!==("object"==typeof a&&null!==a&&"code"in a?a.code:void 0)&&console.error("Error determining default dev server script:",a),""}}async function Z(a,b=""){try{let c=(0,f.default)(a),d=(await c.raw(["ls-files"])).split("\n").filter(Boolean);if(!b)return d.slice(0,50);let e=b.toLowerCase();return d.filter(a=>a.toLowerCase().includes(e)).slice(0,50)}catch(a){return console.error("Failed to list repo files:",a),[]}}async function $(a,b){try{let e=`${a}-attachments`;await c.default.mkdir(e,{recursive:!0});let f=Array.from(b.entries()).map(async([,a])=>{if(a instanceof File){let b=Buffer.from(await a.arrayBuffer()),f=a.name.replace(/[^a-zA-Z0-9._-]/g,"_"),g=d.default.join(e,f);return await c.default.writeFile(g,b),f}return null});return(await Promise.all(f)).filter(a=>null!==a)}catch(a){return console.error("Failed to save attachments:",a),[]}}(0,g.ensureServerEntryExports)([C,D,E,F,G,H,I,J,K,Q,R,S,T,U,V,W,X,Y,Z,$]),(0,b.registerServerReference)(C,"00cc819232baef1beeabfcef2aaeaffc75431ae8b8",null),(0,b.registerServerReference)(D,"408498ae87fc2d350e653bad9d133f44aefe5845be",null),(0,b.registerServerReference)(E,"40115312ffedb0704eed94cc5c403dda3d0686e100",null),(0,b.registerServerReference)(F,"40327aa59eff9a8def506c4abafedac2bc8ed0aea8",null),(0,b.registerServerReference)(G,"40915354c52a3224d3698f71bbccf620704db3bda2",null),(0,b.registerServerReference)(H,"60117d726ffa3b429c349053f1d5ee2566f7782656",null),(0,b.registerServerReference)(I,"40f2a89521115ed55b72e742e675356cccd7d5ab27",null),(0,b.registerServerReference)(J,"40b0312cceabed94effc89b993c91037bcf99ddd84",null),(0,b.registerServerReference)(K,"409194f14016fda079f074737210f553cf4eabc693",null),(0,b.registerServerReference)(Q,"7f4b6608e89eb25567f471900c45118206326bdd1b",null),(0,b.registerServerReference)(R,"7f93ee21df4a3db1cfe82c9ad31034ce96a9df8052",null),(0,b.registerServerReference)(S,"7fd12f889504da1b29ef09f11b973a8db3e644d6be",null),(0,b.registerServerReference)(T,"7fd30e0aca8d69a40da2144867dc8fc6fa4cafe629",null),(0,b.registerServerReference)(U,"7fa56689da407172798ac430cb577ca8efa475d7c1",null),(0,b.registerServerReference)(V,"7fec236d9b5a53207111432e585a805f7becdc6e1b",null),(0,b.registerServerReference)(W,"7f13c8bb6f8e8a25ef0aa69f32a181d9ab1760e454",null),(0,b.registerServerReference)(X,"7fd22e4388d4a12aacaa32ad07e8e8ee39b2e18409",null),(0,b.registerServerReference)(Y,"7f011ecc10ad810ca13854f2a96fbdb6139fa0cf27",null),(0,b.registerServerReference)(Z,"7fd7478520462e34cbb18689feba2d1e6c65c924c1",null),(0,b.registerServerReference)($,"7f743591f9daf981fe1fe4e244eb29814fc4592e2e",null),a.s(["checkAgentCliInstalled",()=>J,"checkDirectoryAccessible",()=>F,"checkIsGitRepo",()=>I,"checkoutBranch",()=>H,"getBranches",()=>G,"getDefaultDevServerScript",()=>Y,"getHomeDirectory",()=>C,"getSessionTerminalSources",()=>Q,"getStartupScript",()=>X,"installAgentCli",()=>K,"listDirectories",()=>E,"listPathEntries",()=>D,"listRepoFiles",()=>Z,"prepareSessionWorktree",()=>V,"removeWorktree",()=>W,"saveAttachments",()=>$,"setTmuxSessionMouseMode",()=>S,"setTmuxSessionStatusVisibility",()=>T,"startTtydProcess",()=>R,"terminateSessionTerminalSessions",()=>U],15271)},46666,a=>{"use strict";function b(a){return a instanceof Error?a.message:String(a)}a.s(["getErrorMessage",()=>b])},51817,a=>{"use strict";var b=a.i(37936),c=a.i(24868),d=a.i(14747),e=a.i(46786),f=a.i(4503),g=a.i(46666),h=a.i(15271);async function i(){let a=e.default.homedir(),b=d.default.join(a,".viba","sessions");try{await c.default.mkdir(b,{recursive:!0})}catch{}return b}async function j(){let a=e.default.homedir(),b=d.default.join(a,".viba","session-contexts");try{await c.default.mkdir(b,{recursive:!0})}catch{}return b}async function k(a){let b=await j();return d.default.join(b,`${a}.json`)}async function l(){let a=e.default.homedir(),b=d.default.join(a,".viba","session-prompts");try{await c.default.mkdir(b,{recursive:!0})}catch{}return b}async function m(a){let b=await i(),e=d.default.join(b,`${a.sessionName}.json`);await c.default.writeFile(e,JSON.stringify(a,null,2),"utf-8")}async function n(a,b){try{let e=await l(),f=d.default.join(e,`${a}.txt`);return await c.default.writeFile(f,b,"utf-8"),{success:!0,filePath:f}}catch(a){return console.error("Failed to write session prompt file:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function o(a,b){try{let d=await k(a),e={sessionName:a,...b,timestamp:new Date().toISOString()};return await c.default.writeFile(d,JSON.stringify(e,null,2),"utf-8"),{success:!0}}catch(a){return console.error("Failed to save session launch context:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function p(a){try{let b=await k(a),d=await c.default.readFile(b,"utf-8"),e=JSON.parse(d);return{success:!0,context:e}}catch(a){if("ENOENT"===("object"==typeof a&&null!==a&&"code"in a?a.code:void 0))return{success:!0};return console.error("Failed to consume session launch context:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function q(a){try{let b=await k(a),d=await c.default.readFile(b,"utf-8"),e=JSON.parse(d);return{success:!0,context:e}}catch(a){if("ENOENT"===("object"==typeof a&&null!==a&&"code"in a?a.code:void 0))return{success:!0};return console.error("Failed to read session launch context:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function r(a){let b=await t(a);if(!b)return{success:!1,error:"Session metadata not found"};let c=await q(a);if(!c.success)return{success:!1,error:c.error||"Failed to load session launch context"};let e=c.context,f=(e?.attachmentPaths||[]).map(a=>a.trim()).filter(Boolean),g=f.length>0?Array.from(new Set(f)):Array.from(new Set((e?.attachmentNames||[]).map(a=>a.trim()).filter(Boolean).map(a=>d.default.join(`${b.worktreePath}-attachments`,a))));return{success:!0,context:{sourceSessionName:a,repoPath:b.repoPath,title:e?.title||b.title,initialMessage:e?.rawInitialMessage||e?.initialMessage,attachmentPaths:g,agentProvider:e?.agentProvider||b.agent,model:e?.model||b.model}}}async function s(a,b,e){try{let f=await t(a);if(!f)return{success:!1,copiedAttachmentNames:[],missingAttachmentNames:[],error:"Source session metadata not found"};let g=`${f.worktreePath}-attachments`,h=`${b}-attachments`;await c.default.mkdir(h,{recursive:!0});let i=[],j=[];for(let a of Array.from(new Set(e.map(a=>a.trim()).filter(Boolean)))){let b=a.replace(/[^a-zA-Z0-9._-]/g,"_"),e=d.default.join(g,b),f=d.default.join(h,b);try{await c.default.copyFile(e,f),i.push(b)}catch(c){let b="object"==typeof c&&null!==c&&"code"in c?c.code:void 0;if("ENOENT"===b){j.push(a);continue}throw c}}return{success:!0,copiedAttachmentNames:i,missingAttachmentNames:j}}catch(a){return console.error("Failed to copy session attachments:",a),{success:!1,copiedAttachmentNames:[],missingAttachmentNames:[],error:(0,g.getErrorMessage)(a)}}}async function t(a){try{let b=await i(),e=d.default.join(b,`${a}.json`),f=await c.default.readFile(e,"utf-8");return JSON.parse(f)}catch{return null}}async function u(a){try{let b=await i(),e=(await c.default.readdir(b)).filter(a=>a.endsWith(".json")).map(async a=>{try{let e=d.default.join(b,a),f=await c.default.readFile(e,"utf-8");return JSON.parse(f)}catch(b){return console.error(`Failed to parse session file ${a}:`,b),null}});return(await Promise.all(e)).filter(b=>!!b&&(!a||b.repoPath===a)).sort((a,b)=>new Date(b.timestamp).getTime()-new Date(a.timestamp).getTime())}catch(a){return console.error("Failed to list sessions:",a),[]}}async function v(a,b,c){try{let d=await (0,h.prepareSessionWorktree)(a,b);if(!d.success||!d.sessionName||!d.worktreePath||!d.branchName)return d;let e={sessionName:d.sessionName,repoPath:a,worktreePath:d.worktreePath,branchName:d.branchName,baseBranch:b,agent:c.agent,model:c.model,title:c.title,devServerScript:c.devServerScript,initialized:!1,timestamp:new Date().toISOString()};return await m(e),d}catch(a){return console.error("Failed to create session:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function w(a){let b=await t(a);!b||b.initialized||(b.initialized=!0,await m(b))}async function x(a){try{let b=await t(a);if(!b)return{success:!1,error:"Session metadata not found"};let e=await (0,h.removeWorktree)(b.repoPath,b.worktreePath,b.branchName);if(await (0,h.terminateSessionTerminalSessions)(a),!e.success)return e;let f=await i(),g=d.default.join(f,`${a}.json`);await c.default.rm(g,{force:!0});let j=await k(a);await c.default.rm(j,{force:!0});let m=await l(),n=d.default.join(m,`${a}.txt`);return await c.default.rm(n,{force:!0}),{success:!0}}catch(a){return console.error("Failed to delete session:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function y(a){try{if(!await t(a))return{success:!1,error:"Session metadata not found"};return x(a).catch(b=>{console.error(`Background cleanup of session ${a} failed:`,b)}),{success:!0}}catch(a){return console.error("Failed to schedule background session deletion:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function z(a){try{let b=await t(a);if(!b)return{success:!1,error:"Session metadata not found"};let c=b.baseBranch?.trim();if(!c)return{success:!1,error:"Base branch is missing for this session. This session may be from an older version."};let d=(0,f.default)(b.worktreePath);if(!(await d.status()).isClean())return{success:!1,error:"Worktree has uncommitted changes. Commit your changes first."};let e=(0,f.default)(b.repoPath),g=await e.branchLocal();if(!g.all.includes(c))return{success:!1,error:`Base branch "${c}" not found in repository.`};if(!g.all.includes(b.branchName))return{success:!1,error:`Session branch "${b.branchName}" not found in repository.`};let h=g.current;return h!==c&&await e.checkout(c),await e.merge(["--no-ff",b.branchName]),h&&h!==c&&await e.checkout(h),{success:!0,branchName:b.branchName,baseBranch:c}}catch(a){return console.error("Failed to merge session branch:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function A(a){try{let b=await t(a);if(!b)return{success:!1,error:"Session metadata not found"};let c=b.baseBranch?.trim();if(!c)return{success:!1,error:"Base branch is missing for this session. This session may be from an older version."};let d=(0,f.default)(b.worktreePath);if(!(await d.status()).isClean())return{success:!1,error:"Worktree has uncommitted changes. Commit your changes first."};let e=(0,f.default)(b.repoPath),g=await e.branchLocal();if(!g.all.includes(c))return{success:!1,error:`Base branch "${c}" not found in repository.`};if(!g.all.includes(b.branchName))return{success:!1,error:`Session branch "${b.branchName}" not found in repository.`};return(await d.branchLocal()).current!==b.branchName&&await d.checkout(b.branchName),await d.rebase([c]),{success:!0,branchName:b.branchName,baseBranch:c}}catch(a){return console.error("Failed to rebase session branch:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function B(a){try{let b=await t(a);if(!b)return{success:!1,error:"Session metadata not found"};let c=(0,f.default)(b.worktreePath),d=await c.status();return{success:!0,count:d.files.length}}catch(a){return console.error("Failed to get uncommitted file count:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function C(a){try{let b=await t(a);if(!b)return{success:!1,error:"Session metadata not found"};let c=b.baseBranch?.trim();if(!c)return{success:!1,error:"Base branch is unavailable for this session."};let d=(0,f.default)(b.repoPath),e=await d.branchLocal();if(!e.all.includes(c))return{success:!1,error:`Base branch "${c}" not found in repository.`};if(!e.all.includes(b.branchName))return{success:!1,error:`Session branch "${b.branchName}" not found in repository.`};let[g,h]=(await d.raw(["rev-list","--left-right","--count",`${c}...${b.branchName}`])).trim().split(/\s+/),i=Number.parseInt(g,10),j=Number.parseInt(h,10);if(Number.isNaN(i)||Number.isNaN(j))return{success:!1,error:"Failed to parse git divergence output."};return{success:!0,ahead:j,behind:i}}catch(a){return console.error("Failed to get session divergence:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function D(a){try{let b=await t(a);if(!b)return{success:!1,error:"Session metadata not found"};let c=(0,f.default)(b.repoPath),d=[...(await c.branchLocal()).all].sort((a,b)=>a.localeCompare(b)),e=b.baseBranch?.trim();return{success:!0,baseBranch:e,branches:d}}catch(a){return console.error("Failed to list session base branches:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}async function E(a,b){try{let c=await t(a);if(!c)return{success:!1,error:"Session metadata not found"};let d=b.trim();if(!d)return{success:!1,error:"Base branch cannot be empty."};let e=(0,f.default)(c.repoPath);if(!(await e.branchLocal()).all.includes(d))return{success:!1,error:`Base branch "${d}" not found in repository.`};return c.baseBranch=d,await m(c),{success:!0,baseBranch:d}}catch(a){return console.error("Failed to update session base branch:",a),{success:!1,error:(0,g.getErrorMessage)(a)}}}(0,a.i(13095).ensureServerEntryExports)([m,n,o,p,r,s,t,u,v,w,x,y,z,A,B,C,D,E]),(0,b.registerServerReference)(m,"405fbe492d48062071158efe83e94c25c8ca821ce8",null),(0,b.registerServerReference)(n,"60bb5a7ceb60c0c319fc99dc53af08d1b201127af4",null),(0,b.registerServerReference)(o,"607214d2f625468791a9feafd1c1f811910351fe78",null),(0,b.registerServerReference)(p,"406ae8a0b033dee0824562b1aaf51d69eb180548e1",null),(0,b.registerServerReference)(r,"40fd221658abfefaecd9d614e645a1408c2a103f63",null),(0,b.registerServerReference)(s,"7017aee73ad94ae75f14b391df299714bf19900c8e",null),(0,b.registerServerReference)(t,"40a39a9b88919b6a4030492794aa6ea8a4e558a7c9",null),(0,b.registerServerReference)(u,"40a5d31946904b1d2ef8abc1846b9d89e31e47dd77",null),(0,b.registerServerReference)(v,"70239890805b2c7647946243c21dc6ff30196fc5c6",null),(0,b.registerServerReference)(w,"4076fbb8337d05dca48c3475578e1371d3647f20a7",null),(0,b.registerServerReference)(x,"40749b7eac03cc003d013325247185e5ef33879336",null),(0,b.registerServerReference)(y,"40e9b95d9c3c20239a6c9895aad1d07a748f55027f",null),(0,b.registerServerReference)(z,"4000c41ab0d1f84e18e5219318dbac62b71b5ee37f",null),(0,b.registerServerReference)(A,"40ecf2a5a7ca9916cb170bf5b2f7f838f061f00b1e",null),(0,b.registerServerReference)(B,"4095d430eb3f7d1e67ea38e6b5e1c2f3c9ca554101",null),(0,b.registerServerReference)(C,"40a50407bd98d5ef3f33b1f88973cc9a593b0113b3",null),(0,b.registerServerReference)(D,"405f55977702061bbb040f98dc8c2f68fdfc3c53dd",null),(0,b.registerServerReference)(E,"600ae2f0f0c77dd724118aecf4017bf85707835059",null),a.s(["consumeSessionLaunchContext",()=>p,"createSession",()=>v,"deleteSession",()=>x,"deleteSessionInBackground",()=>y,"getSessionDivergence",()=>C,"getSessionMetadata",()=>t,"getSessionPrefillContext",()=>r,"listSessionBaseBranches",()=>D,"listSessions",()=>u,"markSessionInitialized",()=>w,"mergeSessionToBase",()=>z,"rebaseSessionOntoBase",()=>A,"saveSessionLaunchContext",()=>o,"updateSessionBaseBranch",()=>E,"writeSessionPromptFile",()=>n])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__352d2b3c._.js.map
|